Skip to content

0.8.0

Cut on 2026-09-16. coxswain-cartridges, coxswain-graphs and coxswain-tools are tagged v0.8.0 in lockstep; coxswain-crew is pinned at v0.7.0 for the first time instead of re-tagged, and coxswain-tools is published to PyPI from its tag. Status: beta; nothing here breaks a 0.7.0 install. This release closes the graphs half of G5 cost bounds and all but one ticket of G7 triage, and fixes the fix loop's habit of throwing away correct builds — the theme is that done now means on main, a build is judged by what it changed, and the machine can classify its own stranded work.

coxswain-graphs

  • The graphs triage graph classifies a stranded item from its attempt facts and emits by class — a ticket amendment, a platform-defect item, a decompose handoff or a notification — and escalates a repeated (class, diagnosis) pair instead of firing again (graphs #99, #100, #105).
  • The graphs epic writes approved, never done: done is written only when a task reaches main, an approved phase still feeds the next phase inside the run, and the exit summary names every approved task that was not landed with its land command (graphs #106, #112).
  • The graphs fix loop judges a post-arbitration retry by whether the arbiter's scoped files moved, treats only repository paths as scope, and reads this repository's c/+i/ diff headers, so a narrow correct revision reaches review instead of stopping as no_progress (graphs #107, #108, #109).
  • The graphs build step validates a build's output before handoff — the patch's file set must equal files_touched and the ticket's evidence commands must appear in commands_run with output — and a placeholder is re-prompted once, cap-exempt, then quarantined as build_output_invalid (graphs #110, #111, #113).
  • The graphs epic recreates a phase branch whose commits are all on main by patch-id instead of refusing it as "behind main"; a branch with a genuinely unapplied commit is still refused (graphs #115).
  • Node ceilings in graphs resolve from policy.cost through the bounds file, with a per-node cap (graphs #101, #102).
  • Autonomy scope in graphs follows the routing profile, and a provider profile hash keys the ledger's streaks so a streak earned under one binding never transfers to another (graphs #103, #104).

coxswain-tools

  • cox runs land --task and cox runs recover in tools move the work item from approved to done, and recover --dry-run touches nothing on any branch (tools #153).
  • cox runs stranded in tools lists every approved task that never reached main, with its recovery line (tools #154).
  • cox runs clean in tools keeps an agents branch whose task is not on main and prints the land command, unless --force (tools #159).
  • Bare cox in tools opens the Claude session with the coxswain plugin and takes the chair as chair-<date>; a live foreign chair is printed, never stolen; cox home stays the dashboard (tools #157).
  • Pacing in tools stops hard at 99% of the window ceiling, cox setup install --window-ceiling-usd writes the profile's spend: block, and cox usage assess reads that ceiling like route context (tools #158).
  • The tools release planner pins a lockstep = false component instead of tagging it, and its preflight guards ignore a pinned repository's remote (tools #156).
  • cox route launch decompose in tools writes initiative.md under work/<id>/ (tools #155).

coxswain-cartridges

  • The cartridges policy gains policy.cost: {level, bounds} — strict, moderate or liberal ceilings, tighten-only — which the graphs bounds file reads (cartridges #72).

coxswain

The umbrella's releases index gained its missing 0.2.0, 0.4.0 and 0.5.0 sections, so the page no longer jumps from 0.6.0 to 0.3.0 (coxswain #46).

Known gaps

release-check still reports false cli_surface drifts for the bare cox and the setup/dev groups, so this release was cut with --allow-doc-drift; the fix is filed. A node that dies on the account's session limit is still recorded as a task attempt rather than pausing the run; bare cox prints the chair heartbeat command instead of starting a beater. The graphs triage half is eight tickets of nine: the docket's stranded count rolls to 0.9.0 after three rounds of contradictory arbitration, as do three graphs-loop-fixes tickets at the attempt cap. The P projects begin at 0.9.0.

Components

coxswain-graphs, coxswain-tools, coxswain-cartridges and coxswain carry the changes above. coxswain-crew is unchanged since v0.7.0 and is pinned there; it is released on its own version from now on.