2026.10.1
Cut on 2026-10-19. Status: beta. The first update to the monorepo, built by the lanes in the new repository. It fixes what moving four real machines to 2026.10.0 turned up, runs every test suite in parallel, and trims the largest test files.
The move from 0.47 works on real machines. cox setup migrate copies a team provider profile kept inside the old
cartridges checkout into the home and points provider_profile at the copy; writes repo_map back as one-line JSON
the profile reader accepts; releases its checkout leases when it ends and says so when a release fails; and fetches
the release tag into a shallow checkout and syncs the venv before anything runs the checkout's interpreter.
cox install clones the checkout at its own release tag when the home has none, so a first install needs no clone by
hand. Syncing the checkout's venv keeps packages installed into it by hand, so plugins survive cox upgrade.
Faster checks. Every test suite runs with pytest-xdist, in CI and in the lanes' checks: the four suites finish in
about a minute and a quarter instead of five and a half. The extras job stays serial, because its Postgres store tests
back the test database up with pg_dump. Lanes check every component suite through a root .agent-checks file. The
largest test files are consolidated to one literal-input test per rule. On pull requests CI no longer runs the
Python 3.15 job, which takes about twenty minutes; it runs on every push to main.
Smaller fixes. The five-hour spend estimate counts from the meter's window against the profile's window ceiling,
and towpath marks an estimated fraction as one. A decomposed intake's row turns decomposed and links its
initiative, so the empty-queue notice fires again. A release commits its releases-index rewrite even when the version
needs no bump.
coxswain
setup migratekeeps an untracked provider profile (#351), writesrepo_mapas JSON (#365), releases its leases (#342, #354) and fetches the tag into a shallow checkout before syncing (#353, #359).cox installclones the checkout itself (#341, #362); venv syncs keep hand-installed packages (#357).- Every suite runs in parallel (#340, #352); lanes check every suite (#337); py315 runs on main only (#344).
- Test consolidation: test_route (#348, #366), test_land (#347, #364, #367), test_chair_exec (#346, #356, #358), test_claude_code_runner (#360, #363), test_epic_driver (#349, #361).
- The five-hour estimate follows the meter window (#339, #350).
- A decomposed intake links its initiative (#345); the release commits its index rewrite (#343, #355).
- Docs match the code at 2026.10.0 (#338).
coxswain-dash
- towpath marks an estimated five-hour fraction and caps its text at >100% (coxswain-dash #140).
Known gaps
cox setup migrate leaves a machine's checkout on the release tag, while cox host sync and a lane launch update a
checkout only on main; the fleet runs main, so its checkouts were moved to main by hand. The chair relaunches an epic
whose work graph is invalid without raising a hold. The empty-decompose hold can fire before the decompose's tasks are
imported. Runtime state still lives in the workspace's runs folder.
The gate for 2026.10.1 was the hosted rehearsal of the release commit, whose fresh, upgrade and migrate jobs passed, and a clean-machine rehearsal in a throwaway container running the same scenarios.
Migrations: none
Components
coxswain is released at 2026.10.1. coxswain-dash changes and is released with it.
Upgrading from 2026.10.0. The store schema is unchanged. Update cox itself (brew upgrade cox or
uv tool upgrade coxswain), then run cox upgrade.