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:
+11
-1
@@ -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: B1–B7 are fixed. B8 is the only one left.**
|
**Status, 2026-08-10: bucket 0 is CLOSED — B1–B8 are all fixed.**
|
||||||
|
|
||||||
B1–B6 in phases 0 and 1 (`22bcd7d`, `492509a`, `013e629`, `7774a25`) — see `docs/opencode-phase1-report.md`.
|
B1–B6 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
|
||||||
|
|||||||
Reference in New Issue
Block a user