Repository navigation
v2.4.0 — The Blueprint Complete
All 20 items of the 100-concurrent-agent scale blueprint are now shipped. Fittingly, this final piece was selected by the fleet dispatcher itself — work next --start picked, claimed, and branched issue #2 with no human routing — and landed through the gated PR lifecycle (#8).
New: the swarm reconciler — the closer of last resort
Crashed agents leave GitHub-side residue no local janitor can reach. Every 10 minutes (plus manual dispatch and repository_dispatch[agent-sync]), agent-reconcile.yml runs a level-triggered, idempotent pass:
- One batched GraphQL read of all open issues, labels, and comments.
- Re-seed
state:availableonto open issues that lost every coordination label — abandoned work re-enters the claimable pool automatically. - Dedupe racing
agent-impactcomment families, keeping the lowest id; human comments are untouchable. - Each mutation is individually idempotent and logged as ndjson (the Action run is an audit trail). Runs on
GITHUB_TOKENonly: event-inert and a separate rate budget from the agent fleet's shared token. - Tests prove the core property: a reconciled state re-plans to zero actions.
The complete loop, as of this release
File an agent-task issue (machine-parsable form, born claimable) → work next routes it to an idle agent (impact-overlap-aware, fleet-decorrelated) → atomic cross-machine checkout (label CAS) → branch → gated PR landing (auto-merge behind required CI checks, content-based merge-race guard) → reconciler sweeps any residue → self-updating installs deliver the result to every user at their next session start (auto-update default-on, backup + new-engine selftest + auto-rollback).
This is also the first release delivered through the v2.3.0 update system — if you're on v2.3.0, your agents have already seen the [UPDATE] notice.
Suite: 155 tests, selftest 60 checks, swarm invariants verified per-commit on ubuntu and windows. Full details in CHANGELOG.md.