carlos / platform Public

harness: Run 9 setup (pre-0285), the v0.28.5 build (stamped v0.28.6), the signing session

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude agent, operated by paul@keymail.dev 194e1756288b15ba749c539f0cada2d7ba3188cc parent 01afa19
7 files changed, +305 −0
  • harness/RESOURCES.md +1 −0
  • harness/RUNLOG.md +63 −0
  • harness/scenarios/cohort1/blocks/r9-console.host.sh +51 −0
  • harness/scenarios/cohort1/blocks/r9-move-setup.host.sh +70 −0
  • harness/scenarios/cohort1/blocks/r9-rearm.host.sh +35 −0
  • harness/scenarios/cohort1/blocks/r9-release.host.sh +21 −0
  • harness/scenarios/cohort1/blocks/r9-setup.host.sh +64 −0

CI failed — run details

CI log
=== gate ===
cd launchctx && go vet ./... && go test ./... -count=1
ok  	amadan.net/carlos/platform.git/launchctx	0.012s
?   	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	328.167s
?   	github.com/carlosframework/platform/cmd/changelog	[no test files]
ok  	github.com/carlosframework/platform/cmd/console	3.037s
ok  	github.com/carlosframework/platform/cmd/moveprobe	92.231s
ok  	github.com/carlosframework/platform/cmd/zddprobe	0.714s
?   	github.com/carlosframework/platform/harness/apps/wakecheck	[no test files]
ok  	github.com/carlosframework/platform/internal/activator	252.485s
ok  	github.com/carlosframework/platform/internal/agentsock	0.017s
ok  	github.com/carlosframework/platform/internal/alerting	0.004s
ok  	github.com/carlosframework/platform/internal/analytics	0.019s
ok  	github.com/carlosframework/platform/internal/appconfig	2.565s
ok  	github.com/carlosframework/platform/internal/apperr	0.079s
ok  	github.com/carlosframework/platform/internal/applog	0.131s
ok  	github.com/carlosframework/platform/internal/awsinv	0.004s
ok  	github.com/carlosframework/platform/internal/boxchoice	0.006s
ok  	github.com/carlosframework/platform/internal/boxid	0.633s
?   	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.010s
ok  	github.com/carlosframework/platform/internal/caps	0.013s
ok  	github.com/carlosframework/platform/internal/certwarm	0.003s
ok  	github.com/carlosframework/platform/internal/cgroup	0.705s
ok  	github.com/carlosframework/platform/internal/changelog	0.335s
ok  	github.com/carlosframework/platform/internal/claimactivation	0.828s
ok  	github.com/carlosframework/platform/internal/clamd	0.055s
?   	github.com/carlosframework/platform/internal/cliflag	[no test files]
ok  	github.com/carlosframework/platform/internal/console	408.840s
?   	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.863s
ok  	github.com/carlosframework/platform/internal/dbdoor/dbdoortest	0.009s
ok  	github.com/carlosframework/platform/internal/dbverify	0.005s
ok  	github.com/carlosframework/platform/internal/dnsrec	0.003s
ok  	github.com/carlosframework/platform/internal/docsite	0.005s
ok  	github.com/carlosframework/platform/internal/domains	2.462s
ok  	github.com/carlosframework/platform/internal/doorkey	0.006s
ok  	github.com/carlosframework/platform/internal/economics	0.004s
ok  	github.com/carlosframework/platform/internal/edge	44.979s
?   	github.com/carlosframework/platform/internal/edgeproof	[no test files]
ok  	github.com/carlosframework/platform/internal/edgesfile	0.008s
ok  	github.com/carlosframework/platform/internal/fleetapi	0.137s
ok  	github.com/carlosframework/platform/internal/gate	1.657s
ok  	github.com/carlosframework/platform/internal/genselect	0.017s
ok  	github.com/carlosframework/platform/internal/geo	0.012s
ok  	github.com/carlosframework/platform/internal/geoip	0.033s
ok  	github.com/carlosframework/platform/internal/historyreadback	0.160s
ok  	github.com/carlosframework/platform/internal/host	182.788s
ok  	github.com/carlosframework/platform/internal/hostactors	5.931s
ok  	github.com/carlosframework/platform/internal/hostactors/awsmembership	0.014s
ok  	github.com/carlosframework/platform/internal/hostbox	2.761s
ok  	github.com/carlosframework/platform/internal/hostclaim	0.575s
ok  	github.com/carlosframework/platform/internal/hostenv	0.014s
ok  	github.com/carlosframework/platform/internal/hostevidence	0.014s
ok  	github.com/carlosframework/platform/internal/hostexec	4.928s
ok  	github.com/carlosframework/platform/internal/hostfence	0.032s
ok  	github.com/carlosframework/platform/internal/hostfiles	10.396s
ok  	github.com/carlosframework/platform/internal/hostfloor	0.015s
ok  	github.com/carlosframework/platform/internal/hostguard	0.993s
ok  	github.com/carlosframework/platform/internal/hostops	1.698s
?   	github.com/carlosframework/platform/internal/hostops/fencerelease	[no test files]
ok  	github.com/carlosframework/platform/internal/hostops/internal/fencerelease	0.014s
ok  	github.com/carlosframework/platform/internal/hostquarantine	0.014s
ok  	github.com/carlosframework/platform/internal/hostrelocate	0.476s
ok  	github.com/carlosframework/platform/internal/hostresolve	0.136s
ok  	github.com/carlosframework/platform/internal/hostwrite	0.014s
ok  	github.com/carlosframework/platform/internal/infraview	0.014s
ok  	github.com/carlosframework/platform/internal/instancectl	5.228s
ok  	github.com/carlosframework/platform/internal/instanceexec	2.759s
ok  	github.com/carlosframework/platform/internal/instancefs	0.005s
ok  	github.com/carlosframework/platform/internal/instancekey	0.004s
ok  	github.com/carlosframework/platform/internal/instanceupdates	0.009s
ok  	github.com/carlosframework/platform/internal/layout	1.586s
ok  	github.com/carlosframework/platform/internal/lbhealth	0.004s
ok  	github.com/carlosframework/platform/internal/lease	9.814s
ok  	github.com/carlosframework/platform/internal/lease/leasetest	0.005s
ok  	github.com/carlosframework/platform/internal/ledger	0.014s
ok  	github.com/carlosframework/platform/internal/mail	0.169s
ok  	github.com/carlosframework/platform/internal/maintenance	0.084s
ok  	github.com/carlosframework/platform/internal/maintenanceexec	5.552s
ok  	github.com/carlosframework/platform/internal/maintenanceguard	0.069s
ok  	github.com/carlosframework/platform/internal/metrics	0.007s
ok  	github.com/carlosframework/platform/internal/moves	21.075s
ok  	github.com/carlosframework/platform/internal/moves/archive	0.810s
ok  	github.com/carlosframework/platform/internal/objstore	0.188s
ok  	github.com/carlosframework/platform/internal/ops	0.172s
ok  	github.com/carlosframework/platform/internal/park	0.215s
ok  	github.com/carlosframework/platform/internal/privatefile	0.005s
2026/10/20 16:14:36 provision: listing apps/bab/blog/instances/: list refused — its records are unseen this pass
2026/10/20 16:14:36 provision: listing apps/bab/: listdirs refused — its records are unseen this pass
2026/10/20 16:14:36 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/20 16:14:36 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/20 16:14:36 provision: skipping record apps/bac/tito/instances/one.example.com.json: unreadable: read refused
2026/10/20 16:14:36 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/20 16:14:36 provision: an app's records could not be listed: they are skipped
2026/10/20 16:14:36 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 16:14:36 provision: remove retired instance route shop.example: provision: claim admission unavailable
2026/10/20 16:14:36 provision: remove retired instance route shop.example: provision: claim admission unavailable
2026/10/20 16:14:36 provision: remove retired sidecar route worker.sidecar.internal: provision: claim admission unavailable
2026/10/20 16:14:36 provision: remove retired sidecar route worker.sidecar.internal: provision: claim admission unavailable
2026/10/20 16:14:36 provision: claim install acme.go.tito.io: provision: claim admission unavailable
2026/10/20 16:14:36 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/20 16:14:36 provision: claim install bot.eleven.bac.sidecar.internal: provision: claim admission unavailable
2026/10/20 16:14:36 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 16:14:36 provision: claim install bot.eleven.bac.sidecar.internal: registry: claim row ownership changed or unknown
2026/10/20 16:14:36 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/20 16:14:36 provision: acme.go.tito.io: not minting this pass: the box's layout intent could not be read: no sealed config
2026/10/20 16:14:36 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 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/20 16:14:36 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 16:14:36 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 16:14:36 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/20 16:14:36 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 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/20 16:14:36 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 16:14:36 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 16:14:36 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/20 16:14:36 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/20 16:14:36 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/20 16:14:36 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 16:14:36 provision: claim install bot.eleven.bac.sidecar.internal: registry: claim row ownership changed or unknown
2026/10/20 16:14:36 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 16:14:36 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 16:14:36 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/20 16:14:36 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 16:14:36 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 16:14:36 provision: skipping record apps/bac/tito/instances/new.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 16:14:36 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 16:14:36 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 16:14:36 provision: skipping record apps/bac/tito/instances/new.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 16:14:36 provision: minted instance route rh.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 provision: minted instance route ri.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 provision: minted instance route rj.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 provision: minted instance route ra.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 provision: minted instance route rg.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 provision: minted instance route rk.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 provision: minted instance route rl.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 provision: minted instance route rb.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 provision: minted instance route rc.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 provision: minted instance route rd.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 provision: minted instance route re.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 provision: minted instance route rf.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 provision: minted instance route rd.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 provision: minted instance route ra.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 provision: minted instance route rb.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 provision: minted instance route rc.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:36 provision: skipping record apps/bac/tito/instances/rb.go.tito.io.json: read failed: read refused
2026/10/20 16:14:36 provision: skipping record apps/bac/tito/instances/rb.go.tito.io.json: read failed: read refused
2026/10/20 16:14:36 provision: minted instance route re.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route x.appb.example (app "appb" acct "bac")
2026/10/20 16:14:37 provision: minted instance route x.appe.example (app "appe" acct "bac")
2026/10/20 16:14:37 provision: minted instance route x.appf.example (app "appf" acct "bac")
2026/10/20 16:14:37 provision: minted instance route x.appg.example (app "appg" acct "bac")
2026/10/20 16:14:37 provision: minted instance route x.apph.example (app "apph" acct "bac")
2026/10/20 16:14:37 provision: minted instance route x.appi.example (app "appi" acct "bac")
2026/10/20 16:14:37 provision: minted instance route x.appj.example (app "appj" acct "bac")
2026/10/20 16:14:37 provision: minted instance route x.appa.example (app "appa" acct "bac")
2026/10/20 16:14:37 provision: minted instance route x.appc.example (app "appc" acct "bac")
2026/10/20 16:14:37 provision: minted instance route x.appd.example (app "appd" acct "bac")
2026/10/20 16:14:37 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 16:14:37 provision: minted instance route r0002.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0042.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0064.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0073.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0006.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0071.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0077.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0089.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0082.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0031.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0032.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0067.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0010.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0012.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0043.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0046.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0058.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0105.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0017.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0095.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0125.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0047.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0068.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0053.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0055.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0075.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0076.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0116.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0124.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0128.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0066.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0112.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0081.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0015.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0023.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0051.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0065.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0090.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0041.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0062.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0084.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0126.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0086.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0108.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0038.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0026.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0027.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0106.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0035.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0074.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0107.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0039.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0072.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0091.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0013.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0037.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0050.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0063.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0070.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0094.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0052.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0003.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0008.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0079.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0080.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0088.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0097.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0110.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0054.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0001.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0007.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0009.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0028.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0018.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0045.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0057.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0092.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0098.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0117.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0118.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0103.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0004.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0033.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0059.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0060.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0069.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0011.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0019.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0061.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0120.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0014.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0025.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0049.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0104.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0005.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0036.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0040.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0099.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0016.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0029.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0034.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0083.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0100.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0101.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0119.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0123.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0048.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0021.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0078.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0096.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0122.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0000.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0022.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0030.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0102.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0113.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0114.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0121.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0111.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0127.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0129.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0024.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0056.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0085.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0087.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0109.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0020.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0044.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0093.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:37 provision: minted instance route r0115.go.tito.io (app "tito" acct "bac")
--- FAIL: TestPlan14RootReadCensus (4.94s)
    plan14_root_reads_test.go:940: root read census: 129 discrepancies
        changed root read internal/hostfence/writer.go:OpenRootFenceStore; review class, task, sites and digest
        changed root source envelope harness
        changed root source envelope harness/apps/wakecheck
        changed root source envelope harness/boxes
        changed root source envelope harness/boxes/shims
        changed root source envelope harness/checks
        changed root source envelope harness/console
        changed root source envelope harness/infra
        changed root source envelope harness/infra-copies/747f699/dev
        changed root source envelope harness/infra-copies/a0b3f5a/dev
        changed root source envelope harness/infra-copies/a0b3f5a/scripts
        changed root source envelope harness/infra-copies/pr47
        changed root source envelope harness/operator
        changed root source envelope harness/release
        changed root source envelope harness/scenarios
        changed root source envelope harness/scenarios/cohort1
        changed root source envelope harness/scenarios/cohort1/blocks
        changed root source envelope harness/stand-ins
        changed root source envelope internal/host
        changed root source envelope internal/hostfence
        changed root source envelope internal/publicrelease
        changed root source envelope internal/s3compat
        unclassified root read harness/apps/wakecheck/main.go:main file:Exec@333,file:Exec@804,file:Open@277,file:QueryRow@870
        unclassified root read harness/boxes/boxes-up.sh:external file:external@0
        unclassified root read harness/boxes/dmi-shim.sh:external file:external@0
        unclassified root read harness/boxes/layout-probe.sh:external file:external@0
        unclassified root read harness/boxes/leo-ext4-from.sh:external file:external@0
        unclassified root read harness/boxes/leo-ext4.sh:external file:external@0
        unclassified root read harness/boxes/leo-swap.sh:external file:external@0
        unclassified root read harness/boxes/shims/systemd-zram-setup@.service:external file:external@0
        unclassified root read harness/boxes/vendor-shims.sh:external file:external@0
        unclassified root read harness/checks/check2.sh:external file:external@0
        unclassified root read harness/checks/check5.sh:external file:external@0
        unclassified root read harness/checks/check6.sh:external file:external@0
        unclassified root read harness/checks/check6b.sh:external file:external@0
        unclassified root read harness/checks/check7.sh:external file:external@0
        unclassified root read harness/checks/check8.sh:external file:external@0
        unclassified root read harness/checks/fix5.sh:external file:external@0
        unclassified root read harness/checks/run6b.sh:external file:external@0
        unclassified root read harness/checks/snap-base.sh:external file:external@0
        unclassified root read harness/checks/snap-boot.sh:external file:external@0
        unclassified root read harness/checks/ssmsmoke.sh:external file:external@0
        unclassified root read harness/console/console-ext4.sh:external file:external@0
        unclassified root read harness/console/console-setup.sh:external file:external@0
        unclassified root read harness/console/signin.sh:external file:external@0
        unclassified root read harness/console/system-update.sh:external file:external@0
        unclassified root read harness/donor-user-data.sh:external file:external@0
        unclassified root read harness/evidence.sh:external file:external@0
        unclassified root read harness/host-setup.sh:external file:external@0
        unclassified root read harness/host-user-data.sh:external file:external@0
        unclassified root read harness/hrun.sh:external file:external@0
        unclassified root read harness/infra-copies/747f699/dev/host-init.sh:external file:external@0
        unclassified root read harness/infra-copies/a0b3f5a/dev/host-init.sh:external file:external@0
        unclassified root read harness/infra-copies/a0b3f5a/scripts/bootstrap-box.sh:external file:external@0
        unclassified root read harness/infra-copies/a0b3f5a/scripts/ship-app.sh:external file:external@0
        unclassified root read harness/infra-copies/a0b3f5a/scripts/update-platform-binary.sh:external file:external@0
        unclassified root read harness/infra-copies/pr47/probe.sh:external file:external@0
        unclassified root read harness/infra-copies/pr47/remediation.sh:external file:external@0
        unclassified root read harness/infra/infra-setup.sh:external file:external@0
        unclassified root read harness/operator/operator-setup.sh:external file:external@0
        unclassified root read harness/release/release-setup.sh:external file:external@0
        unclassified root read harness/release/release-window.sh:external file:external@0
        unclassified root read harness/release/step7-operator.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/50-publish-record.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/51-open-signer.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/51-roster-resume.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/51-roster.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/61-sign.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/61a-install-channel.box.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/62-guard-arm.box.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/63-run.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/63-sophie.box.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/7-console-report.box.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/7-evidence-key.box.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/7-run.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/7-runtime.box.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/74-run.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/7a-leo.box.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/7a-run.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/acceptance.host.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/b1.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/b2-c8.leo.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/b2-list.leo.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/b2.box.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/b4-after.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/b4-pair.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/b4-resume.sophie.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/b4.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/b5.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/g4-roll.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/g5.host.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/g9-check.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/p9.box.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/place-parent.host.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/pw-seed.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/r9-console.host.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/r9-move-setup.host.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/r9-rearm.host.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/r9-release.host.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/r9-setup.host.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/rearm-roll.host.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/rearm-strict.host.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/rearm-strict.leo.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/rearm-strict2.host.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/rearm.host.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/rearm2.host.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/rearm3.host.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/reports.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/run-leo.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/w-env.box.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/w-identity.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/w-open-signer.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/w-sums.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/w81.box.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/w81b.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/w82-f4.box.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/w82-f5.box.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/w82.box.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/w82b.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/w84.box.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/w9.box.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/box-helpers.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/signer-helpers.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/ssm.sh:external file:external@0
        unclassified root read harness/scenarios/sync.sh:external file:external@0
        unclassified root read harness/snapshot.sh:external file:external@0
        unclassified root read harness/stand-ins/certs.sh:external file:external@0
        unclassified root read internal/s3compat/harness.go:readHarnessFile file:ReadFile@189,file:Stat@55
        changed reclassified declaration internal/hostfence/writer.go:OpenRootFenceStore
