Changelog
Early, and specific about it
The spine works end to end against a real CLI. Here is exactly what that covers and what it does not, because a roadmap written as though it had already shipped is the fastest way to lose the developers this is for.
Working end to end
- ✓Protocol, worker, tokens and runtime split into four packages
- ✓Claude Code and Codex adapters behind one interface, with a conformance suite
- ✓App-defined tools tunnelled over the worker's socket, proven against a real CLI
- ✓Live approvals: asked, allowed, denied, audited, and fail-closed throughout
- ✓Hashed, scoped, expiring pairing tokens over header auth
- ✓Cost classes declared, routed on, enforced worker-side, with a working ceiling
- ✓Device-code pairing and a service installer on launchd and systemd
Verified by the test suite plus e2e gates for v1 compatibility, hostile brokers, the tool loop, approvals both ways, header auth and legacy downgrade, routing, local models, metering, budgets and device pairing.
Not here yet
- ○The multi-tenant broker: today's registry is single-replica by acknowledged design
- ○The app SDK and a public /v1/runs endpoint
- ○Durable runs and resumption across a dropped socket
- ○Hosted runners: rung four is designed, not deployed
- ○Codex approvals: no hook yet, and it says so at run time rather than quietly granting
- ○The ChatGPT plan channel is tested against a fake service, never a real one
- ○The billing layer: plans, allowances and a per-user ledger priced at your rate rather than ours
- ○Payments: no checkout, no payouts, no code
- ○The components above, and the dashboard behind them
- ○The attribution invariant is written in the README and enforced nowhere
A dropped worker cancels its runs and does not migrate them. That is a limitation, not a roadmap item. Mid-turn migration is not possible, and saying so beats pretending.
Releases
What landed, and when
One entry so far. Soba was extracted from a working prototype rather than started cold, so the first release is the whole spine at once; every line below is a commit you can read.
The spin-out
The local worker leaves the prototype it grew in and becomes four packages: a protocol, a worker, a token library and a runtime, with the hosted broker kept separate.
Protocol
- Extract the local worker into a standalone, multi-runtime agent-compute layer
- Cost classes, measured auth, and no silent metered spend
- Route a run by who pays, and enforce the ceiling worker-side
Worker
- Tunnel app-defined tools, and harden the CLI containment
- A real approval channel for permission mode ask
- Install the worker as a service, so it survives the terminal
- Install a service from npx too, without recording its cache path
- Pair from a browser, so no one copies a bearer token again
- Offer to install once a run has actually worked
Tokens
- Scoped, hashed, expiring pairing tokens, and header auth
Runtime
- An agent loop, and local open weights as a tier nobody can revoke
- Metered tiers, real costs, and the ChatGPT plan channel
Tests
- Tell a flaky model apart from a broken loop in e2e:local
The protocol is frozen at v1's shape on purpose: a v2 worker still serves a v1 broker, and an e2e gate proves it on every run.
Watch it while it is still small
Nothing above is aspirational. Pair a machine against what already works, and the next entry on this page will say what changed.