carlos / platform Public

docs: zero-downtime roll notes, owed lists as of 2026-10-14 (#272)

"Before Gate E: owed" and "Still owed (code)" now give the current state:
readiness rounds 1 to 3, rev 19 (v0.27.2) and #292 (v0.27.3) merged and
released; Gates F and G passed and all four flagship boxes armed; dev being
armed; the kernel checks closed by the root test runner's 2026-10-14 run;
mixed-version retries as run on dev round 4, with the untried case covered
by construction; the settings plan 4 items this branch closes, and the
consumed/ census item it leaves open; claims-on swaps still a future
feature. The subsections below stay as history.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude agent, operated by paul@keymail.dev f4097c6ca08f0c30f77d92d84dd70d88908009ba parent ae63667
1 file changed, +113 −128
  • docs/superpowers/plans/2026-10-07-zero-downtime-deploys-6-roll-notes.md +113 −128

CI failed — run details

CI log
=== gate ===
cd launchctx && go vet ./... && go test ./... -count=1
ok  	amadan.net/carlos/platform.git/launchctx	0.011s
?   	amadan.net/carlos/platform.git/launchctx/controlname	[no test files]
?   	amadan.net/carlos/platform.git/launchctx/wireid	[no test files]
go vet ./...
gofmt -l .: clean
go test ./... -count=1 -timeout 30m
ok  	github.com/carlosframework/platform	335.689s
?   	github.com/carlosframework/platform/cmd/changelog	[no test files]
ok  	github.com/carlosframework/platform/cmd/console	3.047s
ok  	github.com/carlosframework/platform/cmd/moveprobe	93.246s
ok  	github.com/carlosframework/platform/cmd/zddprobe	0.704s
ok  	github.com/carlosframework/platform/internal/activator	238.394s
ok  	github.com/carlosframework/platform/internal/agentsock	0.015s
ok  	github.com/carlosframework/platform/internal/alerting	0.004s
ok  	github.com/carlosframework/platform/internal/analytics	0.020s
ok  	github.com/carlosframework/platform/internal/appconfig	2.324s
ok  	github.com/carlosframework/platform/internal/apperr	0.074s
ok  	github.com/carlosframework/platform/internal/applog	0.132s
ok  	github.com/carlosframework/platform/internal/awsinv	0.003s
ok  	github.com/carlosframework/platform/internal/boxchoice	0.004s
ok  	github.com/carlosframework/platform/internal/boxid	0.710s
?   	github.com/carlosframework/platform/internal/boxid/boxidtest	[no test files]
?   	github.com/carlosframework/platform/internal/boxid/internal/signtest	[no test files]
ok  	github.com/carlosframework/platform/internal/boxvolumes	0.008s
ok  	github.com/carlosframework/platform/internal/caps	0.012s
ok  	github.com/carlosframework/platform/internal/certwarm	0.002s
ok  	github.com/carlosframework/platform/internal/cgroup	0.696s
ok  	github.com/carlosframework/platform/internal/changelog	0.321s
ok  	github.com/carlosframework/platform/internal/clamd	0.054s
?   	github.com/carlosframework/platform/internal/cliflag	[no test files]
ok  	github.com/carlosframework/platform/internal/console	362.453s
?   	github.com/carlosframework/platform/internal/controlname	[no test files]
?   	github.com/carlosframework/platform/internal/controlsock	[no test files]
ok  	github.com/carlosframework/platform/internal/dbdoor	5.553s
ok  	github.com/carlosframework/platform/internal/dbdoor/dbdoortest	0.008s
ok  	github.com/carlosframework/platform/internal/dbverify	0.005s
ok  	github.com/carlosframework/platform/internal/dnsrec	0.002s
ok  	github.com/carlosframework/platform/internal/docsite	0.005s
ok  	github.com/carlosframework/platform/internal/domains	2.221s
ok  	github.com/carlosframework/platform/internal/doorkey	0.006s
ok  	github.com/carlosframework/platform/internal/economics	0.003s
ok  	github.com/carlosframework/platform/internal/edge	26.089s
?   	github.com/carlosframework/platform/internal/edgeproof	[no test files]
ok  	github.com/carlosframework/platform/internal/edgesfile	0.007s
ok  	github.com/carlosframework/platform/internal/fleetapi	0.120s
ok  	github.com/carlosframework/platform/internal/gate	1.655s
ok  	github.com/carlosframework/platform/internal/genselect	0.014s
ok  	github.com/carlosframework/platform/internal/geo	0.018s
ok  	github.com/carlosframework/platform/internal/geoip	0.029s
ok  	github.com/carlosframework/platform/internal/host	125.604s
ok  	github.com/carlosframework/platform/internal/hostactors	0.387s
ok  	github.com/carlosframework/platform/internal/hostbox	2.146s
ok  	github.com/carlosframework/platform/internal/hostclaim	0.522s
ok  	github.com/carlosframework/platform/internal/hostevidence	0.005s
ok  	github.com/carlosframework/platform/internal/hostexec	4.863s
ok  	github.com/carlosframework/platform/internal/hostfence	0.033s
ok  	github.com/carlosframework/platform/internal/hostfiles	10.547s
ok  	github.com/carlosframework/platform/internal/hostfloor	0.012s
ok  	github.com/carlosframework/platform/internal/hostguard	1.013s
ok  	github.com/carlosframework/platform/internal/hostops	1.441s
?   	github.com/carlosframework/platform/internal/hostops/fencerelease	[no test files]
ok  	github.com/carlosframework/platform/internal/hostops/internal/fencerelease	0.002s
ok  	github.com/carlosframework/platform/internal/hostquarantine	0.002s
ok  	github.com/carlosframework/platform/internal/hostrelocate	0.435s
ok  	github.com/carlosframework/platform/internal/hostresolve	0.137s
ok  	github.com/carlosframework/platform/internal/hostwrite	0.003s
ok  	github.com/carlosframework/platform/internal/infraview	0.023s
ok  	github.com/carlosframework/platform/internal/instancectl	3.505s
ok  	github.com/carlosframework/platform/internal/instanceexec	2.705s
ok  	github.com/carlosframework/platform/internal/instancefs	0.024s
ok  	github.com/carlosframework/platform/internal/instancekey	0.023s
ok  	github.com/carlosframework/platform/internal/instanceupdates	0.025s
ok  	github.com/carlosframework/platform/internal/layout	1.422s
ok  	github.com/carlosframework/platform/internal/lease	9.812s
ok  	github.com/carlosframework/platform/internal/lease/leasetest	0.007s
ok  	github.com/carlosframework/platform/internal/ledger	0.014s
ok  	github.com/carlosframework/platform/internal/mail	0.172s
ok  	github.com/carlosframework/platform/internal/maintenance	0.077s
ok  	github.com/carlosframework/platform/internal/maintenanceexec	5.539s
ok  	github.com/carlosframework/platform/internal/maintenanceguard	0.067s
ok  	github.com/carlosframework/platform/internal/metrics	0.004s
ok  	github.com/carlosframework/platform/internal/moves	20.999s
ok  	github.com/carlosframework/platform/internal/moves/archive	0.777s
ok  	github.com/carlosframework/platform/internal/objstore	0.181s
ok  	github.com/carlosframework/platform/internal/ops	0.161s
ok  	github.com/carlosframework/platform/internal/park	0.193s
ok  	github.com/carlosframework/platform/internal/privatefile	0.003s
2026/10/14 22:50:06 provision: listing apps/bab/blog/instances/: list refused — its records are unseen this pass
2026/10/14 22:50:06 provision: listing apps/bab/: listdirs refused — its records are unseen this pass
2026/10/14 22:50:06 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:06 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:06 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:06 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/14 22:50:06 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/14 22:50:06 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/14 22:50:06 provision: remove retired instance route shop.example: provision: claim admission unavailable
2026/10/14 22:50:06 provision: remove retired instance route shop.example: provision: claim admission unavailable
2026/10/14 22:50:06 provision: remove retired sidecar route worker.sidecar.internal: provision: claim admission unavailable
2026/10/14 22:50:06 provision: remove retired sidecar route worker.sidecar.internal: provision: claim admission unavailable
2026/10/14 22:50:06 provision: claim install acme.go.tito.io: provision: claim admission unavailable
2026/10/14 22:50:06 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:06 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/14 22:50:06 provision: claim install bot.eleven.bac.sidecar.internal: provision: claim admission unavailable
2026/10/14 22:50:06 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/14 22:50:06 provision: claim install bot.eleven.bac.sidecar.internal: registry: claim row ownership changed or unknown
2026/10/14 22:50:06 provision: refusing to mint route acme.go.tito.io (app "tito" acct "bac"): this box declares CARLOS_INBOUND=none (no-inbound) and cannot serve routed instance traffic
2026/10/14 22:50:06 provision: acme.go.tito.io: not minting this pass: the box's layout intent could not be read: no sealed config
2026/10/14 22:50:06 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:06 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:06 provision: REFUSING to mint sidecar bot.eleven.bac.sidecar.internal: bot.eleven.bac.sidecar.internal-sidecar.env is staged on this box — the legacy file co-spawn and a native sidecar row are two mechanisms for one host; remove the file to migrate this host onto sidecar records
2026/10/14 22:50:06 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/14 22:50:06 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/14 22:50:06 provision: refusing to mint route acme.go.tito.io (app "tito" acct "bac"): this box declares CARLOS_INBOUND=none (no-inbound) and cannot serve routed instance traffic
2026/10/14 22:50:06 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:06 provision: REFUSING to mint sidecar bot.eleven.bac.sidecar.internal: bot.eleven.bac.sidecar.internal-sidecar.env is staged on this box — the legacy file co-spawn and a native sidecar row are two mechanisms for one host; remove the file to migrate this host onto sidecar records
2026/10/14 22:50:06 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/14 22:50:06 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/14 22:50:06 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:06 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/14 22:50:06 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:06 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/14 22:50:07 provision: bot.eleven.bac.sidecar.internal exists but is not a sidecar row this pass owns (kind "sidecar" provisioned false app "eleven" acct "bac") — leaving it alone
2026/10/14 22:50:07 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/14 22:50:07 provision: claim install bot.eleven.bac.sidecar.internal: registry: claim row ownership changed or unknown
2026/10/14 22:50:07 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/14 22:50:07 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/14 22:50:07 provision: bot.eleven.bac.sidecar.internal exists but is not a sidecar row this pass owns (kind "sidecar" provisioned false app "eleven" acct "bac") — leaving it alone
2026/10/14 22:50:07 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/14 22:50:07 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/14 22:50:07 provision: skipping record apps/bac/tito/instances/new.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/14 22:50:07 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/14 22:50:07 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/14 22:50:07 provision: skipping record apps/bac/tito/instances/new.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/14 22:50:07 provision: minted instance route rk.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route rl.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route rb.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route rc.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route rd.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route re.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route rg.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route ri.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route ra.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route rf.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route rh.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route rj.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route ra.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route rb.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route rc.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route rd.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: skipping record apps/bac/tito/instances/rb.go.tito.io.json: read failed: read refused
2026/10/14 22:50:07 provision: skipping record apps/bac/tito/instances/rb.go.tito.io.json: read failed: read refused
2026/10/14 22:50:07 provision: minted instance route re.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route x.appg.example (app "appg" acct "bac")
2026/10/14 22:50:07 provision: minted instance route x.appi.example (app "appi" acct "bac")
2026/10/14 22:50:07 provision: minted instance route x.appj.example (app "appj" acct "bac")
2026/10/14 22:50:07 provision: minted instance route x.appa.example (app "appa" acct "bac")
2026/10/14 22:50:07 provision: minted instance route x.appb.example (app "appb" acct "bac")
2026/10/14 22:50:07 provision: minted instance route x.appc.example (app "appc" acct "bac")
2026/10/14 22:50:07 provision: minted instance route x.appe.example (app "appe" acct "bac")
2026/10/14 22:50:07 provision: minted instance route x.apph.example (app "apph" acct "bac")
2026/10/14 22:50:07 provision: minted instance route x.appd.example (app "appd" acct "bac")
2026/10/14 22:50:07 provision: minted instance route x.appf.example (app "appf" acct "bac")
2026/10/14 22:50:07 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/14 22:50:07 provision: minted instance route r0071.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0083.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0023.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0017.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0092.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0121.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0000.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0064.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0069.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0095.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0097.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0035.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0120.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0124.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0006.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0016.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0063.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0111.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0128.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0002.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0062.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0074.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0118.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0129.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0049.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0055.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0078.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0082.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0085.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0103.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0108.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0004.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0058.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0117.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0066.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0115.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0028.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0110.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0020.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0037.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0039.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0048.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0060.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0084.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0041.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0043.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0087.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0099.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0112.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0114.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0122.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0031.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0050.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0054.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0003.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0053.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0081.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0014.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0070.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0086.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0010.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0030.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0051.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0061.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0090.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0116.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0025.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0104.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0001.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0012.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0021.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0036.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0038.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0056.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0091.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0040.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0067.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0072.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0079.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0080.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0126.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0033.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0065.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0096.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0007.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0075.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0009.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0022.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0100.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0106.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0034.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0098.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0011.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0057.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0107.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0018.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0026.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0027.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0059.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0094.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0125.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0044.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0068.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0077.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0119.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0123.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0032.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0052.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0073.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0101.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0008.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0019.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0024.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0045.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0102.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0105.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0109.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0127.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0029.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0046.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0042.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0047.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0076.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0015.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0088.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0089.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0093.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0113.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0005.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:07 provision: minted instance route r0013.go.tito.io (app "tito" acct "bac")
--- FAIL: TestPlan14RootReadCensus (9.79s)
    plan14_root_reads_test.go:690: root read census: 10 discrepancies
        changed root read internal/activator/activator.go:Service.doWake; review class, task, sites and digest
        changed root read internal/activator/backend_exec.go:ExecBackend.seedChild; review class, task, sites and digest
        changed root read internal/activator/backend_exec.go:ExecBackend.seedUnit; review class, task, sites and digest
        changed root read internal/activator/beforeexec.go:Service.settleWakeIdentity; review class, task, sites and digest
        changed root source envelope internal/activator
        changed root source envelope internal/release
        changed legacy declaration internal/activator/activator.go:Service.doWake
        changed legacy declaration internal/activator/backend_exec.go:ExecBackend.seedChild
        changed legacy declaration internal/activator/backend_exec.go:ExecBackend.seedUnit
        changed legacy declaration internal/activator/beforeexec.go:Service.settleWakeIdentity
2026/10/14 22:50:17 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:17 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:17 provision: refusing to mint route acme.go.tito.io (app "tito" acct "bac"): this box declares CARLOS_INBOUND=none (no-inbound) and cannot serve routed instance traffic
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted service route svc.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted instance route whole.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted instance route console.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted service route ha.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted instance route shared.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: converged acme.go.tito.io channel stable -> edge
2026/10/14 22:50:18 provision: converged acme.go.tito.io channel edge -> canary/rehearsal
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: empty channel
2026/10/14 22:50:18 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: converged acme.go.tito.io environment "" -> "staging"
2026/10/14 22:50:18 provision: converged acme.go.tito.io environment "staging" -> ""
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: converged acme.go.tito.io steering "" -> "latency"
2026/10/14 22:50:18 provision: converged acme.go.tito.io steering "latency" -> ""
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: converged acme.go.tito.io hibernate false -> true
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: converged acme.go.tito.io hibernate true -> false (replication "daily" cleared: only a hibernating route's rung is read)
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: converged acme.go.tito.io status-named false -> true
2026/10/14 22:50:18 provision: converged acme.go.tito.io status-named true -> false
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted service route ha.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: converged ha.go.tito.io upstreams addr "" -> "", addrs "127.0.0.1:7001,127.0.0.1:7002" -> "127.0.0.1:7001,127.0.0.1:7003" (probe "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}" -> "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}")
2026/10/14 22:50:18 provision: converged ha.go.tito.io upstreams addr "" -> "", addrs "127.0.0.1:7001,127.0.0.1:7003" -> "127.0.0.1:7003,127.0.0.1:7001" (probe "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}" -> "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}")
2026/10/14 22:50:18 provision: converged ha.go.tito.io upstreams addr "" -> "", addrs "127.0.0.1:7003,127.0.0.1:7001" -> "127.0.0.1:7003,127.0.0.1:7001" (probe "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}" -> "{\"path\":\"/healthz\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}")
2026/10/14 22:50:18 provision: minted service route whole.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: converged whole.go.tito.io upstreams addr "127.0.0.1:9443" -> "", addrs "" -> "127.0.0.1:9443,127.0.0.1:9444" (probe "" -> "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}")
2026/10/14 22:50:18 provision: converged whole.go.tito.io upstreams addr "" -> "", addrs "127.0.0.1:9443,127.0.0.1:9444" -> "" (probe "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}" -> "")
2026/10/14 22:50:18 provision: whole.go.tito.io: record describes a different route SHAPE than the row (kind "instance"/"service" unit ""/"" socket "/run/carlos/whole.go.tito.io.sock"/"" db "/data/whole.go.tito.io.db"/"") — not converged in place; `carlos remove whole.go.tito.io` purges this route's capability grants (registry.Delete's contract, not a bug) before the next pass re-mints it, so treat that as a last resort, not a routine fix
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted service route whole.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: skipping accounts/bac/account.json: malformed account manifest: invalid character 'o' in literal null (expecting 'u')
2026/10/14 22:50:18 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: manifest bac/tito: read failed: provision: manifest bac/tito: invalid character 'o' in literal null (expecting 'u')
2026/10/14 22:50:18 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: disagrees with its own path (host="wrong-host.go.tito.io" account="bac" app="tito")
2026/10/14 22:50:18 provision: skipping record apps/bac/tito/instances/acme$evil.go.tito.io.json: host "acme$evil.go.tito.io" is not a hostname
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: skipping record apps/bac/tito/instances/acme$evil.go.tito.io.json: host "acme$evil.go.tito.io" is not a hostname
2026/10/14 22:50:18 provision: not removing acme$evil.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/14 22:50:18 provision: skipping record apps/bac/tito/instances/bad-service.go.tito.io.json: invalid shape: kind service with no addr: the platform only proxies to a service, so the record must name the upstream it proxies to
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: skipping record apps/bac/tito/instances/bad-service.go.tito.io.json: invalid shape: kind service with no addr: the platform only proxies to a service, so the record must name the upstream it proxies to
2026/10/14 22:50:18 provision: not removing bad-service.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/14 22:50:18 provision: skipping record apps/bac/tito/instances/no-channel.go.tito.io.json: empty channel
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: skipping record apps/bac/tito/instances/no-channel.go.tito.io.json: empty channel
2026/10/14 22:50:18 provision: not removing no-channel.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/14 22:50:18 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/14 22:50:18 provision: removed retired instance route ghost.go.tito.io (record gone)
2026/10/14 22:50:18 provision: duplicate host dup.go.tito.io: keeping apps/bac/tito/instances/dup.go.tito.io.json, skipping apps/bad/tito/instances/dup.go.tito.io.json
2026/10/14 22:50:18 provision: minted instance route dup.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/14 22:50:18 provision: removed retired instance route acme.go.tito.io (app in the trash)
2026/10/14 22:50:18 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/14 22:50:18 provision: removed retired static route site.go.tito.io (app in the trash)
2026/10/14 22:50:18 provision: trash marker for bac/tito unreadable: release: malformed trash marker for bac/tito: invalid character 'n' looking for beginning of object key string — not minting for this app
2026/10/14 22:50:18 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/14 22:50:18 provision: removed retired instance route acme.go.tito.io (app in the trash)
2026/10/14 22:50:18 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/14 22:50:18 provision: trash marker for bac/tito unreadable: release: malformed trash marker for bac/tito: invalid character 'n' looking for beginning of object key string — not minting for this app
2026/10/14 22:50:18 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/14 22:50:18 provision: converged acme.go.tito.io channel stable -> edge
2026/10/14 22:50:18 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/14 22:50:18 provision: converged acme.go.tito.io channel canary/rehearsal -> edge
2026/10/14 22:50:18 provision: converged acme.go.tito.io environment "staging" -> ""
2026/10/14 22:50:18 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/14 22:50:18 provision: acme.go.tito.io exists but is not the route this record describes (backing "unit" (box-scoped, not expressible in a record)) — leaving it alone
2026/10/14 22:50:18 provision: acme.go.tito.io exists but is not the route this record describes (tunnel "pi-fleet" (box-scoped, not expressible in a record)) — leaving it alone
2026/10/14 22:50:18 provision: acme.go.tito.io exists but is not the route this record describes (caps "port:25" (box-scoped, not expressible in a record)) — leaving it alone
2026/10/14 22:50:18 provision: acme.go.tito.io exists but is not the route this record describes (platform (owned by the domains reconcile pass)) — leaving it alone
2026/10/14 22:50:18 provision: acme.go.tito.io exists but is not the route this record describes (canary (owned by the domains reconcile pass)) — leaving it alone
2026/10/14 22:50:18 provision: acme.go.tito.io exists but is not the route this record describes (db "/data/other.db"/"/data/acme.go.tito.io.db") — leaving it alone
2026/10/14 22:50:18 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/14 22:50:18 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/14 22:50:18 provision: dry-run: would mint instance route acme.go.tito.io (app "tito" acct "bac" channel "stable")
2026/10/14 22:50:18 provision: dry-run: would adopt existing route adopt.go.tito.io (app "tito" acct "bac") — this record would own its channel and environment
2026/10/14 22:50:18 provision: dry-run: would converge adopt.go.tito.io channel stable -> edge
2026/10/14 22:50:18 provision: dry-run: would converge adopt.go.tito.io environment "" -> "staging"
2026/10/14 22:50:18 provision: dry-run: would converge owned.go.tito.io channel stable -> edge
2026/10/14 22:50:18 provision: dry-run: would converge owned.go.tito.io environment "" -> "staging"
2026/10/14 22:50:18 provision: dry-run: would converge owned.go.tito.io hibernate false -> true
2026/10/14 22:50:18 provision: dry-run: would converge owned.go.tito.io seed
2026/10/14 22:50:18 provision: dry-run: would remove retired instance route gone.go.tito.io (record gone)
2026/10/14 22:50:18 provision: adopted existing route adopt.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/14 22:50:18 provision: converged adopt.go.tito.io channel stable -> edge
2026/10/14 22:50:18 provision: converged adopt.go.tito.io environment "" -> "staging"
2026/10/14 22:50:18 provision: converged owned.go.tito.io channel stable -> edge
2026/10/14 22:50:18 provision: converged owned.go.tito.io environment "" -> "staging"
2026/10/14 22:50:18 provision: converged owned.go.tito.io hibernate false -> true
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: removed retired instance route gone.go.tito.io (record gone)
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: adopted existing route story.carlosframework.com (app "story" acct "bad") — this record now owns its channel and environment
2026/10/14 22:50:18 provision: story.carlosframework.com exists but is not the route this record describes (kind "instance"/"static") — leaving it alone
2026/10/14 22:50:18 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted service route pub.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted service route pubs.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted instance route exec.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted service route loop.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted service route named.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted service route priv.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted instance route unit.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted static route pisite.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: removed retired static route site.go.tito.io (record gone)
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted instance route acme-uk.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: converged acme.go.tito.io replicas "ie,uk" -> "uk"
2026/10/14 22:50:18 provision: converged acme.go.tito.io replicas "uk" -> ""
2026/10/14 22:50:18 provision: minted instance route acme-uk.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: converged acme-uk.go.tito.io replica mark true -> false
2026/10/14 22:50:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:18 provision: acme.go.tito.io: row is on the nested layout (db "/data/instances/acme.go.tito.io/acme.go.tito.io.db" socket "/run/carlos/instances/acme.go.tito.io/app.sock"); the record's shared paths are not drift
2026/10/14 22:50:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:19 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:19 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:19 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:19 provision: acme.go.tito.io: not minting this pass: the box's layout intent could not be read: store down
2026/10/14 22:50:19 provision: router.go.tito.io: not minting this pass: the box's layout intent could not be read: store down
2026/10/14 22:50:19 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/14 22:50:19 provision: converged acme.go.tito.io channel stable -> edge
2026/10/14 22:50:19 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/14 22:50:19 provision: not removing acme.go.tito.io (record gone): participant of a running operation
2026/10/14 22:50:19 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/14 22:50:19 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/14 22:50:19 provision: refusing to mint held route acme.go.tito.io (app "tito" acct "bac"): this box declares CARLOS_INBOUND=none (no-inbound) and cannot serve routed instance traffic
2026/10/14 22:50:19 provision: held acme.go.tito.io landing by mv_acme (was ready)
2026/10/14 22:50:19 provision: acme.go.tito.io: held restoring by rb_other, not by mv_acme; leaving it
2026/10/14 22:50:19 provision: acme.go.tito.io: the row is not this pass's (app "other" acct ""); not holding it for mv_acme
2026/10/14 22:50:19 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/14 22:50:19 provision: dry-run: would mint instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac" channel "stable")
2026/10/14 22:50:19 provision: acme.go.tito.io: not held landing by mv_acme: the row's hold changed under this pass; the next pass judges it afresh
2026/10/14 22:50:19 provision: held acme.go.tito.io landing by mv_acme (was ready)
2026/10/14 22:50:19 provision: removed retired sidecar route gone.eleven.bac.sidecar.internal (record gone)
2026/10/14 22:50:19 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/14 22:50:19 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/14 22:50:19 provision: converged sidecar bot.eleven.bac.sidecar.internal args ["sidecar","run"] -> ["worker","run"]
2026/10/14 22:50:19 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/14 22:50:19 provision: converged sidecar bot.eleven.bac.sidecar.internal ceilings 300/3600 -> 60/120
2026/10/14 22:50:19 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/14 22:50:19 provision: converged sidecar bot.eleven.bac.sidecar.internal channel stable -> canary/eleven
2026/10/14 22:50:19 provision: converged sidecar bot.eleven.bac.sidecar.internal environment "other" -> "relay"
2026/10/14 22:50:19 provision: converged sidecar bot.eleven.bac.sidecar.internal hibernate true -> false
2026/10/14 22:50:19 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: read failed: failStore: reads disabled under apps/bac/eleven/sidecars/
2026/10/14 22:50:19 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: malformed: invalid character 'n' looking for beginning of object key string
2026/10/14 22:50:19 provision: not removing sidecar bot.eleven.bac.sidecar.internal: its record exists but could not be read cleanly this pass
2026/10/14 22:50:19 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: empty channel
2026/10/14 22:50:19 provision: skipping sidecar record apps/bac/eleven/sidecars/held.json: empty channel
2026/10/14 22:50:19 provision: not removing sidecar held.eleven.bac.sidecar.internal: its record exists but could not be read cleanly this pass
2026/10/14 22:50:19 provision: removed retired sidecar route old.eleven.bac.sidecar.internal (record gone)
2026/10/14 22:50:19 provision: bac/eleven has sidecar records but no sidecars manifest — not minting
2026/10/14 22:50:19 provision: bac/eleven is in the trash — not minting sidecar routes for it
2026/10/14 22:50:19 provision: sidecar bot.eleven.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/14 22:50:19 provision: sidecar hub.relay.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/14 22:50:19 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/14 22:50:19 provision: minted sidecar route hub.relay.bac.sidecar.internal (app "relay" acct "bac" args ["relay"])
2026/10/14 22:50:19 provision: sidecar bot.eleven.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/14 22:50:19 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/14 22:50:19 provision: sidecar bot.eleven.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/14 22:50:19 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/14 22:50:19 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/14 22:50:19 provision: sidecar bot.eleven.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/14 22:50:19 provision: removed retired sidecar route bot.eleven.bac.sidecar.internal (record gone)
2026/10/14 22:50:19 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/14 22:50:19 provision: sidecar bot.eleven.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/14 22:50:19 provision: skipping sidecar record apps/bac/relay/sidecars/hub.json: read failed: failStore: reads disabled under apps/bac/relay/sidecars/
2026/10/14 22:50:19 provision: REFUSING to mint sidecar bot.eleven.bac.sidecar.internal: bot.eleven.bac.sidecar.internal-sidecar.env is staged on this box — the legacy file co-spawn and a native sidecar row are two mechanisms for one host; remove the file to migrate this host onto sidecar records
2026/10/14 22:50:19 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/14 22:50:19 provision: dry-run: would mint sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" channel "stable" args ["sidecar","run"])
2026/10/14 22:50:19 provision: dry-run: would remove retired sidecar route gone.eleven.bac.sidecar.internal (record gone)
2026/10/14 22:50:19 provision: bot.eleven.bac.sidecar.internal exists but is not a sidecar row this pass owns (kind "sidecar" provisioned false app "eleven" acct "bac") — leaving it alone
2026/10/14 22:50:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:19 provision: converged acme.go.tito.io update settings "{\"updates\":\"manual\",\"channel\":\"stable\"}" -> ""
2026/10/14 22:50:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:19 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/14 22:50:19 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/14 22:50:19 provision: acme.go.tito.io: not minted this pass: the app's update policy could not be read
2026/10/14 22:50:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/14 22:50:19 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/14 22:50:19 provision: acme.go.tito.io: not minted this pass: the app's update policy could not be read
2026/10/14 22:50:19 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
FAIL
FAIL	github.com/carlosframework/platform/internal/provision	13.131s
ok  	github.com/carlosframework/platform/internal/publicrelease	0.009s
?   	github.com/carlosframework/platform/internal/regionname	[no test files]
ok  	github.com/carlosframework/platform/internal/registry	4.100s
ok  	github.com/carlosframework/platform/internal/relay	7.233s
ok  	github.com/carlosframework/platform/internal/release	20.131s
ok  	github.com/carlosframework/platform/internal/rollout	3.765s
ok  	github.com/carlosframework/platform/internal/rolloutwords	0.003s
ok  	github.com/carlosframework/platform/internal/rootaws	0.007s
ok  	github.com/carlosframework/platform/internal/rootparticipation	0.006s
ok  	github.com/carlosframework/platform/internal/rootstate	0.026s
ok  	github.com/carlosframework/platform/internal/s3compat	0.004s
ok  	github.com/carlosframework/platform/internal/safefile	0.004s
ok  	github.com/carlosframework/platform/internal/schedule	2.280s
ok  	github.com/carlosframework/platform/internal/sim/hostlife	9.492s
ok  	github.com/carlosframework/platform/internal/sim/litestreamfacts	4.024s
ok  	github.com/carlosframework/platform/internal/status	0.040s
ok  	github.com/carlosframework/platform/internal/steering	0.005s
ok  	github.com/carlosframework/platform/internal/stopevidence	0.195s
ok  	github.com/carlosframework/platform/internal/svcrole	0.002s
ok  	github.com/carlosframework/platform/internal/telemetry	0.004s
ok  	github.com/carlosframework/platform/internal/termfence	0.004s
ok  	github.com/carlosframework/platform/internal/tunnelclient	0.004s
ok  	github.com/carlosframework/platform/internal/unixdial	0.002s
ok  	github.com/carlosframework/platform/internal/updatewords	0.005s
ok  	github.com/carlosframework/platform/internal/usage	0.004s
ok  	github.com/carlosframework/platform/internal/version	0.002s
ok  	github.com/carlosframework/platform/internal/vet	1.567s
FAIL
make: *** [Makefile:18: test] Error 1

amadan: step gate failed: exit status 2

amadan: job failed at step gate — its output is above, not at the tail of this log
diff --git a/docs/superpowers/plans/2026-10-07-zero-downtime-deploys-6-roll-notes.md b/docs/superpowers/plans/2026-10-07-zero-downtime-deploys-6-roll-notes.md
index 48548fc37..ff389ce44 100644
--- a/docs/superpowers/plans/2026-10-07-zero-downtime-deploys-6-roll-notes.md
+++ b/docs/superpowers/plans/2026-10-07-zero-downtime-deploys-6-roll-notes.md
@@ -29,21 +29,53 @@ plans 1 to 6, in `platform-design-zero-downtime-deploys`.
## Before Gate E: owed
-This is the flag-on precondition. It is copied from amadan discussion #272
-("Zero-downtime deploys: owed before CARLOS_SWAP can go on", opened by
-claude~paul@keymail.dev), as read on 2026-10-11, including its replies.
-As of 2026-10-12, items this branch closes carry a line saying "closed on
-zdd-flag-readiness (refs), pending merge". Those are built and task-reviewed on
-the branch, and the whole-branch review's first round (Astra,
-`CODEX-FINDINGS-ZDD-READINESS.md`) found gaps in several of them, which its
-fix wave closed (the commits cited as "final review round 1"). They are not
-merged, not released and not rolled, and only Paul closes them on #272. Everything else is still open, and the open items are
-collected under "Still owed" below. **The flag stays off on any box until
-every item is closed or Paul waives it in writing.** Gates A to D do not
-turn the flag on and can go ahead while this list is open.
-
-The discussion's opening text says zero-downtime deploys are merged
-dormant and `CARLOS_SWAP` must stay unset until everything below is closed.
+**Current state, 2026-10-14.** This list is copied from amadan discussion
+#272 ("Zero-downtime deploys: owed before CARLOS_SWAP can go on"). Every
+item on it that blocked the flag is now closed, or is one of the open items
+named below. The subsections after this one are the history of how each
+item closed, kept for their commit references. Where they say "pending
+merge", read the state here instead.
+
+- **Merged and released.** Readiness rounds 1 to 3 (`zdd-flag-readiness`,
+ `zdd-flag-readiness-2` and `zdd-flag-readiness-3`). Rev 19, the generation
+ socket names, is merged as `ebddcfc` and released in v0.27.2. #292 is
+ merged as `e15ad6b` and released in v0.27.3.
+- **The flag.** Gate F passed on annie-welding, and Gate G armed the other
+ three flagship boxes. All four flagship boxes are armed as of 2026-10-14.
+ Dev is being armed on 2026-10-14.
+- **Kernel checks: closed.** On 2026-10-14 a root test runner ran them on
+ Debian 13 arm64, kernel 6.12.96, origin/main `2683f16a`, as `User=carlos`
+ with `Delegate=yes` and `cpuset cpu io memory pids` in the unit's
+ `subtree_control`. All passed and none skipped:
+ - `TestClaimContainmentCleanupRespawn`, all three subtests;
+ - `TestGenerationStartRefusedBesideADirectParentMember`, with its sibling
+ and recovery controls;
+ - the `ensureParent` positive control, which is `internal/cgroup`'s
+ `TestGenKernelGenerationRefusedBesideAFlatMember`
+ (`CARLOS_GEN_KERNEL=1`) and `TestGenKernelShimRespawnAfterKill`
+ (`CARLOS_SHIM_KERNEL=1`).
+
+ The details are on #272.
+- **Mixed-version retries.** Dev round 4 passed three cases: a new box with
+ a new console, a book that had not saved, and an old box with a new
+ console. A new box with an old console was not run. That case is covered
+ by construction. An old console can only write an unsigned retry, and
+ every new box ignores an unsigned retry, so the worst it can do is a retry
+ that does nothing.
+- **Owed items from settings plan 4** (branch `zdd-owed-items`):
+ - Closed: a cold wake's build-state record is now written at the exec,
+ after the replica-key gate and the cgroup refusals, so a refused launch
+ leaves no record. This was owed before O8 (replica keys) is switched on.
+ - Closed: `release.ResolveLivePath` now calls `release.ResolveLiveLink`.
+ The two had identical bodies.
+ - Open: leftover `consumed/` files refuse the claims census. It is owed
+ before host claims are switched on, and does not block the flag. See
+ "Still owed (code)".
+- **Claims-on swaps** remain a future feature. A box with host claims on
+ declines the flag with the reason code `host-claims-on`.
+
+The flag stays off on any box that has not passed its gate, and only Paul
+closes items on #272.
### Correctness, from Astra's plan 5 review (`CODEX-FINDINGS-ZDD-IMPL-5*.md`)
@@ -140,18 +172,15 @@ dormant and `CARLOS_SWAP` must stay unset until everything below is closed.
#### Dev-box flag blockers
-Two defects blocked the flag on the dev box. Both are fixed in code on
-zdd-flag-readiness, pending merge. Their tests are kernel-gated and skip on
-the build machine, so neither fix has been seen working on a real kernel.
-The dev-box rerun is owed. Both kernel tests now start through the shim, and
-zdd-flag-readiness-3 notes that they cannot run on DOCS-T1 (see "Roll notes
-from zdd-flag-readiness-3", dev re-check step 7).
+Two defects blocked the flag on the dev box. Both are fixed, merged and
+released, and both kernel tests passed on a real kernel on 2026-10-14 (see
+"Kernel checks" at the top of this section).
-- The legacy-parent guard (2c5adbe8). Code fixed. Its kernel test
- `TestGenerationStartRefusedBesideADirectParentMember` needs the rerun.
-- The `cgroup.kill` respawn (c76a1d44, 66c92efe). Code fixed: a cgroup that
- took `cgroup.kill` is recreated, and KillHost and KillSidecar respawn.
- Its kernel test `TestClaimContainmentCleanupRespawn` needs the rerun.
+- The legacy-parent guard (2c5adbe8). Its kernel test is
+ `TestGenerationStartRefusedBesideADirectParentMember`.
+- The `cgroup.kill` respawn (c76a1d44, 66c92efe). A cgroup that took
+ `cgroup.kill` is recreated, and KillHost and KillSidecar respawn. Its
+ kernel test is `TestClaimContainmentCleanupRespawn`.
### Surfaces (plan 6)
@@ -241,109 +270,65 @@ two builds side by side, so it restarts instances the old way". The code
`host-claims-on` is in the instance's JSON record (`rollout.unavailable`) and
in the agent log line `REFUSING CARLOS_SWAP=overlap (host-claims-on)`.
-### Still owed (code), after zdd-flag-readiness
-
-These stay open after the branch, and each one still blocks the flag
-unless Paul waives it. Astra's whole-branch review, round 1
-(`CODEX-FINDINGS-ZDD-READINESS.md`), classes each of them as a flag
-blocker, and the fix wave for that round did not close them.
-
-Readiness round 2 (branch `zdd-flag-readiness-2`, from `650e6152`, pending
-merge) closes most of them. A closed item below says "Closed on
-zdd-flag-readiness-2 (<commit>), pending merge". That means built and
-task-reviewed on the branch: not merged, not released, not rolled, and only
-Paul closes it on #272. The branch's whole-branch review (Astra) and the
-3000-seed rollout-simulation sweep come after these notes. Still open or
-still owed after the branch: claims-on swaps (a future feature); the
-`ensureParent` kernel positive control; and the dev mixed-version check (see
-"Real-box checks"). Paul approved the spec amendment (rev 18) and the seven
-declined-box and old-box strings, unchanged, on 2026-10-13 (the copy-apply
-commit on the branch, "copy: readiness round 2's seven strings, approved by
-Paul unchanged; rev-18 amendment approved"). The code for the other items
-is closed on the branch, pending merge.
-
-Readiness round 2's dev check (2026-10-13) then found four blockers, and a
-fifth defect that was only untidy. All of them are closed in code on
-zdd-flag-readiness-3 (`ff4b814a` to `496fb6ed`), pending merge, and they still
-block the flag until Paul's dev re-check passes. They are: the edge unit's
-`RestrictNamespaces=yes` made every generation placement fail (the exec-shim);
-arming did not check placement (`cgroup-placement-failed`); the probe app
-rejected `--db` (`cmd/zddprobe`); and `TestStrictKernel` had a defect. The
-untidy one is failed generation units lingering in `systemctl --failed`.
-Commits and the re-check are in "Roll notes from zdd-flag-readiness-3".
-
-- Nested live-link race on a declined box: needs an expected identity on
- `Control.Start`, root-side (task 9). Closed on zdd-flag-readiness-2
- (`903ed7ca`, `c910d020`), pending merge: a declined box pins the live link
- once (its identity and the exec gate's verdict) and nested starts and
- seeds exec the pinned build.
-- Seeds exec the live link ungated on a declined box (task 9). A failed
- seed's descendants are not proven (flag off and on), and `removeSeedDB`
- can delete a DB a descendant still writes (task 15). Closed on
- zdd-flag-readiness-2 (`903ed7ca` for the gate; `4c5e43b5`, `5e51c008`,
- `4771d147` for the proof), pending merge: a seed's processes are proven
- gone before its database goes, nested seeds included, and an unproven seed
- leaves a durable obligation (see the roll note on `.seed-unproven`).
-- A legacy sidecar left stranded beside a retained incumbent has no
- recovery path yet (task 9). Closed on zdd-flag-readiness-2 (`c910d020`),
- pending merge: a refused sidecar restarts on the instance's own build.
-- A clean one-shot's good build is published without checking that the
- activator still owns the host and that no fence or lost lease came first,
- and a WakeWorker can still start a duplicate wake in a narrow window
- (task 12). Closed on zdd-flag-readiness-2 (`deb4c811`), pending merge: a
- one-shot is recorded good only after a clean park, and a waiting wake
- never starts a second.
-- The flag-off normal-stop half of F6: a normal stop still proves only the
- leader (task 15). Closed on zdd-flag-readiness-2 (`d6996537`, `ac9f3fef`,
- `097ca930`, `79032948`), pending merge: seeds and flag-off stops prove
- their processes gone before the lease goes, and a flag-off wake proves its
- host cgroup empty before it restores. This is an authorized flag-off
- change: one `cgroup.events` read per flag-off stop.
-- `ensureParent`'s other failures still run a generation uncapped: no
- `+memory`, EBUSY or EACCES on `subtree_control`, the mkdir fallback, and
- `applyLimit` on `g<n>`. The kernel positive control (a real cgroupfs
- showing the populated-parent refusal and the respawn work) is also owed
- (task 14). The code is closed on zdd-flag-readiness-2 (`98593909`,
- `8530210e`), pending merge: a generation whose limits cannot be applied
- does not start (`cgroup.ErrLimitNotApplied`). The kernel positive control
- is still owed (see "Real-box checks").
-- The console instance page shows no hold row or Retry button for a declined
- box's hold. This needs copy. Closed on zdd-flag-readiness-2 (`6e6ad000`,
- `65d4e135`), pending merge. Paul approved the seven new strings
- unchanged on 2026-10-13 (the copy-apply commit; record
- `docs/superpowers/plans/2026-10-12-zero-downtime-flag-readiness-2-copy.json`).
+### Still owed (code)
+
+**Current state, 2026-10-14.** Readiness rounds 1 to 3 are merged and
+released, so every item this section listed after zdd-flag-readiness is
+closed on main. Rev 19 (`ebddcfc`, v0.27.2) and #292 (`e15ad6b`, v0.27.3)
+are merged and released too. The kernel checks that were owed here are
+closed (see "Kernel checks" at the top of "Before Gate E: owed").
+
+Closed, with the commits that closed them:
+
+- The nested live-link race on a declined box (`903ed7ca`, `c910d020`). A
+ declined box pins the live link once, and nested starts and seeds exec the
+ pinned build.
+- Seeds that exec'd the live link ungated, and the failed seed's proof
+ (`903ed7ca`; `4c5e43b5`, `5e51c008`, `4771d147`). A seed's processes are
+ proven gone before its database goes, and an unproven seed leaves a
+ durable obligation.
+- The stranded legacy sidecar (`c910d020`). A refused sidecar restarts on the
+ instance's own build.
+- The one-shot's good build and WakeWorker's duplicate wake (`deb4c811`).
+- The flag-off normal-stop half of F6 (`d6996537`, `ac9f3fef`, `097ca930`,
+ `79032948`).
+- `ensureParent`'s uncapped paths (`98593909`, `8530210e`). A generation
+ whose limits cannot be applied does not start (`cgroup.ErrLimitNotApplied`).
+ Its kernel positive control passed on 2026-10-14.
+- The declined box's hold row and Retry button (`6e6ad000`, `65d4e135`). Paul
+ approved the seven strings on 2026-10-13.
+- The rev-18 spec amendment for console-signed host retries, approved by
+ Paul on 2026-10-13. The design branch's spec still has to be raised to rev
+ 18 there.
+- The reopen epoch, now the hard rule (`7c7c6141`, `191c12b9`, `692d1533`,
+ `a6eb8b35`). The proof and its two assumptions are on `FailureBook`
+ (`internal/rollout/failures.go`).
+- Mixed-version retry sequencing (`6e9e84bd`, `9f27cdfa`, `4d8957c1`,
+ `18bde560`). Grants ride their own object. Dev round 4 checked the
+ transitions; the one not run is covered by construction (see "Mixed-version
+ retries" at the top of "Before Gate E: owed").
+- Readiness round 2's dev blockers, closed by readiness round 3: the
+ exec-shim for `RestrictNamespaces=yes`, the `cgroup-placement-failed` arming
+ check, `cmd/zddprobe` and the `TestStrictKernel` fix.
+- Task 10's grant consumed while the row is moving or landing (`076bd9c0`).
+- From settings plan 4, on branch `zdd-owed-items`: a cold wake's build-state
+ record is written at the exec, after the replica-key gate and the cgroup
+ refusals, so a refused launch leaves no record (owed before O8); and
+ `release.ResolveLivePath` calls `release.ResolveLiveLink`.
+
+Still open:
+
- Claims-on swaps (the four gaps from `CODEX-FINDINGS-ZDD-IMPL-5-MERGE.md`).
- A future feature. Still open and not scheduled.
-- Spec section 11 still says a retry is a re-signed pointer. The spec needs a
- revision for console-signed host-retry grants. Drafted on
- zdd-flag-readiness-2 as
- `docs/superpowers/specs/2026-10-12-zero-downtime-deploys-rev18-amendment.md`
- (this commit), approved by Paul 2026-10-13 (the copy-apply commit). The
- design branch's spec is not edited from this branch: the copy step that
- raises it to rev 18 is still to do there.
-- The reopen epoch bound (c12c35c3), now the hard rule. Paul's ruling
- (2026-10-12): a stale grant must never clear a later failure, including
- across a crash. Closed on zdd-flag-readiness-2 (`7c7c6141`, `191c12b9`),
- pending merge. The rule: the box keeps one restriction generation per app,
- moved by every change to any of the app's restrictions; the book is saved
- before a generation is published, a save that fails leaves it unpublished
- (epoch 0, so no Retry is offered) and is retried on its own; a reopen
- starts past every saved value; and a failure book written by an earlier
- agent is given a new identity when adopted, so earlier grants name the old
- one. The 2^20 advance on every open is gone. The proof sketch and its two
- assumptions are in the doc comment on `FailureBook`
- (`internal/rollout/failures.go`). The cost if the ruling is wrong: a box
- with a failing disk shows holds with no Retry until a save lands.
-- Mixed-version retry sequencing: the order in which boxes and consoles take
- the signed, book-bound grants needs writing down and checking on dev before
- the flag goes on (see "Retries: supported transitions" below). Closed on
- zdd-flag-readiness-2 (`6e9e84bd`, `9f27cdfa`, `4d8957c1`, `18bde560`),
- pending merge, by construction: grants ride their own object, so no
- ordering of box and console rolls applies one unsafely. The dev-box check
- across a mixed-version roll is still owed (see "Real-box checks").
-
-Task 10's "a grant consumed while the row is moving or landing" is closed
-by 076bd9c0 (final review round 1), pending merge.
+ A future feature, not scheduled. A box with host claims on declines the
+ flag.
+- Leftover `consumed/` files refuse the claims census. Root's request record
+ `/opt/carlos/consumed/<host>` and its fence lock `.<host>.lock` outlive the
+ installation, and the empty-installation census refuses both. It also
+ refuses another host's record, which is an unclassified file. The claims
+ design keeps the census as it is (instance-key ruling 24): the record has
+ to be retired with the installation. Only root can remove it, so the fix
+ belongs to root's claim lifecycle. Owed before host claims are switched on.
+ It does not block the flag.
### Roll notes from zdd-flag-readiness