0.37.0
Cut on 2026-10-11. Status: beta. The first release after the feature freeze: it fixes the defects the 2026-10-07 bug scan found and hardens the chair loop, so a stuck land, a hung call or a dead feed no longer stalls the queue.
A loop that does not hang. Calls on the chair's tick path and its store connections carry timeouts, a refused land retries on a bounded back-off, and the repository land lease is renewed for as long as the land runs. The red-main revert reruns a flaky check before it reverts and never leaves the checkout on its branch. A land's wait for checks sees a startup failure and bounds a required check that never appears.
Runs. Store writes during a run are retried, and network calls in a run time out and kill their process group. A test failure outside a ticket's surfaces is a ticket cause that names the files. Decompose sizes an intake first, so a one-ticket intake becomes one task.
Deferred to 0.38.0. Two quarantined tasks of the login check (host-doctor-local-branch and
login-check-evidence-and-two-strikes); the release fetching before it tags; the chair service unit's doctor PATH
row; the runs STATUS chip's remaining task; the release notes' cheap opener; and the claude runner's process-group
kill.
Upgrading from 0.36.0. Nothing migrates and the store schema is unchanged. Restart the chair loop. A cartridge
may list repositories under epic_threshold.inline.repos to let the chair work a change of at most
epic_threshold.inline.files_max files inline; the list is empty by default, so nothing changes until you opt in.
coxswain-cartridges
- The chair can work a small change inline in an opted-in repository (cartridges #199).
- route-work tells the chair to hand most work to subagents and background jobs (cartridges #201).
coxswain-dash
- The chair panel's terminal follows its pane size, including after a resize (dash #114, dash #118, dash #119).
- The runs STATUS chip shows whole at 80 columns (dash #115).
- A landed task without a pull-request number no longer freezes the board (dash #117).
- A dead or unparseable feed shows its error in the status line (dash #120, dash #121).
coxswain-graphs
- Every quarantine records its cause, including a merge conflict (graphs #728).
- A test failure outside the ticket's surfaces is a ticket cause that names the files, and the refix may touch them (graphs #732, graphs #734, graphs #737).
- The test suite sends no real courier notes (graphs #730); each CI job gets 15 minutes (graphs #731).
- Store writes during a run are retried, and the store connection has a timeout (graphs #740, graphs #742).
- Decompose sizes an intake first and turns a one-ticket intake into one task (graphs #743, graphs #744, graphs #745).
- Network calls in a run time out, and a timed-out check kills its process group (graphs #746, graphs #747).
coxswain-tools
- Subprocess and store calls on the tick path have timeouts, and the loop's store calls cannot hang a tick (tools #1485, tools #1503).
- The land back-off caps its exponent (tools #1487); a refused land retries on its back-off with bounded attempts (tools #1489, tools #1492).
- A fetch refused because the run is still live is a skip (tools #1486).
- The red-main revert reruns a flake first and never leaves the checkout on its branch (tools #1490, tools #1499, tools #1500).
- The repository land lease is renewed for the length of the land (tools #1491).
- wait_checks sees a startup failure and bounds a missing required check (tools #1496, tools #1498).
- Route priority reaches the store, decomposed tasks inherit it, and ties go to the oldest ready task (tools #1493, tools #1494).
- The login check keeps its evidence, and one unreadable reply blocks nothing (tools #1495, tools #1517).
cox setup doctorwarns on a stale model tier (tools #1501).- A run that exits awaiting_land shows as idle, not crashed (tools #1502).
- The dashboard feed reads the store's meter for the weekly window (tools #1506, tools #1513).
cox statsingests the store again and counts lands (tools #1507, tools #1510).- The CLI startup ceiling tests measure against a baseline and a stable load check (tools #1488, tools #1497, tools #1505, tools #1508); a second load-check change was reverted (tools #1515, tools #1516).
- The chair service unit renders a PATH that reaches
cox(tools #1518).
coxswain (umbrella)
- The install proof judges
cox setup doctorby its rows and accepts rows that only await setup (coxswain #264, coxswain #265), and its negative control proves the checks run (coxswain #266). - CI pins uv to Python 3.14 (coxswain #267).
- The docs name real commands and describe changed-only versioning (coxswain #268).
- The groundwork for a release that drafts its own notes: the PR window, blank markers, index and nav lines, and the notes blocks (coxswain #269, coxswain #270, coxswain #271, coxswain #272).