diff --git a/8-Roadmap.md b/8-Roadmap.md index 5900872..cbde6ff 100644 --- a/8-Roadmap.md +++ b/8-Roadmap.md @@ -128,7 +128,7 @@ comes in Stage 2). This is the thinnest end-to-end vertical slice. **Definition of done for the stage:** `CB-107` demo passes. -> **Build status — Stage 1 COMPLETE** (in `bridged/`, Maven · Java 25 · **111 tests green — 105 +> **Build status — Stage 1 COMPLETE** (in `bridged/`, Maven · Java 25 · **134 tests green — 128 > unit/acceptance + 6 live-herdr contract**). The `CB-107` end-to-end demo gate passes and the > bridge is **dogfooded**: an Opus primary delegates real tasks to off-subscription workers that > reply through it (delegated code reviews have produced committed bug fixes). @@ -149,7 +149,7 @@ comes in Stage 2). This is the thinnest end-to-end vertical slice. > > **Beyond Stage 1 — shipped delivery-reliability hardening.** The implementation continued the > `CB-1xx` sequence past the skeleton for work that overlaps Stage 2–4 below. ⚠️ **These commit -> numbers (CB-106…CB-114 in git) reuse the CB-106/107/108 slots this plan assigned above to +> numbers (CB-106…CB-118 in git) reuse the CB-106/107/108 slots this plan assigned above to > config/e2e-demo/placement — identify the items below by name, not number.** Shipped: > completion fallback (a confirmed `working→idle` turn resolves a send), async fire-and-poll > (`wait:false` + `bridge_poll`, beats the caller's MCP call timeout), fleet MCP tools @@ -157,6 +157,15 @@ comes in Stage 2). This is the thinnest end-to-end vertical slice. > for wedged (`unknown`), vanished, and never-ready workers, multi-profile workers with > per-profile base_url guards, worker cwd inheritance (never `$HOME`), and a readiness gate that > holds delivery until the worker's Claude has connected the bridge MCP. +> +> **Reliability follow-ups (CB-115…CB-118).** Turn-completion made robust: a clean transcript +> scrape that strips TUI chrome to the last assistant block (CB-115), waiter-identity so a late +> completion fallback can never cross into the next turn's send (CB-116), startup reconciliation +> that reaps orphaned worker panes leaked by a prior daemon process (CB-117), and a +> completion-baseline clip fix so the CB-115 misattribution guard holds for assistant blocks over +> the scrape cap (CB-118). Verified by a single-worker conversation harness, a **1-primary / +> N-worker fan-out issue-hunt**, and a **sustained 5-minute stateful back-and-forth** (30 turns, +> every one a clean `bridge_reply`, running total held) — all under `e2e/`. ---