Skip to content

v1.5.1

Choose a tag to compare

@noderaven noderaven released this 11 Oct 16:32
· 201 commits to main since this release
dba816f

This release keeps the conditions each launch started under. doctor's result is saved with the launch it was checked for, autopsy shows it beside the slowdowns, and the hand-back gets a one-line summary of the run tools, kept apart from whether the work was accepted.

Highlights

  • doctor records every check's outcome (checks: passed, warning, failed or skipped) with observed_at, doctor_version and run_id. A check that recorded nothing shows as skipped (not_recorded), never as passed. --save FILE keeps the JSON result; a save that is refused (a path inside the project) or fails prints "result not saved" and never changes doctor's exit code.
  • ledger conditions binds a saved doctor result to one launch as doctor-<wf>.json in the run's ledger, with the launch's wf id and setup ordinal. It refuses a reused observation, a second snapshot for one setup, a rebinding with other content, a file that is not a doctor result, and a ledger with no setup. No ledger event is added, so status and resume behave as before.
  • autopsy shows "Launch conditions" per launch (autopsy_version 4, keys launch_conditions and orphan_snapshots):
    • worded as observed before the launch; a warning beside a related slowdown is a "possible contributor", never a cause;
    • a snapshot that cannot be trusted (wrong run, observed after the launch started or before the previous launch ended, duplicate setup, unreadable) is reported as inconsistent and never shown as a condition;
    • details are rebuilt from fixed patterns only, so no path, URL, file name or command reaches the report; a reading doctor could not take is "could not be read" and is never a contributor;
    • runs archived before 1.5.1 say "launch conditions unavailable".
  • scripts/tool-outcomes prints the hand-back's "Run tools" line (doctor, archive, autopsy, cleanup). It takes doctor's part from autopsy's checked binding, so it never shows conditions under the wrong launch, and it never mentions acceptance. --json gives fixed states.
  • Task briefs accept bold **Consumes:** / **Produces:** labels, the forms derive-lanes already accepted. Before, a plan with bold labels got the right lanes but briefs without the Produces blocks of the tasks they consume.

Behaviour to know

  • A transient relaunch now runs doctor first. A hard failure there turns the stop into a real stop (the spend is recorded and the lock released). In git mode with status.showUntrackedFiles=no, untracked files left by the run's own checks now stop the relaunch at doctor instead of producing an unverified run.
  • The session binds the snapshot right after the Workflow call, using the real launch's wf id (never the dry run's). A refusal never stops the run; the hand-back line says why the conditions were not recorded.

Smaller changes

  • autopsy parses each configured check command once instead of on every call.
  • One shared holdLock test helper.
  • Real-transcript regression fixtures (from r150 and r142, trimmed and scrubbed) for the three autopsy false positives fixed around 1.5.0.

Testing

  • node tests/run-tests.mjs: 1065 tests, 1051 pass, 14 skipped, 0 fail on Windows locally; CI passed on Ubuntu (Node 22 and 24), macOS and Windows.
  • The new and changed test files also pass on Python 3.8.20 (176 pass, 1 skipped).
  • Built by parallel-lanes run r152 (1.5.0 engine): 9 tasks in 5 lanes plus 2 join tasks (one an end-to-end test of the whole chain), 26 agents, 59 min, no rulings, every task approved in its first review, 16 final-review findings fixed and none open, accepted with check-verify match.

Compatibility

  • Additive: doctor's existing JSON keys and exit codes, ledger status, resume and run-report's output are unchanged.
  • autopsy's format moves to autopsy_version 4; history redoes older autopsies automatically.

Upgrade

In your clone:

git pull && bash install.sh

Then start a new session, or run /clear, so the skill and hooks reload. Do not install while a parallel-lanes run is in progress: its agents use the installed helper scripts.