2026/10/20 16:14:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 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/20 16:14:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: minted instance route console.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: minted service route ha.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: minted service route svc.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: minted instance route whole.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: minted instance route shared.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: converged acme.go.tito.io channel stable -> edge
2026/10/20 16:14:49 provision: converged acme.go.tito.io channel edge -> canary/rehearsal
2026/10/20 16:14:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: empty channel
2026/10/20 16:14:49 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 16:14:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: converged acme.go.tito.io environment "" -> "staging"
2026/10/20 16:14:49 provision: converged acme.go.tito.io environment "staging" -> ""
2026/10/20 16:14:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: converged acme.go.tito.io steering "" -> "latency"
2026/10/20 16:14:49 provision: converged acme.go.tito.io steering "latency" -> ""
2026/10/20 16:14:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: converged acme.go.tito.io hibernate false -> true
2026/10/20 16:14:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: converged acme.go.tito.io hibernate true -> false (replication "daily" cleared: only a hibernating route's rung is read)
2026/10/20 16:14:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: converged acme.go.tito.io status-named false -> true
2026/10/20 16:14:49 provision: converged acme.go.tito.io status-named true -> false
2026/10/20 16:14:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: minted service route ha.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 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/20 16:14:49 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/20 16:14:49 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/20 16:14:49 provision: minted service route whole.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 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/20 16:14:49 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/20 16:14:49 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/20 16:14:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: minted service route whole.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 16:14:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/20 16:14:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: skipping accounts/bac/account.json: malformed account manifest: invalid character 'o' in literal null (expecting 'u')
2026/10/20 16:14:49 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/20 16:14:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: manifest bac/tito: read failed: provision: manifest bac/tito: invalid character 'o' in literal null (expecting 'u')
2026/10/20 16:14:49 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/20 16:14:49 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/20 16:14:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 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/20 16:14:49 provision: not removing acme$evil.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 16:14:49 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/20 16:14:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 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/20 16:14:49 provision: not removing bad-service.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 16:14:49 provision: skipping record apps/bac/tito/instances/no-channel.go.tito.io.json: empty channel
2026/10/20 16:14:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: skipping record apps/bac/tito/instances/no-channel.go.tito.io.json: empty channel
2026/10/20 16:14:49 provision: not removing no-channel.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 16:14:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 16:14:49 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 16:14:49 provision: removed retired instance route ghost.go.tito.io (record gone)
2026/10/20 16:14:49 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/20 16:14:49 provision: minted instance route dup.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 16:14:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 16:14:49 provision: removed retired instance route acme.go.tito.io (app in the trash)
2026/10/20 16:14:49 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:49 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 16:14:49 provision: removed retired static route site.go.tito.io (app in the trash)
2026/10/20 16:14:49 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/20 16:14:49 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 16:14:49 provision: removed retired instance route acme.go.tito.io (app in the trash)
2026/10/20 16:14:49 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 16:14:49 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/20 16:14:49 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 16:14:49 provision: converged acme.go.tito.io channel stable -> edge
2026/10/20 16:14:49 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 16:14:49 provision: converged acme.go.tito.io channel canary/rehearsal -> edge
2026/10/20 16:14:49 provision: converged acme.go.tito.io environment "staging" -> ""
2026/10/20 16:14:49 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 16:14:49 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/20 16:14:49 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/20 16:14:49 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/20 16:14:49 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/20 16:14:50 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/20 16:14:50 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/20 16:14:50 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 16:14:50 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/20 16:14:50 provision: dry-run: would mint instance route acme.go.tito.io (app "tito" acct "bac" channel "stable")
2026/10/20 16:14:50 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/20 16:14:50 provision: dry-run: would converge adopt.go.tito.io channel stable -> edge
2026/10/20 16:14:50 provision: dry-run: would converge adopt.go.tito.io environment "" -> "staging"
2026/10/20 16:14:50 provision: dry-run: would converge owned.go.tito.io channel stable -> edge
2026/10/20 16:14:50 provision: dry-run: would converge owned.go.tito.io environment "" -> "staging"
2026/10/20 16:14:50 provision: dry-run: would converge owned.go.tito.io hibernate false -> true
2026/10/20 16:14:50 provision: dry-run: would converge owned.go.tito.io seed
2026/10/20 16:14:50 provision: dry-run: would remove retired instance route gone.go.tito.io (record gone)
2026/10/20 16:14:50 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 provision: adopted existing route adopt.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 16:14:50 provision: converged adopt.go.tito.io channel stable -> edge
2026/10/20 16:14:50 provision: converged adopt.go.tito.io environment "" -> "staging"
2026/10/20 16:14:50 provision: converged owned.go.tito.io channel stable -> edge
2026/10/20 16:14:50 provision: converged owned.go.tito.io environment "" -> "staging"
2026/10/20 16:14:50 provision: converged owned.go.tito.io hibernate false -> true
2026/10/20 16:14:50 provision: removed retired instance route gone.go.tito.io (record gone)
2026/10/20 16:14:50 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 provision: adopted existing route story.carlosframework.com (app "story" acct "bad") — this record now owns its channel and environment
2026/10/20 16:14:50 provision: story.carlosframework.com exists but is not the route this record describes (kind "instance"/"static") — leaving it alone
2026/10/20 16:14:50 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 provision: minted service route pub.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 provision: minted service route pubs.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 provision: minted instance route unit.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 provision: minted instance route exec.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 provision: minted service route loop.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 provision: minted service route named.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 provision: minted service route priv.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 provision: minted static route pisite.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 provision: removed retired static route site.go.tito.io (record gone)
2026/10/20 16:14:50 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 provision: minted instance route acme-uk.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 provision: converged acme.go.tito.io replicas "ie,uk" -> "uk"
2026/10/20 16:14:50 provision: converged acme.go.tito.io replicas "uk" -> ""
2026/10/20 16:14:50 provision: minted instance route acme-uk.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 provision: converged acme-uk.go.tito.io replica mark true -> false
2026/10/20 16:14:50 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 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/20 16:14:50 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:50 provision: acme.go.tito.io: not minting this pass: the box's layout intent could not be read: store down
2026/10/20 16:14:50 provision: router.go.tito.io: not minting this pass: the box's layout intent could not be read: store down
2026/10/20 16:14:50 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 16:14:50 provision: converged acme.go.tito.io channel stable -> edge
2026/10/20 16:14:50 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/20 16:14:50 provision: not removing acme.go.tito.io (record gone): participant of a running operation
2026/10/20 16:14:50 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/20 16:14:50 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/20 16:14:50 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/20 16:14:50 provision: held acme.go.tito.io landing by mv_acme (was ready)
2026/10/20 16:14:50 provision: acme.go.tito.io: held restoring by rb_other, not by mv_acme; leaving it
2026/10/20 16:14:50 provision: acme.go.tito.io: the row is not this pass's (app "other" acct ""); not holding it for mv_acme
2026/10/20 16:14:50 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 16:14:50 provision: dry-run: would mint instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac" channel "stable")
2026/10/20 16:14:50 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/20 16:14:50 provision: held acme.go.tito.io landing by mv_acme (was ready)
2026/10/20 16:14:50 provision: minted instance route acme.example.com (app "shop" acct "bac")
2026/10/20 16:14:50 provision: minted instance route plain.example.com (app "shop" acct "bac")
2026/10/20 16:14:50 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 16:14:50 provision: skipping record apps/bac/shop/instances/liar.shop.example.com.json: disagrees with its own path (host="other.shop.example.com" account="bac" app="shop")
2026/10/20 16:14:50 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 16:14:50 provision: skipping record apps/bac/shop/instances/liar.shop.example.com.json: disagrees with its own path (host="other.shop.example.com" account="bac" app="shop")
2026/10/20 16:14:50 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 16:14:50 provision: skipping record apps/bac/shop/instances/liar.shop.example.com.json: disagrees with its own path (host="other.shop.example.com" account="bac" app="shop")
2026/10/20 16:14:50 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 16:14:50 provision: listing apps/bac/shop/instances/: list refused — its records are unseen this pass
2026/10/20 16:14:51 provision: a.shop.example.com: swapped for import sd_h2fy2gypiitet3lmaveij45mkq (the original route is journaled)
2026/10/20 16:14:51 provision: a.shop.example.com: import sd_h2fy2gypiitet3lmaveij45mkq committed: its gate is cleared and its journal row dropped
2026/10/20 16:14:51 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/20 16:14:51 provision: a.shop.example.com: import sd_xtv3ufulurl6ag5spvn4yegala rolled back to its original route
2026/10/20 16:14:51 provision: a.shop.example.com: import sd_xtv3ufulurl6ag5spvn4yegala: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/20 16:14:51 provision: a.shop.example.com: import sd_xtv3ufulurl6ag5spvn4yegala is cleaned up and its journal row retired
2026/10/20 16:14:51 provision: a.shop.example.com: import sd_i5o65dikaavwt2aastdm3qdlhq rolled back to its original route
2026/10/20 16:14:51 provision: a.shop.example.com: import sd_i5o65dikaavwt2aastdm3qdlhq: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/20 16:14:51 provision: a.shop.example.com: import sd_i5o65dikaavwt2aastdm3qdlhq is cleaned up and its journal row retired
2026/10/20 16:14:51 provision: dry-run: would redo a.shop.example.com's swap record CAS for import sd_ylqzlrtxmesvur4v63rk76f6a4
2026/10/20 16:14:51 provision: dry-run: would clear a.shop.example.com's import gate
2026/10/20 16:14:51 provision: dry-run: would converge a.shop.example.com seed source
2026/10/20 16:14:51 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/20 16:14:51 provision: a.shop.example.com: the import's record apps/bac/shop/instances/a.shop.example.com.json is not one this pass can use (connection reset)
2026/10/20 16:14:51 provision: a.shop.example.com: the import's record apps/bac/shop/instances/a.shop.example.com.json is not one this pass can use (provision: invalid maintenance projection or protected fields)
2026/10/20 16:14:51 provision: a.shop.example.com: the import's record apps/bac/shop/instances/a.shop.example.com.json is not one this pass can use (the record under apps/bac/shop/instances/a.shop.example.com.json is apps/bac/shop/instances/b.shop.example.com.json's)
2026/10/20 16:14:51 provision: a.shop.example.com: import sd_fyuznvxu7lpfpovwgopsbhly2a cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/20 16:14:51 provision: a.shop.example.com: import sd_bnwfvg2zzm7pk4hmtvbhblh6gm cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/20 16:14:51 provision: a.shop.example.com: import sd_64z6h3f23yqtvid6vdcx5xkkka is journaled, but this box cannot act on imports; its row is left alone
2026/10/20 16:14:51 provision: a.shop.example.com: import sd_cxx5bvcowovxybn2uzldozm77a is journaled, but this box cannot act on imports; its row is left alone
2026/10/20 16:14:51 provision: a.shop.example.com: import sd_ddhctj3w35bpsofgxxsxxejd2e is journaled, but this box cannot act on imports; its row is left alone
2026/10/20 16:14:51 provision: the import journal could not be read: registry: import journal a.shop.example.com: original row: unexpected end of JSON input (no import is acted on and no route is removed this pass)
2026/10/20 16:14:51 provision: b.shop.example.com: import sd_i5rmd6yh5jzdjkmqb74a43daoq left alone this pass: the import journal could not be read
2026/10/20 16:14:51 provision: c.shop.example.com: import sd_hh4xhckgbz4mbwrg5qxo4kvwsm left alone this pass: the import journal could not be read
2026/10/20 16:14:51 provision: a.shop.example.com: import sd_tkmojg7n2jlnixk6gz4moltbfe committed: its gate is cleared and its journal row dropped
2026/10/20 16:14:51 provision: a.shop.example.com: not converging import sd_wszh6qd3tgh7wgglbyuagfhyna: it is swapped but not committed, and the row on this box has no import gate
2026/10/20 16:14:51 provision: a.shop.example.com: not converging import sd_pb5rbezwlkqopc6mfe4xqad5ty: it is swapped but not committed, and the row on this box has no import gate
2026/10/20 16:14:51 provision: a.shop.example.com: not converging import sd_5lqkpnh2vba6laweu4iy5lm6di: it is placed but not committed, and the row on this box has no import gate
2026/10/20 16:14:51 provision: a.shop.example.com: not converging import sd_6ygvrhzgv7o2r3c2lamczkjexq: it is placed but not committed, and the row on this box has no import gate
2026/10/20 16:14:51 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/20 16:14:51 provision: converge seed source on a.shop.example.com: constraint failed: seed_source is read-only here (1811)
2026/10/20 16:14:51 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/20 16:14:51 provision: a.shop.example.com: import sd_espwqiricov66llq2ctwevfbqm committed: its gate is cleared and its journal row dropped
2026/10/20 16:14:51 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/20 16:14:51 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:51 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/20 16:14:51 provision: acme.go.tito.io: not minting a seeded instance: this box does not mint nested (<nil>)
2026/10/20 16:14:51 provision: acme.go.tito.io: not minting a seeded instance: claim control is on for this box
2026/10/20 16:14:51 provision: acme.go.tito.io: aborted seed sd_bheg36ebikyg5haxup65sakbia: this box cannot read seed markers, and places no seed; nothing local is removed
2026/10/20 16:14:51 provision: acme.go.tito.io: aborted seed sd_bheg36ebikyg5haxup65sakbia rolled back (no box had swapped it)
2026/10/20 16:14:52 provision: acme.go.tito.io: not minting a seeded instance: its record does not describe a hibernating instance
2026/10/20 16:14:52 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:52 provision: removed instance route acme.go.tito.io (its seed sd_yowjzwbz3m22dnlyiletqnbauq was aborted); the next pass rolls it back
2026/10/20 16:14:52 provision: acme.go.tito.io: aborted seed sd_yowjzwbz3m22dnlyiletqnbauq: this box cannot read seed markers, and places no seed; nothing local is removed
2026/10/20 16:14:52 provision: acme.go.tito.io: aborted seed sd_yowjzwbz3m22dnlyiletqnbauq rolled back (no box had swapped it)
2026/10/20 16:14:52 provision: acme.go.tito.io: aborted seed sd_zba3227tgxz33cjddezc6ed5ym has a row this pass may not remove; leaving the seed aborted
2026/10/20 16:14:52 provision: acme.go.tito.io: aborted seed sd_qmjtbjs22jpphnexq7uhxwvbty rolled back (no box had swapped it)
2026/10/20 16:14:52 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:52 provision: removed instance route acme.go.tito.io (its seed sd_br2lty2k73aooxhfgf3vxfsqvi was aborted); the next pass rolls it back
2026/10/20 16:14:52 provision: acme.go.tito.io: aborted seed sd_br2lty2k73aooxhfgf3vxfsqvi has no route on this box: its local data is removed
2026/10/20 16:14:52 provision: acme.go.tito.io: aborted seed sd_br2lty2k73aooxhfgf3vxfsqvi rolled back (no box had swapped it)
2026/10/20 16:14:52 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_fafazfa2amde4oxf37v72zzhge (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_fafazfa2amde4oxf37v72zzhge rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_fafazfa2amde4oxf37v72zzhge is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_flp4o2twkip2v3vtmsxwmeu2uq (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_flp4o2twkip2v3vtmsxwmeu2uq rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_flp4o2twkip2v3vtmsxwmeu2uq is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_cm2n5jgh6w5us7nlmbmktr7wda (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_cm2n5jgh6w5us7nlmbmktr7wda rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_cm2n5jgh6w5us7nlmbmktr7wda: the host's replica is left alone: its record no longer names this seed
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_cm2n5jgh6w5us7nlmbmktr7wda is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_ba74k4yx47ikrmj3wym2qsexa4 (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_ba74k4yx47ikrmj3wym2qsexa4 rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_ba74k4yx47ikrmj3wym2qsexa4 rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_ba74k4yx47ikrmj3wym2qsexa4 is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_3pplebvajqsstjc6nhelx5rqea (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_3pplebvajqsstjc6nhelx5rqea rollback deferred: the host is not fenced and stopped yet (stop unproven)
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_6wasop34am7w7mooubmilhw2tm (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_6wasop34am7w7mooubmilhw2tm is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_jw6az72dofj7ucqo6gwvn6lide (the original route is journaled)
2026/10/20 16:14:52 provision: skipping record apps/bac/shop/instances/a.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_jw6az72dofj7ucqo6gwvn6lide left alone this pass: its record could not be read
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_iokldfxyatpz3cslfqa2w4kjui (the original route is journaled)
2026/10/20 16:14:52 provision: skipping record apps/bac/shop/instances/a.shop.example.com.json: read failed: connection reset
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_iokldfxyatpz3cslfqa2w4kjui left alone this pass: its record could not be read
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_bdkdfygsuz32qqfdf3wkkqg3jm (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_bdkdfygsuz32qqfdf3wkkqg3jm: close the import gate: constraint failed: injected (1811)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_bdkdfygsuz32qqfdf3wkkqg3jm rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_bdkdfygsuz32qqfdf3wkkqg3jm is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_x74at5ohdzplzjauqokkrhp6ai (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_x74at5ohdzplzjauqokkrhp6ai: close the import gate: constraint failed: injected (1811)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_x74at5ohdzplzjauqokkrhp6ai rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_x74at5ohdzplzjauqokkrhp6ai is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_pufyjzio2k2zltoksulqjz4fv4 (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_pufyjzio2k2zltoksulqjz4fv4 rollback deferred: the host is not fenced and stopped yet (injected failure at fence)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_pufyjzio2k2zltoksulqjz4fv4 rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_pufyjzio2k2zltoksulqjz4fv4 is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_j4agq2tewksb4cyephug62hqkm (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_j4agq2tewksb4cyephug62hqkm rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_j4agq2tewksb4cyephug62hqkm is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_zuvgeoazbhe4ahotibgp2pxd2y (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_zuvgeoazbhe4ahotibgp2pxd2y: retire its instance key: injected failure at retire-key
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_zuvgeoazbhe4ahotibgp2pxd2y rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_zuvgeoazbhe4ahotibgp2pxd2y is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_75ql72fym566xxgph2h3twxf3e (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_75ql72fym566xxgph2h3twxf3e rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_75ql72fym566xxgph2h3twxf3e is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_ie65frcnxrf7rui3mpxbgdlmoq (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_ie65frcnxrf7rui3mpxbgdlmoq: remove its local data: injected failure at remove-local
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_ie65frcnxrf7rui3mpxbgdlmoq rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_ie65frcnxrf7rui3mpxbgdlmoq is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_72dbvpquzp7omryonc2pbeo4ju (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_72dbvpquzp7omryonc2pbeo4ju rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_72dbvpquzp7omryonc2pbeo4ju is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_fzlcxvtutrhhenp3qihoga6tjy (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_fzlcxvtutrhhenp3qihoga6tjy: remove its local data: injected failure at remove-local-done
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_fzlcxvtutrhhenp3qihoga6tjy rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_fzlcxvtutrhhenp3qihoga6tjy is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_uz2qsstzzc3abpg3hvkcugokua (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_uz2qsstzzc3abpg3hvkcugokua rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_uz2qsstzzc3abpg3hvkcugokua is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_dijk6atv2vrs5uzsjrl7yz2xnu (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_dijk6atv2vrs5uzsjrl7yz2xnu: restore the original route: constraint failed: injected (1811)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_dijk6atv2vrs5uzsjrl7yz2xnu rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_dijk6atv2vrs5uzsjrl7yz2xnu is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_xq5vkaskhha74zeioxab6yuqwu (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_xq5vkaskhha74zeioxab6yuqwu: restore the original route: constraint failed: injected (1811)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_xq5vkaskhha74zeioxab6yuqwu rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_xq5vkaskhha74zeioxab6yuqwu is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_yrdtrenypnu737hnd2ejran6a4 (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_yrdtrenypnu737hnd2ejran6a4 is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_5d5kuxotuogocud6x6d3pvmpyi (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_5d5kuxotuogocud6x6d3pvmpyi rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_5d5kuxotuogocud6x6d3pvmpyi: delete its snapshot: injected failure at delete-snapshot
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_5d5kuxotuogocud6x6d3pvmpyi is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_yu3mki3ogzrabd2istgn3yjomq (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_yu3mki3ogzrabd2istgn3yjomq rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_yu3mki3ogzrabd2istgn3yjomq is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_bvfnk47b6geep7cfdrl5l7cape (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_bvfnk47b6geep7cfdrl5l7cape rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_bvfnk47b6geep7cfdrl5l7cape: delete the host's replica: injected failure at delete-replica
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_bvfnk47b6geep7cfdrl5l7cape is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_alklmxlmkfzctej2ohk2fzi3py (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_alklmxlmkfzctej2ohk2fzi3py rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_alklmxlmkfzctej2ohk2fzi3py is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_i3brm5mmtozdzyvruuhkoz7he4 (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_i3brm5mmtozdzyvruuhkoz7he4 rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_i3brm5mmtozdzyvruuhkoz7he4: retire its journal row: constraint failed: injected (1811)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_i3brm5mmtozdzyvruuhkoz7he4 is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_wi3i3fdgv45axdhi46cmjpnt7y (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_wi3i3fdgv45axdhi46cmjpnt7y rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_wi3i3fdgv45axdhi46cmjpnt7y: retire its journal row: constraint failed: injected (1811)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_wi3i3fdgv45axdhi46cmjpnt7y is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_ss2uvhz4yuvxrsitvmvy3if34u (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_ss2uvhz4yuvxrsitvmvy3if34u rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_ss2uvhz4yuvxrsitvmvy3if34u is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: mark import sd_ss2uvhz4yuvxrsitvmvy3if34u rolled back: injected failure at cas
2026/10/20 16:14:52 provision: a.shop.example.com: aborted seed sd_ss2uvhz4yuvxrsitvmvy3if34u rolled back (no box had swapped it)
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_6w3wtk36fvunpyrbahynm424xm (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_6w3wtk36fvunpyrbahynm424xm rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_6w3wtk36fvunpyrbahynm424xm is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: aborted seed sd_6w3wtk36fvunpyrbahynm424xm rolled back (no box had swapped it)
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_3md3m4byw7qnbc6efp4ccuzg3q (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_3md3m4byw7qnbc6efp4ccuzg3q rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_3md3m4byw7qnbc6efp4ccuzg3q rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_3md3m4byw7qnbc6efp4ccuzg3q rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_3md3m4byw7qnbc6efp4ccuzg3q is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_m3yolmtqqjtpda24fgggiylev4 (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_m3yolmtqqjtpda24fgggiylev4 rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_m3yolmtqqjtpda24fgggiylev4 is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_bn43vqaduicbonfim6utgyogzm (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_bn43vqaduicbonfim6utgyogzm rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_bn43vqaduicbonfim6utgyogzm is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_gotxidhidxdf6wlrh5qrnllgyy (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_gotxidhidxdf6wlrh5qrnllgyy rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_gotxidhidxdf6wlrh5qrnllgyy is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_jpuwrf7f25loh5xmyrwzspvsaq (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_jpuwrf7f25loh5xmyrwzspvsaq rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_jpuwrf7f25loh5xmyrwzspvsaq is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_ke6zpvslgmwum56y7ehpro3fqu (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_ke6zpvslgmwum56y7ehpro3fqu rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_ke6zpvslgmwum56y7ehpro3fqu is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_2y5cife27cwmqbfhtla7btcdke (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_2y5cife27cwmqbfhtla7btcdke rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_2y5cife27cwmqbfhtla7btcdke is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_sbnirrkg5uchrujylirpf6gsg4 (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_sbnirrkg5uchrujylirpf6gsg4 rolled back to its original route
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_sbnirrkg5uchrujylirpf6gsg4 is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_ht3zcopyzbk3e2pnnmjhl6bdnq (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_ht3zcopyzbk3e2pnnmjhl6bdnq has no route on this box: its local data is removed and no route is put back
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_ht3zcopyzbk3e2pnnmjhl6bdnq is cleaned up and its journal row retired
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_i5cq6z3ro7m57ovoapdpu6rpsi (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_rfvdgahl62blcao3qam33wdxcq (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_5sh2sethydfq52v6jf3avejp3y (the original route is journaled)
2026/10/20 16:14:52 provision: a.shop.example.com: import sd_5sh2sethydfq52v6jf3avejp3y cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/20 16:14:52 provision: a.shop.example.com: swapped for import sd_cb6nbvfumdyur4q6u6usaqxuhm (the original route is journaled)
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_cb6nbvfumdyur4q6u6usaqxuhm is not rolled back: the route changed under the fence, so nothing there is touched
2026/10/20 16:14:53 provision: a.shop.example.com: import "../not-a-seed" names no snapshot and no replica; only its journal row is cleaned up
2026/10/20 16:14:53 provision: a.shop.example.com: import ../not-a-seed is cleaned up and its journal row retired
2026/10/20 16:14:53 provision: a.shop.example.com: swapped for import sd_2xymgoqch6gkr7kjghizvz6w7y (the original route is journaled)
2026/10/20 16:14:53 provision: a.shop.example.com: swapped for import sd_tjdpkhqzv43u55xit3p22qfgue (the original route is journaled)
2026/10/20 16:14:53 provision: a.shop.example.com: swapped for import sd_6dsgrxqfjubpx6nzwzjayezymy (the original route is journaled)
2026/10/20 16:14:53 provision: a.shop.example.com: swapped for import sd_d3fbcd4sb7x5ht2np7c3ukfwzu (the original route is journaled)
2026/10/20 16:14:53 provision: a.shop.example.com: swapped for import sd_5iq3odrwebylnlpx7yqm5tgpku (the original route is journaled)
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_5iq3odrwebylnlpx7yqm5tgpku rollback deferred: the host is not fenced and stopped yet (stop evidence unreadable)
2026/10/20 16:14:53 provision: a.shop.example.com: swapped for import sd_qc2itmbpsdt6cfect4rt5nnzpm (the original route is journaled)
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_qc2itmbpsdt6cfect4rt5nnzpm has no route on this box: its local data is removed and no route is put back
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_qc2itmbpsdt6cfect4rt5nnzpm is cleaned up and its journal row retired
2026/10/20 16:14:53 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 16:14:53 provision: a.shop.example.com: swapped for import sd_yktq4j4aqivrxns7e2hxg36joy (the original route is journaled)
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_yktq4j4aqivrxns7e2hxg36joy: remove its local data: injected failure at remove-local
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_yktq4j4aqivrxns7e2hxg36joy is not rolled back: the route at the host is not the import's, so nothing there is touched
2026/10/20 16:14:53 provision: a.shop.example.com: swapped for import sd_kndn3oiihn6xcjw6u7v6j4e2le (the original route is journaled)
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_kndn3oiihn6xcjw6u7v6j4e2le: a route appeared at the host, so its local database is left and the rollback waits
2026/10/20 16:14:53 provision: a.shop.example.com: swapped for import sd_lycsmy2paleun25lhteabwa2ay (the original route is journaled)
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_lycsmy2paleun25lhteabwa2ay rollback deferred: no fence generation: registry busy
2026/10/20 16:14:53 provision: a.shop.example.com: swapped for import sd_xmt3xfwuy4df4lpgieykv6ijbm (the original route is journaled)
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_xmt3xfwuy4df4lpgieykv6ijbm rollback deferred: no fence generation: the generation source answered 0
2026/10/20 16:14:53 provision: a.shop.example.com: swapped for import sd_sl6e5ygs6p6muzd3gykbxt57me (the original route is journaled)
2026/10/20 16:14:53 provision: a.shop.example.com: swapped for import sd_nxemp5jyh4f6wsr7qrldwu2uz4 (the original route is journaled)
2026/10/20 16:14:53 provision: a.shop.example.com: swapped for import sd_v6qc2h6f47ivuwn7r4el7tagwi (the original route is journaled)
2026/10/20 16:14:53 provision: a.shop.example.com: import deferred: this box cannot read the instance's env file
2026/10/20 16:14:53 provision: a.shop.example.com: import deferred: the instance's env file could not be read: a symlink
2026/10/20 16:14:53 provision: a.shop.example.com: swapped for import sd_pzisslvoonsmhigf6ghmogpvfe (the original route is journaled)
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_pzisslvoonsmhigf6ghmogpvfe rolled back to its original route
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_pzisslvoonsmhigf6ghmogpvfe is cleaned up and its journal row retired
2026/10/20 16:14:53 provision: a.shop.example.com: swapped for import sd_orndhldsfbrpuuevurq4gkb4e4 (the original route is journaled)
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_orndhldsfbrpuuevurq4gkb4e4 rolled back to its original route
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_orndhldsfbrpuuevurq4gkb4e4 is cleaned up and its journal row retired
2026/10/20 16:14:53 provision: a.shop.example.com: swapped for import sd_6jxv25fmxrsabxkdwf734ifg7i (the original route is journaled)
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_6jxv25fmxrsabxkdwf734ifg7i rolled back to its original route
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_6jxv25fmxrsabxkdwf734ifg7i is cleaned up and its journal row retired
2026/10/20 16:14:53 provision: a.shop.example.com: swapped for import sd_xjqxmrvah4fkmgi5mrw4jjzszm (the original route is journaled)
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_xjqxmrvah4fkmgi5mrw4jjzszm: retire its instance key: the env file is a symlink
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_xjqxmrvah4fkmgi5mrw4jjzszm rolled back to its original route
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_xjqxmrvah4fkmgi5mrw4jjzszm is cleaned up and its journal row retired
2026/10/20 16:14:53 provision: a.shop.example.com: swapped for import sd_citpb5x4osa7b5pwfo56agxrzq (the original route is journaled)
2026/10/20 16:14:53 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/20 16:14:53 provision: a.shop.example.com: swapped for import sd_thuc73d2vhzjnczexmnpnjhqtu (the original route is journaled)
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_fa22yghirl4r7wc675ny2kdfdm refused: there is no route at a.shop.example.com to replace
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_5diy6tpwdfuyblefvzbzuc4d6e refused: the route's address is 127.0.0.1:9, not 127.0.0.1:8401
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_ngtyzstudmnblmnqd42pebbfpq refused: the route's address is 127.0.0.1:8401,127.0.0.1:8402, not 127.0.0.1:8401
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_kicmznhm4vmwl7vyuh5v4fckri refused: the route's address is 127.0.0.1:9, not 127.0.0.1:8401
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_7kijvvop4so47rlia6zrxp5tge refused: the route belongs to app other
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_z3ja3m7hbtimvjwlbtk4hmsj7m refused: the route is filed under another account
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_qlrij3q2lwwl6j5ixls7aoxdba refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_ogggpur32xvgeb2jbsoyxtpjke refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_ktymp67rpamh6jct5mmhhptqwy refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_hm3unbifnebq3ajyy2xdv5ioyq refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_vywo3wyfzpd7jnjoujjx4w33vm refused: the route is not an address route this import can take over (socket)
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_jcv66qsjfkyhyhz4vwv3355f6a refused: the route is not an address route this import can take over (no address)
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_mnanmpncjnenmkaq6dzfo5baoq refused: the route is not an address route this import can take over (provisioned)
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_xzlgh7f6ct5f7i7y3pnmigiaty refused: the route is not an address route this import can take over (kind static)
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_t25vsvgsmiw7tbrfg5qae6wag4 refused: the route is not an address route this import can take over (backing)
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_zdt4ea2cwckuaprudqnisncye4 refused: the route is not an address route this import can take over (tunnel)
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_mslc2mbi4pm2zjfqlnnkobzv3y refused: the route is not an address route this import can take over (caps)
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_tl2pwsijdu643v43krdxrn2nvy refused: the route is not an address route this import can take over (platform)
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_kbiqnl6avmzxliw2jf4nm4ersm refused: the route is not an address route this import can take over (canary)
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_vupvzsud5uoq2wz564s7fydqde refused: the route is not an address route this import can take over (kind sidecar)
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_ocznjrzy5cluzm7hy2ojwec4qq refused: the route is not an address route this import can take over (region)
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_fnfa6oel2gbs6j3kog54djdq54 refused: the route is not an address route this import can take over (fleet_box)
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_j6rg2s3e4yz6qy6gi5s3juftju refused: the route is not an address route this import can take over (hibernate)
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_k3ewy3ssqmtej74sob6fmkxrhm refused: the route is not an address route this import can take over (claim_owner)
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_ahhyx3mnrnbyzemdjzoaa2sosq refused: this box does not run instances nested
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_rpcz62twafmxlc5eg4stce4siq refused: this box does not run instances nested
2026/10/20 16:14:53 provision: a.shop.example.com: import sd_547ewxzql2bnujoj3sepl2h5fy refused: claim control is on for this box
2026/10/20 16:14:53 provision: a.shop.example.com: swapped for import sd_b67h247glslqtdp47synb3g7dq (the original route is journaled)
2026/10/20 16:14:53 provision: a.shop.example.com: swapped for import sd_k7i6eerofvj4d6uwxmsmxqu3qe (the original route is journaled)
2026/10/20 16:14:53 provision: a.shop.example.com: import deferred: this box cannot read the legacy route assignments
2026/10/20 16:14:53 provision: a.shop.example.com: import deferred: the legacy route assignments could not be read: store down
2026/10/20 16:14:53 provision: a.shop.example.com: not swapping for import sd_3eqsdwkwez5byyokdk3zw7zdhe: its verify hash is not a sha256
2026/10/20 16:14:53 provision: a.shop.example.com: not swapping for import sd_fibluaomezhqaqnmdf4b74fibe: its verify hash is not a sha256
2026/10/20 16:14:53 provision: a.shop.example.com: not swapping for import sd_wbpbp3fuk6vpbjs4ws4hxzdzq4: its verify hash is not a sha256
2026/10/20 16:14:53 provision: a.shop.example.com: not swapping for import sd_../../x: its host or seed id is malformed (seeds: not a seed id)
2026/10/20 16:14:53 provision: A.shop.example.com/..: not swapping for import sd_a22zk77rx77sxjqz7siiyuttee: its host or seed id is malformed (seeds: not a host)
2026/10/20 16:14:53 provision: a.shop.example.com: not swapping for import sd_bofc7hd3g3b4pbdjkoulxge3he: its record does not describe a nested, hibernating instance
2026/10/20 16:14:53 provision: a.shop.example.com: not swapping for import sd_eis3ilygz5jdrhzv5dx6lxk6qy: its record does not describe a nested, hibernating instance
2026/10/20 16:14:53 provision: a.shop.example.com: not swapping for import sd_fbv77drjbqeebggu2t64mqt6j4: its record does not describe a nested, hibernating instance
2026/10/20 16:14:53 provision: a.shop.example.com: not swapping for import sd_akt6dz2hxlyay45igbcdtrrbkq: its record does not describe a nested, hibernating instance
2026/10/20 16:14:53 provision: a.shop.example.com: import deferred: the box's layout intent could not be read: store down
2026/10/20 16:14:53 provision: a.shop.example.com: swapped for import sd_6awxf43zk6eh2wjbu5stgtbiou (the original route is journaled)
2026/10/20 16:14:54 provision: a.shop.example.com: import deferred: the box's nested probe did not answer: ready probe timed out
2026/10/20 16:14:54 provision: a.shop.example.com: swapped for import sd_fzh57mbzvbcxw7prak7yglkbaq (the original route is journaled)
2026/10/20 16:14:54 provision: a.shop.example.com: swapped for import sd_373qr7c3thpjikqh4sy7k427lu (the original route is journaled)
2026/10/20 16:14:54 provision: a.shop.example.com: import deferred: the route is held by operation op_1
2026/10/20 16:14:54 provision: dry-run: would consider swapping a.shop.example.com for import sd_l3puha7slk5jgbie5owkka22r4
2026/10/20 16:14:54 provision: a.shop.example.com: import sd_yuax6kozy7wfkboxjyyfg7l3zm rolled back to its original route
2026/10/20 16:14:54 provision: a.shop.example.com: import sd_yuax6kozy7wfkboxjyyfg7l3zm: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/20 16:14:54 provision: a.shop.example.com: import sd_yuax6kozy7wfkboxjyyfg7l3zm is cleaned up and its journal row retired
2026/10/20 16:14:54 provision: a.shop.example.com: import sd_nxlirpculxd77twsffsxdngo3q left alone: the import journal holds seed sd_h225hwqgdhrytfuubufuieek4e at swapped
2026/10/20 16:14:54 provision: a.shop.example.com: not minting import sd_f6ev3udzpd33inptmqinz4ipgi: it is swapped but not committed, and only its swap makes its row
2026/10/20 16:14:54 provision: a.shop.example.com: not minting import sd_ea5mh747shvr7go6qslyr37ep4: it is placed but not committed, and only its swap makes its row
2026/10/20 16:14:54 provision: a.shop.example.com: swapped for import sd_6igqxug3pdidgbkybepo3gf7la (the original route is journaled)
2026/10/20 16:14:54 provision: a.shop.example.com: not minting import sd_6igqxug3pdidgbkybepo3gf7la: it is swapped but not committed, and only its swap makes its row
2026/10/20 16:14:54 provision: a.shop.example.com: not minting import sd_6igqxug3pdidgbkybepo3gf7la: it is placed but not committed, and only its swap makes its row
2026/10/20 16:14:54 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 16:14:54 provision: removed retired sidecar route gone.eleven.bac.sidecar.internal (record gone)
2026/10/20 16:14:54 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 16:14:54 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 16:14:54 provision: converged sidecar bot.eleven.bac.sidecar.internal args ["sidecar","run"] -> ["worker","run"]
2026/10/20 16:14:54 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 16:14:54 provision: converged sidecar bot.eleven.bac.sidecar.internal ceilings 300/3600 -> 60/120
2026/10/20 16:14:54 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 16:14:54 provision: converged sidecar bot.eleven.bac.sidecar.internal channel stable -> canary/eleven
2026/10/20 16:14:54 provision: converged sidecar bot.eleven.bac.sidecar.internal environment "other" -> "relay"
2026/10/20 16:14:54 provision: converged sidecar bot.eleven.bac.sidecar.internal hibernate true -> false
2026/10/20 16:14:54 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: read failed: failStore: reads disabled under apps/bac/eleven/sidecars/
2026/10/20 16:14:54 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: malformed: invalid character 'n' looking for beginning of object key string
2026/10/20 16:14:54 provision: not removing sidecar bot.eleven.bac.sidecar.internal: its record exists but could not be read cleanly this pass
2026/10/20 16:14:54 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: empty channel
2026/10/20 16:14:54 provision: skipping sidecar record apps/bac/eleven/sidecars/held.json: empty channel
2026/10/20 16:14:54 provision: not removing sidecar held.eleven.bac.sidecar.internal: its record exists but could not be read cleanly this pass
2026/10/20 16:14:54 provision: removed retired sidecar route old.eleven.bac.sidecar.internal (record gone)
2026/10/20 16:14:54 provision: bac/eleven has sidecar records but no sidecars manifest — not minting
2026/10/20 16:14:54 provision: bac/eleven is in the trash — not minting sidecar routes for it
2026/10/20 16:14:54 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/20 16:14:54 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/20 16:14:54 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 16:14:54 provision: minted sidecar route hub.relay.bac.sidecar.internal (app "relay" acct "bac" args ["relay"])
2026/10/20 16:14:54 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/20 16:14:54 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 16:14:54 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/20 16:14:54 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 16:14:54 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 16:14:54 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/20 16:14:54 provision: removed retired sidecar route bot.eleven.bac.sidecar.internal (record gone)
2026/10/20 16:14:54 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 16:14:54 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/20 16:14:54 provision: skipping sidecar record apps/bac/relay/sidecars/hub.json: read failed: failStore: reads disabled under apps/bac/relay/sidecars/
2026/10/20 16:14:54 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/20 16:14:54 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 16:14:54 provision: dry-run: would mint sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" channel "stable" args ["sidecar","run"])
2026/10/20 16:14:54 provision: dry-run: would remove retired sidecar route gone.eleven.bac.sidecar.internal (record gone)
2026/10/20 16:14:54 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/20 16:14:54 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:54 provision: converged acme.go.tito.io update settings "{\"updates\":\"manual\",\"channel\":\"stable\"}" -> ""
2026/10/20 16:14:54 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:54 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:54 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/20 16:14:54 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/20 16:14:54 provision: acme.go.tito.io: not minted this pass: the app's update policy could not be read
2026/10/20 16:14:54 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 16:14:54 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/20 16:14:54 provision: acme.go.tito.io: not minted this pass: the app's update policy could not be read
2026/10/20 16:14:54 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	18.351s
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	5.493s
ok  	github.com/carlosframework/platform/internal/relay	7.227s
ok  	github.com/carlosframework/platform/internal/release	24.666s
ok  	github.com/carlosframework/platform/internal/rollout	3.707s
ok  	github.com/carlosframework/platform/internal/rolloutwords	0.005s
ok  	github.com/carlosframework/platform/internal/rootaws	0.007s
ok  	github.com/carlosframework/platform/internal/rootparticipation	0.059s
ok  	github.com/carlosframework/platform/internal/rootstate	0.026s
ok  	github.com/carlosframework/platform/internal/runs	0.579s
ok  	github.com/carlosframework/platform/internal/s3compat	0.005s
ok  	github.com/carlosframework/platform/internal/safefile	0.004s
ok  	github.com/carlosframework/platform/internal/schedule	2.532s
ok  	github.com/carlosframework/platform/internal/seeds	0.012s
ok  	github.com/carlosframework/platform/internal/sim/hostlife	9.274s
ok  	github.com/carlosframework/platform/internal/sim/litestreamfacts	4.455s
ok  	github.com/carlosframework/platform/internal/status	0.060s
ok  	github.com/carlosframework/platform/internal/steering	0.006s
ok  	github.com/carlosframework/platform/internal/stopevidence	0.203s
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.003s
ok  	github.com/carlosframework/platform/internal/updatewords	0.005s
ok  	github.com/carlosframework/platform/internal/usage	0.005s
ok  	github.com/carlosframework/platform/internal/version	0.003s
ok  	github.com/carlosframework/platform/internal/vet	1.597s
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/harness/RESOURCES.md b/harness/RESOURCES.md
index 8ad02ac48..908e4ef8e 100644
--- a/harness/RESOURCES.md
+++ b/harness/RESOURCES.md
@@ -16,3 +16,4 @@ Appended as each is created. Teardown commands: harness/TEARDOWN.md.
| 2026-10-20T00:51:52Z | (terminated) donor-2 | i-019177034b088459f | documents in s3://carlos-harness-640012953448/donors/donor-2/ |
| 2026-10-20T01:06:29Z | ebs volume (host root) | vol-035c92e5b506cc3db | 60 GiB gp3, DeleteOnTermination=true; goes with the host |
| 2026-10-20T09:5xZ | TTL extended | i-06a1ec144aa5226fb, sg-0b9cf4c2a508b7cec, vol-035c92e5b506cc3db, bucket carlos-harness-640012953448, role and instance profile carlos-harness | ttl and expires tags 2026-10-20T12:40Z -> 2026-10-20T18:40Z; on the host `shutdown -c; shutdown -h 18:40` (shutdown --show: 18:40:00 UTC); coordinator's request |
+| 2026-10-20T16:02Z | TTL extended | i-06a1ec144aa5226fb, sg-0b9cf4c2a508b7cec, vol-035c92e5b506cc3db, bucket carlos-harness-640012953448, role and instance profile carlos-harness | ttl and expires tags 2026-10-20T18:40Z -> 2026-10-20T23:40Z; on the host `shutdown -c; shutdown -h 23:40` (shutdown --show: 23:40:00 UTC); Run 9 (v0.28.5 roll) and the offline-move rehearsal |
diff --git a/harness/RUNLOG.md b/harness/RUNLOG.md
index e65bb3b10..aad784de0 100644
--- a/harness/RUNLOG.md
+++ b/harness/RUNLOG.md
@@ -1420,3 +1420,66 @@ the ext4 container that holds it, as now), wait for fresh box reports, reopen se
`w81.box.sh`, `w81b.sh`, `w82.box.sh`, `w82b.sh`, `w84.box.sh`, `w9.box.sh`, `g9-check.sh`, `b4.sh`, `b4-pair.sh`,
`b4-after.sh`, `acceptance.host.sh 1..4`; then the normal road with a restamped build. Everything runs through
`harness/hssm.py` / `harness/hrun.sh` from DOCS-T1 with the sandbox off.
+
+# Run 9: v0.28.5 roll (2026-10-20 evening)
+
+Coordinator's brief: rehearse (A) rolling the published release v0.28.5 onto dev-shaped boxes, guard-armed ones
+included, and (B) a full offline operator move from the Ireland box (sophie) to the UK box (dennis). Harness only.
+Host TTL extended to 2026-10-20T23:40Z first (RESOURCES.md, 16:02Z).
+
+## The build
+
+Release v0.28.5 = tag `v0.28.5` -> main `54ae7fb9` (clean checkout `~/.cache/release-v0.28.5/src`, detached).
+`git archive 54ae7fb9` + the harness patch (6b905c11's `internal/` diff, seven files, sha256 `b2f1ad8f...`, the
+same patch as every earlier run: the ONE binary deviation), `-tags harness`, `GOFLAGS=-buildvcs=false`, linux/arm64,
+`-ldflags "-s -w -X github.com/carlosframework/platform/internal/version.Build=<stamp>"`, for `.` and `./cmd/console`.
+Tests: `./internal/s3compat ./internal/publicrelease ./internal/rootaws ./internal/hostfloor` ok (default build);
+`-tags harness ./internal/s3compat ./internal/publicrelease` ok.
+
+| stamp | plays | carlos sha256 | console sha256 | bucket prefix |
+|---|---|---|---|---|
+| **v0.28.6** | dev's **v0.28.5** (54ae7fb9) | `9c662e4d685a1c73941a58ce74d8b14638d309de3d1915151df511874de085a1` | `dd24213dff7b8bd5df575ccaee253df866ecefb613301fb6abc57752523ba159` | `artefacts/v0.28.6-54ae7fb9/` |
+| v0.28.7 | v0.28.5+harness-1 (same tree restamped, normal road) | `43631b6b0573fa556f3fcbc9d57b0c49c7a26c53bdf72aa569f41bc29736affb` | `913cff5c361b53c611ed4e19c4422177253e6792e5460ad8b44d35d9ff98b8f9` | `artefacts/v0.28.7-54ae7fb9/` |
+| moveprobe | the move rehearsal app (`cmd/moveprobe` @ 54ae7fb9, no tag) | `6d331a2fab4d59b9ed241cca18e99bdcf010315dae3cc573639d8caaea5f7cfe` | | `artefacts/moveprobe-54ae7fb9/` |
+
+**Why the stamp is v0.28.6, not v0.28.5 (deviation from the brief, naming only).** In every harness snapshot the
+tag v0.28.5 is already step 7's release of 96db0efe, which plays dev's v0.28.4: s7's boxes run it, the floor's
+`min_release` is v0.28.5, and `control/system/router/releases/v0.28.5.json` is published create-only. A second
+v0.28.5 could neither get an identity (create-only refuses) nor be a newer release than what the boxes run. So, as in
+the window runs ("harness v0.28.6 plays dev's v0.28.5"), the release commit is stamped **v0.28.6**. The code is
+54ae7fb9 byte for byte apart from the harness file; read "v0.28.6" below as dev's v0.28.5, and "v0.28.5" in the
+harness as dev's v0.28.4. "v0.28.5+harness-1" is stamped v0.28.7 for the same reason (a release tag the console and
+identity accept, newer than v0.28.6).
+
+## Setup: the dev-shaped state, snapshot `pre-0285`
+
+`blocks/r9-setup.host.sh` (16:08-16:12Z):
+1. `leo-ext4-from.sh s7 leo-ext4-run8b 203.0.113.126`: infra, sophie, dennis, signer and the console volume restored to
+ `s7`; leo copied onto ext4 (`hdir`, H16) from `leo-btrfs/s7` (`/` dev 259:3 in both); the Run 8 ext4 leo kept,
+ stopped, as `leo-ext4-run8b`. Every container `running`, `--failed` empty; leo `carlos v0.28.5`.
+2. H14/H15 (`vendor-shims.sh`; tenant units see a read-only cgroupfs, as on EC2) and H13 certificates for
+ `wakecheck`, `moveapp`, `rollbackapp` `.dev.harness.test`.
+3. **Sophie paused** (dev's state since 2026-10-19): saved copies (`paused-20261019/`, `5df17bac...`, `815226c3...`),
+ then the runbook's **"Pause again"** block verbatim from `claim-dev-cohort1-runbook` @ 5e23c83d (C1 is already in
+ it): `active`, `CARLOS_HOST_CLAIM=` (empty), healthz 200, 0 `off on a host-claim console` lines.
+4. What dev has that s7 lacks, through the ordinary doors with s7's operator CLI (harness v0.28.5): `wakecheck`
+ (pool-less, wc4 stand-in `4a79c656...`, `created ... (channel edge, Ireland · Dublin)`, `host=sophie hits=2,3`), then
+ runbook 4.2 on leo (`CARLOS_POOLS=cohort1`, edge restart, active) and 4.3 (`removed wakecheck.dev.harness.test`).
+ Not seeded: claimtrial, rollcheck-0261, moverehearsal (not needed for the roll or the move).
+5. Snapshot **`pre-0285`** (16:11:23Z): all five containers and the console volume; after it, console
+ `CARLOS_HOST_CLAIM=` and healthz 200.
+
+## (A) The roll
+
+### (a) The signing session: PASS (16:13:09-16:13:46Z)
+
+`blocks/r9-release.host.sh v0.28.6 v0.28.6-54ae7fb9 <carlos sha> <console sha> 54ae7fb9`:
+- `release-window.sh`: signed sums `f15ba662...` (`Signature Verified Successfully`); operator CLI `carlos v0.28.6`
+ (`harness build: yes`); **C2: console `54ae7fb9` shipped and promoted to `canary/console` before publish-identity**
+ (`canary/console 54ae7fb9 2026-10-20T16:13:15Z yes`).
+- Session `cohort1-20261020T161315Z` (`w-open-signer.sh`): signer `carlos v0.28.6` OK against the signed sums, helpers
+ and release.pub OK, swap 0, `/run` tmpfs, key `root 600 1 45`.
+- `publish-identity` (`w-identity.sh`, WTAG=v0.28.6 WCV=54ae7fb9): one create-only write (`before_etag ""`) of
+ `control/system/router/releases/v0.28.6.json` (`b67dffa3...`); router `9c662e4d...` (= the signed sums), console
+ `dd24213d...`; identity file = published object; REV 9.
+
diff --git a/harness/scenarios/cohort1/blocks/r9-console.host.sh b/harness/scenarios/cohort1/blocks/r9-console.host.sh
new file mode 100644
index 000000000..b85eac298
--- /dev/null
+++ b/harness/scenarios/cohort1/blocks/r9-console.host.sh
@@ -0,0 +1,51 @@
+#!/bin/bash
+# Run 9 (e): sophie's guarded console onto the release (on host, root).
+# r9-console.host.sh <TAG> <CV> <console sha>
+# The claim owner: a plain promote does not change what runs under 90-host-floor.conf, so the protected
+# console is replaced by `system claims install-console --identity --source`, then console.service restarts.
+# Source: the agent-staged copy of the promoted console (/opt/carlos/versions/<CV>/console), as 6.3 used,
+# if it is there and has the release's sha; otherwise the release artefact pushed to /root/console-<TAG>.
+set -uo pipefail
+TAG=$1 CV=$2 COS=$3
+I=/home/operator/cohort1/out/identity.$TAG.json
+runuser -l operator -c "aws s3 cp --quiet s3://harness-deployment/control/system/router/releases/$TAG.json -" | cmp - $I && echo "identity file = published object"
+incus file push $I sophie/root/claim-trial/identity.$TAG.json --uid 0 --gid 0 --mode 0600 -q
+SRC=/opt/carlos/versions/$CV/console
+if [ "$(incus exec sophie -- sh -c "sha256sum < $SRC 2>/dev/null | cut -d' ' -f1")" = "$COS" ]; then
+ echo "source: agent-staged $SRC ($(incus exec sophie -- stat -c '%U:%G %a' $SRC))"
+else
+ echo "source: $SRC absent or not the release ($(incus exec sophie -- sh -c "ls -la /opt/carlos/versions/ 2>&1 | tr '\n' ' '"))"
+ SRC=/root/console-$TAG
+ incus file push /root/harness/release/$TAG/console-linux-arm64 sophie$SRC --uid 0 --gid 0 --mode 0700 -q
+ echo "source: release artefact pushed to $SRC"
+fi
+incus exec sophie -- bash -s -- "$TAG" "$SRC" "$COS" <<'BOX'
+set -euo pipefail
+TAG=$1 CONSOLE_SOURCE=$2 COS=$3
+umask 077
+cd /root/claim-trial
+set -a
+. /etc/carlos/host.env
+set +a
+PUB=$(cat release.pub)
+CONSOLE_BINARY=/opt/carlos/system/console/console
+p=$(systemctl show -p MainPID --value console.service)
+echo "before: pid $p exe $(readlink /proc/$p/exe) sha $(sha256sum < /proc/$p/exe | cut -c1-16) binary $(sha256sum < $CONSOLE_BINARY | cut -c1-16)"
+ls /opt/carlos/system/guard/identities
+date -u +%T.%3NZ
+/opt/carlos/carlos system claims install-console --identity /root/claim-trial/identity.$TAG.json --source "$CONSOLE_SOURCE" \
+ --bucket harness-deployment --aws-region eu-west-1 --public-key "$PUB" --dry-run
+/opt/carlos/carlos system claims install-console --identity /root/claim-trial/identity.$TAG.json --source "$CONSOLE_SOURCE" \
+ --bucket harness-deployment --aws-region eu-west-1 --public-key "$PUB"
+stat -c '%n %a %U:%G %s' $CONSOLE_BINARY $CONSOLE_BINARY.prev
+test "$(sha256sum < $CONSOLE_BINARY | cut -d' ' -f1)" = "$COS" && echo "installed $CONSOLE_BINARY = the release console"
+T=$(date -u +%T.%3NZ); systemctl restart console.service; echo "restart at $T"
+systemctl is-active console.service
+for i in $(seq 1 40); do p=$(systemctl show -p MainPID --value console.service); [ "$(readlink /proc/$p/exe)" = $CONSOLE_BINARY ] && break; sleep 0.25; done
+H=$(sha256sum < /proc/$p/exe | cut -d' ' -f1); echo "console pid $p exe $(readlink /proc/$p/exe) sha256 $H"; test "$H" = "$COS"
+tr '\0' '\n' < "/proc/$p/environ" | grep '^CARLOS_HOST_CLAIM='
+systemctl show console.service -p NRestarts -p ActiveState -p ExecMainStartTimestamp
+for i in $(seq 1 20); do c=$(curl -s -o /dev/null -w '%{http_code}' http://127.0.0.1:8090/healthz); [ "$c" = 200 ] && break; sleep 0.5; done
+echo "healthz $c ($(date -u +%T.%3NZ)); / $(curl -s -o /dev/null -w '%{http_code}' http://127.0.0.1:8090/)"
+case "$CONSOLE_SOURCE" in /root/*) shred -u "$CONSOLE_SOURCE" && echo "shredded $CONSOLE_SOURCE";; esac
+BOX
diff --git a/harness/scenarios/cohort1/blocks/r9-move-setup.host.sh b/harness/scenarios/cohort1/blocks/r9-move-setup.host.sh
new file mode 100644
index 000000000..2411f2e3e
--- /dev/null
+++ b/harness/scenarios/cohort1/blocks/r9-move-setup.host.sh
@@ -0,0 +1,70 @@
+#!/bin/bash
+# Run 9 (B) step 1 (on host, root): two flagship-shaped test apps in account bab, claims off,
+# placed in home (sophie, Ireland), woken on sophie only.
+# H17 (harness seeding of dev state): the deployment secrets key. Dev's boxes hold CARLOS_SECRETS_KEY
+# (dennis since 2026-10-15); the harness never had one. Minted with `carlos secrets genkey`; KEY into
+# leo's, sophie's and dennis's host.env, PUBKEY into sophie's host.env (console.service reads it); the
+# private half also at /run/harness/keys/secrets.env (tmpfs, 0600). Edges and console restarted.
+# H18 (deviation): the store binding. The console's only store backend is AWS IAM
+# (cmd/console/main.go:714-758 storeBackend; CreateUser/PutUserPolicy), which MinIO cannot answer, so the
+# binding is made as the app's own sealed settings (MOVEPROBE_BUCKET/_REGION/_ENDPOINT/_ACCESS_KEY/
+# _SECRET_KEY) naming a per-app MinIO bucket and a user whose policy covers only that bucket. It reaches
+# the box the same way a store binding does: the bundle, rendered into <host>.config.env.
+# Apps: moveapp (the move) and rollbackapp (the abort rehearsal): moveprobe from 54ae7fb9 (cmd/moveprobe),
+# version mp1, channel edge, secret, a plain setting, schedule every-minute /tick, a once-timer, pool-less,
+# region home.
+set -euo pipefail
+K=/run/harness/keys; MC=/root/harness/bin/mc
+OP() { runuser -l operator -c "set -euo pipefail; C=http://127.0.0.1:8090; export AWS_PROFILE=harness CARLOS_DEPLOYMENT_BUCKET=harness-deployment; $1"; }
+echo "== H17 secrets key ($(date -u +%T.%3NZ))"
+for b in leo sophie dennis; do echo "$b: $(incus exec $b -- grep -c '^CARLOS_SECRETS_' /etc/carlos/host.env || true) secrets lines before"; done
+if [ ! -s $K/secrets.env ]; then (umask 077; /usr/local/bin/carlos secrets genkey > $K/secrets.env 2>/dev/null); fi
+. $K/secrets.env
+for b in leo sophie dennis; do
+ incus exec $b -- bash -c "grep -q '^CARLOS_SECRETS_KEY=' /etc/carlos/host.env || printf 'CARLOS_SECRETS_KEY=%s\n' '$CARLOS_SECRETS_KEY' >> /etc/carlos/host.env"
+done
+incus exec sophie -- bash -c "grep -q '^CARLOS_SECRETS_PUBKEY=' /etc/carlos/host.env || printf 'CARLOS_SECRETS_PUBKEY=%s\n' '$CARLOS_SECRETS_PUBKEY' >> /etc/carlos/host.env"
+for b in leo sophie dennis; do incus exec $b -- bash -c 'stat -c "%n %a %U:%G" /etc/carlos/host.env; systemctl restart carlos-edge.service; systemctl is-active carlos-edge.service'; done
+incus exec sophie -- bash -c 'systemctl restart console.service; for i in $(seq 1 40); do [ "$(curl -s -o /dev/null -w %{http_code} http://127.0.0.1:8090/healthz)" = 200 ] && break; sleep 0.5; done; echo "console $(systemctl is-active console.service) healthz 200"'
+echo "pubkey fp: $(printf %s "$CARLOS_SECRETS_PUBKEY" | base64 -d | sha256sum | cut -c1-16)"
+echo "== H18 MinIO stores ($(date -u +%T.%3NZ))"
+for app in moveapp rollbackapp; do
+ bk=harness-store-$app; u=store-$app; sk=$(od -An -N20 -tx1 /dev/urandom | tr -d ' \n')
+ $MC mb --ignore-existing harness/$bk >/dev/null
+ printf '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Action":["s3:*"],"Resource":["arn:aws:s3:::%s","arn:aws:s3:::%s/*"]}]}' $bk $bk > /root/harness/policy-$u.json
+ $MC admin policy create harness $u /root/harness/policy-$u.json >/dev/null
+ $MC admin user add harness $u $sk >/dev/null
+ $MC admin policy attach harness $u --user $u >/dev/null 2>&1 || true
+ (umask 077; printf 'MOVEPROBE_BUCKET=%s\nMOVEPROBE_REGION=eu-west-1\nMOVEPROBE_ENDPOINT=http://203.0.113.10:9000\nMOVEPROBE_ACCESS_KEY=%s\nMOVEPROBE_SECRET_KEY=%s\nMOVEPROBE_SECRET=%s\n' $bk $u $sk "$(od -An -N24 -tx1 /dev/urandom | tr -d ' \n')" > $K/$app.store.env)
+ install -o operator -g operator -m 0600 $K/$app.store.env /home/operator/.$app.store.env
+ echo "$app: bucket $bk user $u policy $(cat /root/harness/policy-$u.json | sha256sum | cut -c1-12)"
+done
+echo "== apps ($(date -u +%T.%3NZ))"
+install -d -o operator -g operator -m 0755 /home/operator/r9
+aws s3 cp --quiet s3://carlos-harness-640012953448/artefacts/moveprobe-54ae7fb9/moveprobe /home/operator/r9/moveprobe
+chown operator:operator /home/operator/r9/moveprobe; chmod 0755 /home/operator/r9/moveprobe
+for app in moveapp rollbackapp; do
+ OP "F=~/r9/moveprobe; sha256sum \$F; export CARLOS_SECRETS_PUBKEY='$CARLOS_SECRETS_PUBKEY'
+carlos apps create --app $app --account bab --console \$C
+carlos ship --app $app --account bab --console \$C --version mp1 --label 'moveprobe 54ae7fb9 (harness offline-move rehearsal)' --no-prompt \$F
+carlos promote --app $app --account bab --console \$C --no-prompt mp1 edge
+carlos instances enable --app $app --account bab --domain dev.harness.test --channel edge
+set -a; . ~/.$app.store.env; set +a
+carlos secrets set --app $app --account bab --console \$C MOVEPROBE_SECRET=\"\$MOVEPROBE_SECRET\" MOVEPROBE_ACCESS_KEY=\"\$MOVEPROBE_ACCESS_KEY\" MOVEPROBE_SECRET_KEY=\"\$MOVEPROBE_SECRET_KEY\"
+carlos env set --app $app --account bab --console \$C MOVEPROBE_BUCKET=\"\$MOVEPROBE_BUCKET\" MOVEPROBE_REGION=\"\$MOVEPROBE_REGION\" MOVEPROBE_ENDPOINT=\"\$MOVEPROBE_ENDPOINT\" HARNESS_NOTE=r9-$app
+carlos schedule set --app $app --account bab --console \$C --name every-minute --every 1m --path /tick
+carlos instances create --app $app --account bab --host $app.dev.harness.test --console \$C --no-prompt"
+done
+echo "== wake on sophie only ($(date -u +%T.%3NZ))"
+sleep 40
+for app in moveapp rollbackapp; do
+ for i in 1 2 3 4 5 6; do
+ c=$(incus exec sophie -- curl -s -m 40 --cacert /root/harness-ca.pem -o /dev/null -w '%{http_code}' --resolve $app.dev.harness.test:443:127.0.0.1 https://$app.dev.harness.test/ready); echo "$app /ready $c"; [ "$c" = 200 ] && break; sleep 10
+ done
+ S=$(grep ^MOVEPROBE_SECRET= $K/$app.store.env | cut -d= -f2)
+ incus exec sophie -- curl -s -m 20 --cacert /root/harness-ca.pem -X POST -H "Authorization: Bearer $S" --resolve $app.dev.harness.test:443:127.0.0.1 "https://$app.dev.harness.test/arm-once?in=2700"; echo
+ incus exec sophie -- curl -s -m 20 --cacert /root/harness-ca.pem -H "Authorization: Bearer $S" --resolve $app.dev.harness.test:443:127.0.0.1 https://$app.dev.harness.test/report | jq -c '{host,region,rows,fired,file_key_sha256,platform_key_sha256,object:.object.key,has_secret,worker_writes_committed}'
+done
+for b in leo sophie dennis; do echo "== $b routes"; incus exec $b -- python3 -c "import sqlite3; c=sqlite3.connect('file:/data/registry.db?mode=ro',uri=True); [print(r) for r in c.execute('select host,app,pool,region,channel,hibernate,status from routes order by host')]" 2>&1; done
+incus exec sophie -- bash -c 'for a in moveapp rollbackapp; do h=$a.dev.harness.test; ls -la /data/$h.env /data/$h.config.env /data/$h.db 2>&1; done; ls /data/instances /data/.instances 2>&1'
+OP 'carlos status --layout --console $C' 2>&1 | grep -v ALERT
diff --git a/harness/scenarios/cohort1/blocks/r9-rearm.host.sh b/harness/scenarios/cohort1/blocks/r9-rearm.host.sh
new file mode 100644
index 000000000..43f46cc28
--- /dev/null
+++ b/harness/scenarios/cohort1/blocks/r9-rearm.host.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+# Run 9: the ruled re-arm (runbook G4's seven steps) for one armed box, from the host.
+# r9-rearm.host.sh <container> <box label> <channel> <TAG>
+# rearm-strict2.host.sh generalised to any armed box and channel (sophie follows canary, H8);
+# the box-side commands are rearm-strict.leo.sh unchanged (they name no box).
+# Promote only through the console, as the runbook's step 2 does.
+set -uo pipefail
+C=$1 LABEL=$2 CH=$3 TAG=$4
+T0=$(date -u +%s)
+incus file push /root/harness/release/$TAG/carlos-linux-arm64 $C/root/carlos-$TAG --uid 0 --gid 0 --mode 0700 -q
+fresh() { runuser -l operator -c 'for b in ada-letterpress kathleen-juggling noor-marquetry; do date -u -d "$(aws s3api head-object --bucket harness-deployment --key status/boxes/$b.json --query LastModified --output text)" +%s; done' | sort -n | head -1; }
+for i in $(seq 1 60); do [ "$(fresh)" -gt "$T0" ] && break; sleep 10; done; echo "box reports fresh at $(date -u +%T)"
+SUMS_SHA=$(grep ' carlos-linux-arm64$' /root/harness/release/$TAG/SHA256SUMS.txt | cut -d' ' -f1)
+IDENT_SHA=$(runuser -l operator -c "aws s3 cp --quiet s3://harness-deployment/control/system/router/releases/$TAG.json -" | python3 -c '
+import json,sys,base64
+d=json.load(sys.stdin)
+if "payload" in d and isinstance(d["payload"],str): d=json.loads(base64.b64decode(d["payload"]))
+c=d.get("current") or d.get("release") or d
+print(c["artifacts"]["linux-arm64"]["sha256"])')
+echo "SUMS_SHA=$SUMS_SHA IDENT_SHA=$IDENT_SHA"
+[ "$SUMS_SHA" = "$IDENT_SHA" ] || { echo STOP; exit 1; }
+B=$(sed -e "s/__TAG__/$TAG/" -e "s/__SUMS_SHA__/$SUMS_SHA/" -e "s/__IDENT_SHA__/$IDENT_SHA/" /home/operator/cohort1/blocks/rearm-strict.leo.sh)
+insp() { runuser -l operator -c 'carlos system claims inspect --bucket harness-deployment --aws-region eu-west-1 --public-key "$(cat ~/release.pub)" 2>/dev/null | jq -c "{rev: .roster.revision, activations: (.roster.activations | keys)}"'; }
+echo "roster before: $(insp)"
+echo "== $C before: $(incus exec $C -- /opt/carlos/carlos version 2>&1 | tail -1) / prev $(incus exec $C -- /opt/carlos/carlos.prev version 2>&1 | tail -1)"
+echo "== 1 stop the path on $C $(date -u +%T.%3NZ)"; incus exec $C -- bash -c "$B" -- stop
+echo "== 2 promote router/$CH $(date -u +%T.%3NZ)"; runuser -l operator -c "carlos system update --console http://127.0.0.1:8090 --channel $CH --version $TAG --file ~/release-$TAG/carlos-linux-arm64 --platform linux-arm64 --yes" 2>&1 | grep -v ALERT
+echo "roster after promote: $(insp)"
+echo "== 3-7 on $C $(date -u +%T.%3NZ)"; incus exec $C -- bash -c "$B" -- apply; RC=$?; echo "$C block exit=$RC $(date -u +%T.%3NZ)"
+echo "== 6 operator-side evidence"
+T1=$(date -u +%s); for i in $(seq 1 60); do t=$(runuser -l operator -c 'date -u -d "$(aws s3api head-object --bucket harness-deployment --key status/boxes/'$LABEL'.json --query LastModified --output text)" +%s'); [ "$t" -gt "$T1" ] && break; sleep 10; done
+runuser -l operator -c 'aws s3 cp s3://harness-deployment/status/boxes/'$LABEL'.json - | jq -c "{generated_at, release: .metrics.release, binary: .metrics.binary_sha256[0:16], activation_id: .metrics.activation_id, activation_complete: .metrics.activation_complete}"'
+for i in $(seq 1 40); do a=$(insp); case "$a" in *'"activations":[]'*) echo "$(date -u +%T) roster $a"; break;; esac; sleep 15; done
+runuser -l operator -c "carlos system status --console http://127.0.0.1:8090" 2>&1 | grep -v ALERT
+exit $RC
diff --git a/harness/scenarios/cohort1/blocks/r9-release.host.sh b/harness/scenarios/cohort1/blocks/r9-release.host.sh
new file mode 100644
index 000000000..5147115c0
--- /dev/null
+++ b/harness/scenarios/cohort1/blocks/r9-release.host.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+# Run 9 (a): the harness signing session for the release (on host, root).
+# r9-release.host.sh <TAG> <ART> <carlos sha> <console sha> <CV>
+# 1. release-window.sh: signed sums, operator CLI, and 5.0a item 4 for the release (C2): the release's
+# console shipped as CV and promoted to canary/console BEFORE publish-identity.
+# 2. signing session opened (w-open-signer.sh) and publish-identity for TAG with that CV (w-identity.sh).
+set -euo pipefail
+TAG=$1 ART=$2 CS=$3 COS=$4 CV=$5
+echo "== release-window $TAG ($(date -u +%T.%3NZ))"
+TAG=$TAG ART=$ART SUMS="$CS $COS" CV=$CV bash /root/harness/release-window.sh
+echo "== session open ($(date -u +%T.%3NZ))"
+runuser -l operator -c "WTAG=$TAG WCV=$CV bash ~/cohort1/blocks/w-open-signer.sh" 2>&1 | grep -v '^help| '
+echo "== publish-identity $TAG, console $CV ($(date -u +%T.%3NZ))"
+runuser -l operator -c "WTAG=$TAG WCV=$CV bash ~/cohort1/blocks/w-identity.sh"
+runuser -l operator -c "aws s3 cp --quiet s3://harness-deployment/control/system/router/releases/$TAG.json -" | python3 -c '
+import json,sys,base64
+d=json.load(sys.stdin)
+if "payload" in d and isinstance(d["payload"],str): d=json.loads(base64.b64decode(d["payload"]))
+c=d.get("current") or d.get("release") or d
+print("identity router", c["artifacts"]["linux-arm64"]["sha256"], "console", (c.get("console_artifacts") or {}).get("linux-arm64",{}).get("sha256"))'
+echo "== done ($(date -u +%T.%3NZ))"
diff --git a/harness/scenarios/cohort1/blocks/r9-setup.host.sh b/harness/scenarios/cohort1/blocks/r9-setup.host.sh
new file mode 100644
index 000000000..e87e405c7
--- /dev/null
+++ b/harness/scenarios/cohort1/blocks/r9-setup.host.sh
@@ -0,0 +1,64 @@
+#!/bin/bash
+# Run 9 setup (on host, root): the dev-shaped state for the v0.28.5 roll rehearsal.
+# 1 every container and the console volume restored to s7; leo copied onto ext4 (H16) from leo-btrfs/s7;
+# the Run 8 ext4 leo kept, stopped, as leo-ext4-run8b (203.0.113.126)
+# 2 H14/H15 (vendor-shims.sh), H13 certificates for the hosts used tonight
+# 3 sophie's console PAUSED: saved copies (as dev's 2026-10-19 pause), then the runbook's "Pause again"
+# recipe verbatim (claim-dev-cohort1-runbook 5e23c83d; C1 already applied there)
+# 4 what dev already has that s7 lacks, through the ordinary doors with the operator CLI of s7's release:
+# wakecheck (pool-less, wc4 stand-in), then runbook step 4.2 (CARLOS_POOLS=cohort1 on leo) and 4.3
+# 5 snapshot pre-0285
+set -euo pipefail
+echo "== 1 restore s7, leo onto ext4 ($(date -u +%T.%3NZ))"
+bash /root/harness/leo-ext4-from.sh s7 leo-ext4-run8b 203.0.113.126
+for c in leo leo-btrfs; do echo "$c: $(incus snapshot list $c -f csv -c n | paste -sd,)"; done
+echo "== 2 H14/H15, H13 ($(date -u +%T.%3NZ))"
+bash /root/harness/vendor-shims.sh
+bash /root/harness/certs.sh wakecheck.dev.harness.test moveapp.dev.harness.test rollbackapp.dev.harness.test
+install -m 0755 /root/harness/release/v0.28.5/carlos-linux-arm64 /usr/local/bin/carlos
+echo "operator CLI: $(/usr/local/bin/carlos version 2>&1 | tail -1)"
+T0=$(date -u +%s)
+fresh() { runuser -l operator -c 'for b in ada-letterpress kathleen-juggling noor-marquetry; do date -u -d "$(aws s3api head-object --bucket harness-deployment --key status/boxes/$b.json --query LastModified --output text)" +%s; done' | sort -n | head -1; }
+for i in $(seq 1 60); do [ "$(fresh)" -gt "$T0" ] && break; sleep 10; done; echo "box reports fresh at $(date -u +%T)"
+echo "== 3a saved copies ($(date -u +%T.%3NZ))"
+incus exec sophie -- bash -c 'set -euo pipefail; umask 077
+D=/root/claim-trial/paused-20261019; install -d -m 0700 "$D"
+cp -p /etc/carlos/claim-console.env "$D/claim-console.env"; cp -p /etc/systemd/system/console.service.d/91-claim-runtime.conf "$D/91-claim-runtime.conf"
+cmp /etc/carlos/claim-console.env "$D/claim-console.env"; cmp /etc/systemd/system/console.service.d/91-claim-runtime.conf "$D/91-claim-runtime.conf"
+sha256sum "$D"/*'
+echo "== 3b Pause again, verbatim ($(date -u +%T.%3NZ))"
+incus exec sophie -- bash -s <<'PAUSE'
+set -euo pipefail
+umask 077
+[ "$(sha256sum /etc/carlos/claim-console.env | cut -c1-64)" = 5df17bac42a91a02d90584edc5476c045400af57e467b2ea0815ba50b7e31d03 ]
+printf 'CARLOS_CONSOLE_ID=dev-console\nCONSOLE_HOME_REGION=ie\nCARLOS_HOST_CLAIM=\n' > /etc/carlos/.claim-console.env.pause
+[ "$(sha256sum /etc/carlos/.claim-console.env.pause | cut -c1-64)" = c1ae2900db31295090d2f4f2f9b5f6cdcca07e74545a6b1a9da039c3abf5c412 ]
+mv -T /etc/carlos/.claim-console.env.pause /etc/carlos/claim-console.env
+systemctl restart console.service
+systemctl is-active console.service
+for i in $(seq 1 40); do p=$(systemctl show -p MainPID --value console.service); [ "$(readlink /proc/$p/exe)" = /opt/carlos/system/console/console ] && break; sleep 0.25; done
+tr '\0' '\n' < "/proc/$p/environ" | grep '^CARLOS_HOST_CLAIM='
+PAUSE
+incus exec sophie -- bash -c 'sleep 3; curl -s -o /dev/null -w "healthz %{http_code}\n" http://127.0.0.1:8090/healthz
+journalctl -u console.service --since -1min --no-pager | grep -c "off on a host-claim console" || true'
+echo "== 4 wakecheck, step 4.2, 4.3 ($(date -u +%T.%3NZ))"
+OP() { runuser -l operator -c "set -euo pipefail; C=http://127.0.0.1:8090; F=~/cohort1/pw/linux-arm64; $1"; }
+install -d -o operator -g operator -m 0755 /home/operator/cohort1/pw
+aws s3 cp --quiet s3://carlos-harness-640012953448/artefacts/v0.28.6/wakecheck-linux-arm64 /home/operator/cohort1/pw/linux-arm64
+chown operator:operator /home/operator/cohort1/pw/linux-arm64
+OP 'sha256sum $F; carlos apps create --app wakecheck --account bab --console $C
+carlos ship --app wakecheck --account bab --console $C --version wc4 --label "harness wakecheck stand-in, wc4" --no-prompt $F
+carlos promote --app wakecheck --account bab --console $C --no-prompt wc4 edge
+AWS_PROFILE=harness CARLOS_DEPLOYMENT_BUCKET=harness-deployment carlos instances enable --app wakecheck --account bab --domain dev.harness.test --channel edge
+carlos instances create --app wakecheck --account bab --host wakecheck.dev.harness.test --console $C --no-prompt'
+sleep 40
+for b in sophie leo; do for i in 1 2; do incus exec $b -- curl -s -m 40 --cacert /root/harness-ca.pem -w " [%{http_code}] $b\n" --resolve wakecheck.dev.harness.test:443:127.0.0.1 https://wakecheck.dev.harness.test/; done; done
+incus exec leo -- bash -c 'cp -p /etc/carlos/host.env /etc/carlos/host.env.bak-pool-$(date -u +%Y%m%d)
+printf "CARLOS_POOLS=cohort1\n" >> /etc/carlos/host.env
+systemctl restart carlos-edge.service && systemctl is-active carlos-edge.service'
+sleep 8
+incus exec leo -- bash -c 'runuser -u carlos -- /opt/carlos/carlos remove --registry /data/registry.db wakecheck.dev.harness.test; systemctl is-active carlos-edge.service'
+for b in leo sophie dennis; do echo "== $b $(incus exec $b -- /opt/carlos/carlos version 2>&1 | tail -1)"; incus exec $b -- python3 -c "import sqlite3; c=sqlite3.connect('file:/data/registry.db?mode=ro',uri=True); [print(r) for r in c.execute('select host,app,pool,region,channel,hibernate from routes order by host')]"; done
+echo "== 5 snapshot pre-0285 ($(date -u +%T.%3NZ))"
+bash /root/harness/snapshot.sh create pre-0285
+incus exec sophie -- bash -c 'tr "\0" "\n" < /proc/$(systemctl show -p MainPID --value console.service)/environ | grep ^CARLOS_HOST_CLAIM=; curl -s -o /dev/null -w "healthz %{http_code}\n" http://127.0.0.1:8090/healthz'