Skip to content

fix(opencode-go): treat block-boundary SSE events as liveness for idle timer#96995

Closed
lsr911 wants to merge 1 commit into
openclaw:mainfrom
lsr911:fix/issue-96518-Bug-opencode-go-stalled-str
Closed

fix(opencode-go): treat block-boundary SSE events as liveness for idle timer#96995
lsr911 wants to merge 1 commit into
openclaw:mainfrom
lsr911:fix/issue-96518-Bug-opencode-go-stalled-str

Conversation

@lsr911

@lsr911 lsr911 commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

What Problem This Solves

Treat block-boundary SSE events as liveness for idle timer, preventing
premature stream abort at block boundaries.

Changes

extensions/opencode-go/stream-termination.ts: Add text_end, thinking_end,
toolcall_start, toolcall_end to isProviderProgressEvent.

Evidence

Unit tests: stalled stream wrapper

pnpm exec vitest run extensions/opencode-go/stream-termination.test.ts

 Test Files  1 passed (1)
      Tests  11 passed (11)

AI-assisted.

@clawsweeper

clawsweeper Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Thanks for the context here. I swept through the related work, and this is now duplicate or superseded.

Close: the merged sibling PR now supersedes this branch; current main contains the same opencode-go predicate change plus focused regression coverage, so this PR has no unique safe remainder to merge.

Root-cause cluster
Relationship: superseded
Canonical: #97128
Summary: The merged sibling PR is canonical because it landed the same opencode-go boundary-event liveness source change and added regression coverage; this PR now has no unique source or test remainder.

Members:

Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything.

Canonical path: Keep the merged current-main implementation and regression test from #97128 as the canonical path, and close this duplicate branch.

So I’m closing this here and keeping the remaining discussion on #97128.

Review details

Best possible solution:

Keep the merged current-main implementation and regression test from #97128 as the canonical path, and close this duplicate branch.

Do we have a high-confidence way to reproduce the issue?

Yes for the original bug: the canonical report supplied a focused source-level wrapper sequence, and current main now includes equivalent regression coverage. No remaining failing current-main path was established after the merged sibling landed.

Is this the best way to solve the issue?

No, this branch is no longer the best way to solve the issue. The best current path is the merged sibling on current main because it contains the same source change plus regression coverage.

Security review:

Security review cleared: The PR diff only changes provider-local TypeScript stream timing logic and does not alter dependencies, workflows, secrets, permissions, package resolution, or downloaded-code paths.

AGENTS.md: found and applied where relevant.

What I checked:

Likely related people:

  • LiuwqGit: Authored the merged sibling PR that landed the same opencode-go predicate change plus the focused regression test now present on current main. (role: canonical fix author; confidence: high; commits: 552ec2b49d4a; files: extensions/opencode-go/stream-termination.ts, extensions/opencode-go/stream-termination.test.ts)
  • vincentkoc: Posted the merged-via-squash confirmation for the canonical sibling and is co-authored in the landed commit metadata for this opencode-go timeout change. (role: merger and recent reviewer; confidence: medium; commits: 552ec2b49d4a; files: extensions/opencode-go/stream-termination.ts, extensions/opencode-go/stream-termination.test.ts)
  • zhangguiping-xydt: Authored the merged PR that added the opencode-go stream-termination wrapper and delta-only liveness predicate later changed by the superseding fix. (role: introduced wrapper behavior; confidence: high; commits: 769579bcf0c2; files: extensions/opencode-go/stream-termination.ts, extensions/opencode-go/stream-termination.test.ts, extensions/opencode-go/stream.ts)
  • lin-hongkuan: Authored a closed unmerged branch for the same boundary-liveness bug, useful context for the same root-cause cluster. (role: prior fix candidate author; confidence: medium; commits: b9b88e63c7fa; files: extensions/opencode-go/stream-termination.ts, extensions/opencode-go/stream-termination.test.ts)

Codex review notes: model internal, reasoning high; reviewed against fbfadbd806e1; fix evidence: commit 552ec2b49d4a, main fix timestamp 2026-06-27T01:48:42Z.

@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. P1 High-priority user-facing bug, regression, or broken workflow. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. merge-risk: 🚨 availability 🚨 May cause crashes, hangs, restart loops, stalls, or process outages. labels Jun 26, 2026
@lsr911

lsr911 commented Jun 26, 2026

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

…e timer

- Add text_end, thinking_end, toolcall_start, toolcall_end to
  isProviderProgressEvent so the idle timeout is reset at block
  boundaries, preventing premature abort on slow streams

Co-Authored-By: Claude <[email protected]>
Signed-off-by: lsr911 <[email protected]>
@lsr911
lsr911 force-pushed the fix/issue-96518-Bug-opencode-go-stalled-str branch from 83710dd to 13c0937 Compare June 26, 2026 12:31
@lsr911

lsr911 commented Jun 26, 2026

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

@lsr911

lsr911 commented Jun 26, 2026

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@lsr911

lsr911 commented Jun 27, 2026

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

1 similar comment
@lsr911

lsr911 commented Jun 27, 2026

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper clawsweeper Bot removed merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. merge-risk: 🚨 availability 🚨 May cause crashes, hangs, restart loops, stalls, or process outages. labels Jun 27, 2026
@lsr911

lsr911 commented Jun 27, 2026

Copy link
Copy Markdown
Contributor Author

Closing: the block-boundary SSE liveness fix is already upstream in main.

@lsr911 lsr911 closed this Jun 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

extensions: opencode-go P1 High-priority user-facing bug, regression, or broken workflow. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. size: XS status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant