Skip to content

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 doctor warns 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 stats ingests 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 doctor by 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).