Skip to content

v4.0.1

Choose a tag to compare

@github-actions github-actions released this 21 Jul 03:23

What's Changed

Bug Fixes

  • Council abort now cascades to all sub-waves: Previously, amicus abort only targeted the primary wave per stage, leaving retry chains, lens solos, critic legs, and repair re-prompts to be killed only by process-tree fallback. Stages now record every sub-wave in a waveIds array at launch time, and the abort cascade marks all of them for accurate per-leg audit trails and legsAborted counts. Lens mode no longer advertises a phantom -s1 wave that never launches.
  • Council status now counts legs across all sub-waves: The status command was undercounting legs by only reading the primary waveId per stage, reporting legsTotal: null for lens runs and omitting critic legs. It now rolls up all sub-waves, giving accurate leg counts that may rise mid-stage when bounded repair re-prompts launch.
  • MCP-spawned council runs are now recoverable if they die early: A council run spawned via amicus_council_run that crashed before its first checkpoint left a pid-less running record invisible to crash detection and unrecoverable to the process fallback. The MCP handler now captures and writes the spawned child's pid to a separate spawn.pid file immediately, letting both amicus status and amicus abort find it even if run.json hasn't been checkpointed yet.
  • Malformed wave metadata no longer crashes status or abort: Both commands assumed metadata.json's legs field was an array if present, raising TypeError on half-written or corrupted records. They now treat non-array legs as no legs and guard the wave-level abort mark so a failure there cannot discard already-counted legs.

Documentation

  • Council run directory layout documented: Added guide to the MCP-only files (briefing.md, spawn.pid) and clarified why spawn.pid is a separate file rather than a field in run.json (to avoid cross-process checkpoint races).
  • Release roadmap updated: Established that each version from v4.1 onward includes a README and docs update line item, ensuring release documentation ships with the feature rather than deferring it.

Full Changelog: v4.0.0...v4.0.1