close bucket 0

B8 done, so every defect that made opencode behave wrongly is fixed. Notes what that does
not mean: bucket 1 is capability gaps, and the visible ones are downstream of the phase 2
fork, which is still unstarted and still Andre to call.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-10 13:29:11 +01:00
co-authored by Claude Opus 5
parent cdee320fed
commit 1892c23aef
+11 -1
View File
@@ -67,7 +67,7 @@ These are live defects, not missing features. Each makes OpenCode less usable th
| B7 | **Latent spurious `cut-off`.** `resume-cursor` defaults `model` to `claude-code`; `endTurnIfAgentIsGone` then asks the Claude sidecar about a key it never had, gets `false`, and appends a durable "agent went away" row to a live turn. Currently masked only because the client always happens to send `model` alongside `sessionId`. | `websocket.ts:607,621,749-757` | A permanent, reload-surviving false error row. | | B7 | **Latent spurious `cut-off`.** `resume-cursor` defaults `model` to `claude-code`; `endTurnIfAgentIsGone` then asks the Claude sidecar about a key it never had, gets `false`, and appends a durable "agent went away" row to a live turn. Currently masked only because the client always happens to send `model` alongside `sessionId`. | `websocket.ts:607,621,749-757` | A permanent, reload-surviving false error row. |
| B8 | **In-flight `opencode run` children survive sidecar shutdown** and are not tracked, so their output is lost. Separately, `sweepStaleServes` is `/proc`-based and therefore a no-op on macOS — orphaned serves accumulate on this machine. | `index.ts:197-209`, `:41-75` | | | B8 | **In-flight `opencode run` children survive sidecar shutdown** and are not tracked, so their output is lost. Separately, `sweepStaleServes` is `/proc`-based and therefore a no-op on macOS — orphaned serves accumulate on this machine. | `index.ts:197-209`, `:41-75` | |
**Status, 2026-08-10: B1B7 are fixed. B8 is the only one left.** **Status, 2026-08-10: bucket 0 is CLOSED — B1B8 are all fixed.**
B1B6 in phases 0 and 1 (`22bcd7d`, `492509a`, `013e629`, `7774a25`) — see `docs/opencode-phase1-report.md`. B1B6 in phases 0 and 1 (`22bcd7d`, `492509a`, `013e629`, `7774a25`) — see `docs/opencode-phase1-report.md`.
B7 fixed separately, after the review: `decideResume` in `websocket.ts` replaces `msg.model || DEFAULT_MODEL`. B7 fixed separately, after the review: `decideResume` in `websocket.ts` replaces `msg.model || DEFAULT_MODEL`.
@@ -78,10 +78,20 @@ bus (so an OpenCode turn's output never arrives) and pins `session.model`, so st
`killClaude` on a key that sidecar never held — a stop button that silently does nothing. All three had `killClaude` on a key that sidecar never held — a stop button that silently does nothing. All three had
the one cause, and all three were masked by the client always sending `model`. the one cause, and all three were masked by the client always sending `model`.
B8 fixed the same day, both halves. `stopAllOpenCodeTurns` on shutdown, settling each turn synchronously
so the transcript says why it ended; and a pidfile sweep beside the `/proc` one, which was a no-op on
macOS and let orphaned serves accumulate there.
Also fixed after the review, and not in this table because it was found by reviewing the fix for B5/B6: Also fixed after the review, and not in this table because it was found by reviewing the fix for B5/B6:
a superseded OpenCode turn ran its whole completion path against the turn that replaced it. See a superseded OpenCode turn ran its whole completion path against the turn that replaced it. See
`docs/opencode-phase1-review.md`. `docs/opencode-phase1-review.md`.
**What bucket 0 being closed does and does not mean.** Every defect that made OpenCode behave *wrongly*
is gone. What remains is bucket 1 — capabilities Claude has and OpenCode does not — and most of the
visible ones (token streaming, mid-turn injection, background tasks, interrupt-without-teardown) are
downstream of `stdin: 'ignore'` and therefore of the Phase 2 fork, which is still Andre's call and still
unstarted. `docs/opencode-serve-path.md` frames it.
--- ---
## Bucket 1 — Claude has it, OpenCode does not ## Bucket 1 — Claude has it, OpenCode does not