Warp · Roadmap · 2026-08-15 · for red-pen

The Warp Roadmap

Where the fleet stands after last night’s release, what builds this week, and the one decision only you can make.

Draft for Robert’s annotation · one starred decision blocks a live run · comments sync back automatically

Locked: 0.6.144 live · seats ruling · auto-reap · nothing grades itself   Builds: cleanup · seat launcher · cards · flash · 0.6.145   Decisions: ★ egress · completeness · silent deaths · token receipts · version ranges

01

Where we stand — locked, not up for review

What last night settled. Everything below is built on these four.

Shipped
0.6.144 is live everywhere
Five independent reviews, a cold walk-through, seven gated production deploys. The release ships bytes once, measures liveness instead of guessing, and the strongest conductor now runs on all four fleet boxes.
↘ go deeper — the receipts
Marketplace at de-skills@49f8b93; lane deployed and route-probed; cold walk YES (docs/walks/0.6.144.walk.md); acceptance = five live production dispatches (docs/acceptance/0.6.144.acceptance.md); receipts on the trunk in PR #355. The conductor card (claude-fable-5) verified on each of the four boxes by reading the card back, not by trusting the push.
Ruled
Stacked personal subscriptions stay
Your ruling: team plans give barely any usage — stacking personal seats is the whole point. The team-plan consolidation is dead and stays dead.
Ratified
The machine cleans up after itself
Machinery deletes its own banked leftovers, with receipts; humans only ever see the genuinely unique residue. Until that build lands through the normal gates, the hand rhythm stands: proof table, then your one paste.
Ruled
Nothing grades itself
Coverage greens are records that independent reviews read — never verdicts. Ruled after five separate refutations of self-certifying completeness in one arc.
02

This week — five builds, in order

