v0.0.28 β constraint compliance, reasoning-runaway resilience, DEV-1 live-test fixes
Ironclad v0.0.28 β constraint compliance, reasoning-runaway resilience, and DEV-1 live-test fixes.
Highlights
Constraint compliance (L1/L2/L3). An operator-stated language/network constraint is now an engine-visible, enforceable floor end-to-end: captured (incl. a best-effort capture-completeness gate that refuses a prose-only constraint whose typed field is omitted), surfaced per turn, and fail-closed hard-checked at design approval + implementation handover. A deviation goes through an operator-owned fork with an MPR decision-matrix recommendation β never a silent override. keep/counter leave a coherent, approvable state, and the fork decision is surfaced as a concrete, ready-to-run /fork decide <id> --choice keep|counter command.
Reasoning-runaway resilience. A first-token-decoupled LLM timeout so a legitimate large-context prefill is no longer killed by the shared read timeout; a phase-aware idle watchdog; opt-in resumable partial-persist on a stream wedge; and an opt-in salvage of a blank reasoning-runaway into one bounded no-think answer.
Operator-flow fixes. The terminal client no longer lets a locally-launched code-agent write into the client's own terminal (coder output goes to files); a code-agent launch is guarded against a retired CLI model and a failed coder is surfaced instead of silently stalling.
All new behavior is default-off / byte-identical unless explicitly enabled. See CHANGELOG.md for the full list.