diff --git a/docs/remediation/TASKS.md b/docs/remediation/TASKS.md index 76d60a65..80bf9153 100644 --- a/docs/remediation/TASKS.md +++ b/docs/remediation/TASKS.md @@ -221,6 +221,38 @@ reviewer, and no other seat holds mosaicstack write. Flagged to the coordinator busy lane. Not blocking today — RM-02's code blockers are independently disqualifying — but the next otherwise-clean PR meets this. +### D-31 — a seat ran past 100% context with 28 uncommitted files and no commits + +`coder-mos1` reached **102.5% / 372k context** on RM-03 with **28 modified files uncommitted** and its +branch still at the base commit — i.e. **a full context window spent (~\$27) with nothing durable**. The +orchestrator caught it by polling seat state, not by any signal from the system. + +**Nothing warned anyone.** No threshold alert, no pre-compaction hook, no "you are about to lose this" +prompt. The seat did not report distress because from inside, running low on context feels like ordinary +work right up until it is not. **The one failure mode the mission was founded on — compaction destroying +in-flight work — very nearly happened to the mission's own delivery, twice in one night** (RM-01 was +checkpointed at 69%; this one was already past the window). + +**What made RM-01 survivable and this one nearly not:** RM-01 had _committed_ work when it was +checkpointed, so rotation was cheap. Here the work existed only in the worktree and the seat's context. +**Commit-then-rotate works; rotate-without-commit loses everything.** + +**Requirements.** + +- **RM-34 (rotation daemon):** a context-threshold trigger is not enough — it must **force a durable + checkpoint before rotating**, and refuse to rotate a seat with uncommitted work until that work is + committed or explicitly discarded. Rotation without a commit is data loss with extra steps. +- **RM-50 (fleet ownership):** seat context level is **observable state** and must be monitored, with a + threshold alert to the coordinator. Relying on an orchestrator to poll is exactly the "instructions, + not enforcement" pattern (D-4) applied to lifecycle. +- **Worker briefs (immediate, mechanical):** _commit early, commit WIP, an imperfect commit that exists + beats perfect work that vanishes._ Added to standing brief doctrine rather than left to judgement. + +**Adjacent observation — scope drift, unverified.** The same diff spans 5 framework guides and 11 agent +templates against a brief scoped to the queue guard and its tests. Queried rather than assumed: if the +edits are consequential to the tri-state change they stay; if drive-by, they split. Recorded here because +**a 28-file diff from a brief that named one script is a scope signal regardless of the answer.** + ### D-29 — the registry's own coverage clause was SYNTACTIC, not semantic `rev-974` blocked PR #1030 with a finding that lands in the keystone's own enforcement: