Changed
- auto-mode: replace reactive callback graph with linear execution loop — refactors auto-mode orchestration from a recursive event-driven dispatch system into a
while (active)loop. Deletes ~8,300 lines of compensatory machinery (stuck detection, reentrancy guards, session locks, idempotency checks, gap watchdogs) that existed to work around structural flaws in the old architecture. Replaces with ~1,400 lines acrossauto-loop.ts,worktree-resolver.ts, andauto-worktree-sync.ts. Bug classes like silent stalls, skip/redispatch loops, and zombie active-but-idle states are now structurally impossible.deriveState()is sole authority for phase progression. Post-unit work (hooks, triage, quick-tasks) runs via sidecar queue instead of nested inline dispatch. 67 files changed, +5,245 / -8,296. (#1419)
Added
Fixed
- release stranded bootstrap locks and handle re-entrant reacquire (#1352)
- add JS fallbacks for wrapTextWithAnsi and visibleWidth when native addon unavailable (#1418) (#1428)
- emit agent_end after abort during tool execution (#1414) (#1417)
- auto-discard bootstrap crash locks and clean auto.lock on exit (#1397)
- harden quick-task branch lifecycle — disk recovery + integration branch guard (#1342)
- skip verification retry on spawn infra errors (ETIMEDOUT, ENOENT) (#1340)
- keep external GSD state stable in worktrees (#1334)
- stop excluding all .gsd/ from commits — only exclude runtime files (#1326) (#1328)
- handle ECOMPROMISED in uncaughtException guard and align retry onCompromised (#1322) (#1332)