The journey: the fleet cleans up after itself, seats stop dying, cards stop lying, flash closes, and it all assembles into the next release.

  1. Cleanup with receipts + disk headroom check. The machine deletes its own banked leftovers and refuses new work when disk is low — receipts always. Three measured emergencies in one night are the case file.
    ↘ go deeper — the ratified spec
    Three reap classes (banked run debris, merged worktrees, superseded staging bundles), each with unique-bytes teeth: nothing is deleted unless its bytes provably exist elsewhere. Every reap writes a ledger row. A mandatory red proof — a deliberate should-refuse case — ships with the build. The emergencies: 48G on one box, ~100G on this Mac in an afternoon, and a box that hit literal zero mid-run and stranded finished work. Your words ratifying it: “Yes that’s fine and if there’s a way to manage this without me needing to paste that would be ideal.”
  2. The seat launcher. One word opens a terminal signed in as any subscription seat; seats run side by side, so an account switch stops killing working sessions — last night’s switch killed two mid-arc, including the one that wrote the handoff.
    ↘ go deeper — the design and its one trap
    Per-seat config folders (CLAUDE_CONFIG_DIR per Claude seat, CODEX_HOME per Codex seat) — sign in once each, tokens refresh themselves. seat <name> launches; seat ls reads each seat’s credential state honestly: signed-in / expiring / UNKNOWN, never guessed. The trap that bites silently: session memory and history live INSIDE each config folder, so keeper memory must be shared across seats deliberately — a one-time wiring decision in the build, not an afterthought. Extends the existing conversational connect flow for “connect my second claude/codex”. Afternoon-sized.
  3. Engine cards can never silently resolve empty. Setup either resolves an engine with its real home on the path, or refuses loudly when disk and card disagree. The class fix for last night’s blank-card incident.
    ↘ go deeper — the incident
    A routine fleet card refresh resolved binaries without the engine’s home directory on PATH, found nothing, and wrote blank cards to all four boxes. The queue was held before the fix, so zero runs were lost — but only because someone noticed. The cure lands in setup itself: resolution runs with engine homes on PATH, and a disk-vs-card disagreement is a loud refusal, never a blank write.
  4. Flash’s last rung — blocked on the starred decision. The cheap-capacity lane is one receipt from proven. Six failure rungs were named and cured one by one; the seventh needs your egress ruling (the starred decision below). The closing run is staged and fires on your word.
    ↘ go deeper — the six-rung ladder, each rung named by its own receipt
    r5 wrong runtime version (cured: the runtime contract, deploys #356–#357) → r6 package registry needed at boot (cured by design: baked at build time) → r7 installer writing to a read-only home (cured: cache and logs into run scratch, #358 — the installer’s own log landed next run) → r8 disk too small, measured 2.6G (cured: bigger tier, #359 — proven 6.4G next run) → r10 the crash’s witness log wasn’t the one captured (cured: ALL logs travel home, oldest first, #360–#361) → r11 named the real blocker: no network path to the package registry from inside the sealed container — hundreds of verbatim DNS-failure lines, while github access worked all night. Production already proved the runtime half on a customer workload. None of the rungs was guessed; every cure was deployed full-green and probed before anyone was told to trust it.
  5. 0.6.145 assembly. Everything above, plus two standing debts: dispatch briefs brought under the size cap (that debt cost two review legs and a proof run in a single night), and the nine-item definitions batch from the night’s filed findings.
    ↘ go deeper — the nine-item batch
    Scrubber false-positive class (three sightings) · path-identity verdict gating · nested-spawn permission error · a vacuous changed-files check · brief-class vs report-only custody · escort reliability (three distinct classes) · the honest-clock family: the card’s default time ceiling plus the ~1-hour engine session ceiling that currently shows up as a bare hard-stop — minimum cure is naming the cut in the record.
03

Next — the reliability arc

The standing ask: world-class reliability. Exit criterion — the Mac lane earns the box lane’s numbers, re-measured on the same buckets. Not vibes; the same measurement, repeated.

The baseline is measured, not felt: runs dispatched to the fleet boxes finish clean roughly 80–90% of the time; runs on this Mac, roughly 43%. The single biggest loss is runs that vanish without leaving a report — nobody has read that pile yet.

The moves, each already receipted as a real failure class:

  1. Check the seat before dispatching. An expired seat fails its first job and heals on the second — the door should catch it before the job dies.
  2. Refuse impossible jobs out loud. A job that cannot succeed gets a typed refusal at the door, not a silent death an hour later.
  3. One reachable path to dispatch. The supervised lane becomes the only way work leaves — no side doors that skip the belts.
  4. Every cut is named. When a vendor-side limit kills a run, the record says so — today the ~1-hour session ceiling shows up as a bare stop with no cause.
04

Horizon — team and 0.7

Sequenced after this week’s builds; each has a named precondition, none is speculative.

H1
Teammates arrive on stacked seats
Through the existing front door: the one-paste installer (cold-installed by CI on every release), the health table, conversational seat connect.
H2
Windows and Linux walks
Each owes a first-teammate receipted walk-through — doctrine-named debts, not new promises.
H3
Shared fleet capacity
More boxes as people join. Sharing becomes safe when the cleanup build lands — this week’s work is the precondition.
H4
Team visibility
The cloud run-record mirror turns on, so anyone can see what ran without asking.
H5
Box factory, production-grade
Death modes, long runs, concurrency — the filed plan. The port-shard factory work rides the new conductors.
05

Your decision pile — the red-pen targets

One starred decision blocks a live run today. The rest are filed with receipts and can wait for your pace.

1
The egress fork — blocks flash’s last rung.
The sealed build room has no network path to the package registry, by design. Fork: (A) pre-bake dependencies keyed to the project’s lockfile — the room stays sealed; my recommendation. (B) open registry access — one config change, but a permanent supply-chain surface into the sealed room, forever. The closing run is staged and fires the moment you rule.
↘ go deeper — the evidence behind the fork
The receipt: hundreds of verbatim DNS-failure lines (EAI_AGAIN) at dependency-install time, while github access from the same container worked every single time all night — so the wall is specific to the registry, not the network. Option A’s shape: at image-build time, install from the lockfile and bake the result, keyed by lockfile hash; a changed lockfile rebuilds the bake. Cost: a build step per dependency change. Option B’s cost: every future sealed run can be reached from the public registry — the exact class of surface the sealed room exists to remove.
2
Who owns “complete”?
After five refutations of self-certifying coverage, sweep results are now records, not verdicts. The open question: do recurring non-author reviews own sufficiency outright, and on what cadence?
3
Deaths before the engine starts leave no record.
A run that dies before the engine writes anything appears nowhere — no row, no reason. Where should that record live, and who writes it?
4
Cached-token receipt fields.
Land them for all engines at once, or first for the metered lane where real dollars ride on the numbers?
5
A refusal that’s technically wrong but honest.
The runtime contract refuses a project asking for “version 18 or 22” because it reads only the first option — a satisfiable ask, refused loudly and legibly. Fix it, or accept the conservative refusal?
06

Honest risks

Named plainly — we design for these, not around them.

Capacity is the ceiling
Four boxes; arcs already queue for windows. More capacity waits on safe sharing, which waits on the cleanup build.
Escort reliability
Three distinct failure classes receipted in one night. The belts caught every one — but belts are the net, not the fix; the definitions work is.
Engine session ceilings
Vendor-side cuts we can name but not raise. Routing around them costs engine-fit flexibility; the honest floor is naming every cut in the record.