harness: Run 10 build (v0.28.8 = e0986eab), A3 root tests 5/5 PASS, A1 normal update and console --upgrade PASS, snapshot post-candidate
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
10 files changed,
+488
−0
harness/RESOURCES.md+1 −0harness/RUNLOG.md+90 −0harness/evidence/run10/a1-console.log+117 −0harness/evidence/run10/a1-normal.log+71 −0harness/evidence/run10/a1-release.log+88 −0harness/evidence/run10/a1-restore.log+9 −0harness/evidence/run10/snap-post-candidate.log+8 −0harness/scenarios/cohort1/blocks/r10-a1-normal.host.sh+33 −0harness/scenarios/cohort1/blocks/r10-console-upgrade.host.sh+61 −0harness/scenarios/cohort1/blocks/r10-prep.host.sh+10 −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 336.813s
? github.com/carlosframework/platform/cmd/changelog [no test files]
ok github.com/carlosframework/platform/cmd/console 3.038s
ok github.com/carlosframework/platform/cmd/moveprobe 92.289s
ok github.com/carlosframework/platform/cmd/zddprobe 0.711s
? github.com/carlosframework/platform/harness/apps/wakecheck [no test files]
ok github.com/carlosframework/platform/internal/activator 252.212s
ok github.com/carlosframework/platform/internal/agentsock 0.018s
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.522s
ok github.com/carlosframework/platform/internal/apperr 0.073s
ok github.com/carlosframework/platform/internal/applog 0.132s
ok github.com/carlosframework/platform/internal/awsinv 0.004s
ok github.com/carlosframework/platform/internal/boxchoice 0.004s
ok github.com/carlosframework/platform/internal/boxid 0.662s
? github.com/carlosframework/platform/internal/boxid/boxidtest [no test files]
? github.com/carlosframework/platform/internal/boxid/internal/signtest [no test files]
ok github.com/carlosframework/platform/internal/boxvolumes 0.008s
ok github.com/carlosframework/platform/internal/caps 0.013s
ok github.com/carlosframework/platform/internal/certwarm 0.002s
ok github.com/carlosframework/platform/internal/cgroup 0.708s
ok github.com/carlosframework/platform/internal/changelog 0.322s
ok github.com/carlosframework/platform/internal/claimactivation 0.817s
ok github.com/carlosframework/platform/internal/clamd 0.056s
? github.com/carlosframework/platform/internal/cliflag [no test files]
ok github.com/carlosframework/platform/internal/console 411.614s
? 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 6.326s
ok github.com/carlosframework/platform/internal/dbdoor/dbdoortest 0.010s
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.401s
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 45.234s
? 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.161s
ok github.com/carlosframework/platform/internal/gate 1.665s
ok github.com/carlosframework/platform/internal/genselect 0.015s
ok github.com/carlosframework/platform/internal/geo 0.016s
ok github.com/carlosframework/platform/internal/geoip 0.033s
ok github.com/carlosframework/platform/internal/historyreadback 0.169s
ok github.com/carlosframework/platform/internal/host 184.645s
ok github.com/carlosframework/platform/internal/hostactors 6.416s
ok github.com/carlosframework/platform/internal/hostactors/awsmembership 0.006s
ok github.com/carlosframework/platform/internal/hostbox 2.893s
ok github.com/carlosframework/platform/internal/hostclaim 0.611s
ok github.com/carlosframework/platform/internal/hostenv 0.008s
ok github.com/carlosframework/platform/internal/hostevidence 0.006s
ok github.com/carlosframework/platform/internal/hostexec 5.138s
ok github.com/carlosframework/platform/internal/hostfence 0.049s
ok github.com/carlosframework/platform/internal/hostfiles 10.512s
ok github.com/carlosframework/platform/internal/hostfloor 0.016s
ok github.com/carlosframework/platform/internal/hostguard 1.052s
ok github.com/carlosframework/platform/internal/hostops 1.664s
? github.com/carlosframework/platform/internal/hostops/fencerelease [no test files]
ok github.com/carlosframework/platform/internal/hostops/internal/fencerelease 0.005s
ok github.com/carlosframework/platform/internal/hostquarantine 0.005s
ok github.com/carlosframework/platform/internal/hostrelocate 0.495s
ok github.com/carlosframework/platform/internal/hostresolve 0.160s
ok github.com/carlosframework/platform/internal/hostwrite 0.005s
ok github.com/carlosframework/platform/internal/infraview 0.005s
ok github.com/carlosframework/platform/internal/instancectl 5.234s
ok github.com/carlosframework/platform/internal/instanceexec 2.767s
ok github.com/carlosframework/platform/internal/instancefs 0.005s
ok github.com/carlosframework/platform/internal/instancekey 0.005s
ok github.com/carlosframework/platform/internal/instanceupdates 0.012s
ok github.com/carlosframework/platform/internal/layout 1.596s
ok github.com/carlosframework/platform/internal/lbhealth 0.005s
ok github.com/carlosframework/platform/internal/lease 9.814s
ok github.com/carlosframework/platform/internal/lease/leasetest 0.006s
ok github.com/carlosframework/platform/internal/ledger 0.016s
ok github.com/carlosframework/platform/internal/mail 0.170s
ok github.com/carlosframework/platform/internal/maintenance 0.083s
ok github.com/carlosframework/platform/internal/maintenanceexec 5.565s
ok github.com/carlosframework/platform/internal/maintenanceguard 0.073s
ok github.com/carlosframework/platform/internal/metrics 0.007s
ok github.com/carlosframework/platform/internal/moves 21.308s
ok github.com/carlosframework/platform/internal/moves/archive 0.851s
ok github.com/carlosframework/platform/internal/objstore 0.195s
ok github.com/carlosframework/platform/internal/ops 0.175s
ok github.com/carlosframework/platform/internal/park 0.219s
ok github.com/carlosframework/platform/internal/privatefile 0.005s
2026/10/20 21:12:04 provision: listing apps/bab/blog/instances/: list refused — its records are unseen this pass
2026/10/20 21:12:04 provision: listing apps/bab/: listdirs refused — its records are unseen this pass
2026/10/20 21:12:04 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:04 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:04 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:04 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/20 21:12:04 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/20 21:12:04 provision: skipping record apps/bac/tito/instances/one.example.com.json: unreadable: read refused
2026/10/20 21:12:04 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/20 21:12:04 provision: an app's records could not be listed: they are skipped
2026/10/20 21:12:04 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 21:12:04 provision: remove retired instance route shop.example: provision: claim admission unavailable
2026/10/20 21:12:04 provision: remove retired instance route shop.example: provision: claim admission unavailable
2026/10/20 21:12:04 provision: remove retired sidecar route worker.sidecar.internal: provision: claim admission unavailable
2026/10/20 21:12:04 provision: remove retired sidecar route worker.sidecar.internal: provision: claim admission unavailable
2026/10/20 21:12:04 provision: claim install acme.go.tito.io: provision: claim admission unavailable
2026/10/20 21:12:04 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:04 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/20 21:12:04 provision: claim install bot.eleven.bac.sidecar.internal: provision: claim admission unavailable
2026/10/20 21:12:04 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 21:12:04 provision: claim install bot.eleven.bac.sidecar.internal: registry: claim row ownership changed or unknown
2026/10/20 21:12:04 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 21:12:04 provision: acme.go.tito.io: not minting this pass: the box's layout intent could not be read: no sealed config
2026/10/20 21:12:04 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 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 21:12:05 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 21:12:05 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 21:12:05 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 21:12:05 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 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 21:12:05 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 21:12:05 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 21:12:05 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/20 21:12:05 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/20 21:12:05 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 21:12:05 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 21:12:05 provision: claim install bot.eleven.bac.sidecar.internal: registry: claim row ownership changed or unknown
2026/10/20 21:12:05 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 21:12:05 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 21:12:05 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 21:12:05 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 21:12:05 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 21:12:05 provision: skipping record apps/bac/tito/instances/new.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 21:12:05 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 21:12:05 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 21:12:05 provision: skipping record apps/bac/tito/instances/new.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 21:12:05 provision: minted instance route rl.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route ra.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route rb.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route rc.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route re.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route rf.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route rh.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route ri.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route rj.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route rd.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route rg.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route rk.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route rb.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route rc.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route rd.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route ra.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: skipping record apps/bac/tito/instances/rb.go.tito.io.json: read failed: read refused
2026/10/20 21:12:05 provision: skipping record apps/bac/tito/instances/rb.go.tito.io.json: read failed: read refused
2026/10/20 21:12:05 provision: minted instance route re.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route x.appb.example (app "appb" acct "bac")
2026/10/20 21:12:05 provision: minted instance route x.appc.example (app "appc" acct "bac")
2026/10/20 21:12:05 provision: minted instance route x.appe.example (app "appe" acct "bac")
2026/10/20 21:12:05 provision: minted instance route x.appf.example (app "appf" acct "bac")
2026/10/20 21:12:05 provision: minted instance route x.apph.example (app "apph" acct "bac")
2026/10/20 21:12:05 provision: minted instance route x.appj.example (app "appj" acct "bac")
2026/10/20 21:12:05 provision: minted instance route x.appa.example (app "appa" acct "bac")
2026/10/20 21:12:05 provision: minted instance route x.appd.example (app "appd" acct "bac")
2026/10/20 21:12:05 provision: minted instance route x.appg.example (app "appg" acct "bac")
2026/10/20 21:12:05 provision: minted instance route x.appi.example (app "appi" acct "bac")
2026/10/20 21:12:05 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 21:12:05 provision: minted instance route r0129.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0023.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0068.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0118.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0026.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0044.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0061.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0082.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0095.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0085.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0054.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0009.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0010.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0015.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0020.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0036.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0114.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0007.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0033.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0040.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0053.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0075.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0078.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0079.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0127.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0003.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0058.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0092.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0011.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0041.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0124.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0024.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0035.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0043.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0057.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0088.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0090.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0098.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0052.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0034.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0042.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0051.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0067.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0080.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0046.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0122.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0125.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0000.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0001.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0022.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0025.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0065.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0028.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0077.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0087.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0113.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0056.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0064.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0102.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0103.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0039.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0111.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0121.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0091.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0115.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0072.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0106.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0012.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0037.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0050.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0062.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0047.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0005.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0027.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0071.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0100.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0109.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0016.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0081.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0123.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0013.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0002.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0066.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0099.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0004.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0031.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0069.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0083.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0097.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0101.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0107.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0014.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0017.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0019.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0094.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0116.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0006.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0030.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0073.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0089.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0048.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0055.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0029.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0032.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0074.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0105.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0117.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0119.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0060.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0063.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0076.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0126.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0084.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0110.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0059.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0108.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0128.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0008.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0018.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0038.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0049.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0096.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0104.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0021.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0045.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0070.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0086.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0093.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0112.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:05 provision: minted instance route r0120.go.tito.io (app "tito" acct "bac")
--- FAIL: TestPlan14RootReadCensus (4.77s)
plan14_root_reads_test.go:940: root read census: 137 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/r10-a1-normal.host.sh:external file:external@0
unclassified root read harness/scenarios/cohort1/blocks/r10-console-upgrade.host.sh:external file:external@0
unclassified root read harness/scenarios/cohort1/blocks/r10-prep.host.sh:external file:external@0
unclassified root read harness/scenarios/cohort1/blocks/r9-console-e1.host.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-devcheck.host.sh:external file:external@0
unclassified root read harness/scenarios/cohort1/blocks/r9-move-precheck.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-move.host.sh:external file:external@0
unclassified root read harness/scenarios/cohort1/blocks/r9-normal.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 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 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 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: minted service route svc.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: minted instance route whole.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: minted instance route console.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: minted service route ha.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: minted instance route shared.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: converged acme.go.tito.io channel stable -> edge
2026/10/20 21:12:38 provision: converged acme.go.tito.io channel edge -> canary/rehearsal
2026/10/20 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: empty channel
2026/10/20 21:12:38 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: converged acme.go.tito.io environment "" -> "staging"
2026/10/20 21:12:38 provision: converged acme.go.tito.io environment "staging" -> ""
2026/10/20 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: converged acme.go.tito.io steering "" -> "latency"
2026/10/20 21:12:38 provision: converged acme.go.tito.io steering "latency" -> ""
2026/10/20 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: converged acme.go.tito.io hibernate false -> true
2026/10/20 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: converged acme.go.tito.io hibernate true -> false (replication "daily" cleared: only a hibernating route's rung is read)
2026/10/20 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: converged acme.go.tito.io status-named false -> true
2026/10/20 21:12:38 provision: converged acme.go.tito.io status-named true -> false
2026/10/20 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: minted service route ha.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 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 21:12:38 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 21:12:38 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 21:12:38 provision: minted service route whole.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 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 21:12:38 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 21:12:38 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 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: minted service route whole.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/20 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: skipping accounts/bac/account.json: malformed account manifest: invalid character 'o' in literal null (expecting 'u')
2026/10/20 21:12:38 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/20 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: manifest bac/tito: read failed: provision: manifest bac/tito: invalid character 'o' in literal null (expecting 'u')
2026/10/20 21:12:38 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 21:12:38 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 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 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 21:12:38 provision: not removing acme$evil.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 21:12:38 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 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 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 21:12:38 provision: not removing bad-service.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 21:12:38 provision: skipping record apps/bac/tito/instances/no-channel.go.tito.io.json: empty channel
2026/10/20 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: skipping record apps/bac/tito/instances/no-channel.go.tito.io.json: empty channel
2026/10/20 21:12:38 provision: not removing no-channel.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 21:12:38 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 21:12:38 provision: removed retired instance route ghost.go.tito.io (record gone)
2026/10/20 21:12:38 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 21:12:38 provision: minted instance route dup.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 21:12:38 provision: removed retired instance route acme.go.tito.io (app in the trash)
2026/10/20 21:12:38 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 21:12:38 provision: removed retired static route site.go.tito.io (app in the trash)
2026/10/20 21:12:38 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 21:12:38 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 21:12:38 provision: removed retired instance route acme.go.tito.io (app in the trash)
2026/10/20 21:12:38 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 21:12:38 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 21:12:38 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 21:12:38 provision: converged acme.go.tito.io channel stable -> edge
2026/10/20 21:12:38 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 21:12:38 provision: converged acme.go.tito.io channel canary/rehearsal -> edge
2026/10/20 21:12:38 provision: converged acme.go.tito.io environment "staging" -> ""
2026/10/20 21:12:38 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 21:12:38 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 21:12:38 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 21:12:38 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 21:12:38 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 21:12:38 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 21:12:38 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 21:12:38 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 21:12:38 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/20 21:12:38 provision: dry-run: would mint instance route acme.go.tito.io (app "tito" acct "bac" channel "stable")
2026/10/20 21:12:38 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 21:12:38 provision: dry-run: would converge adopt.go.tito.io channel stable -> edge
2026/10/20 21:12:38 provision: dry-run: would converge adopt.go.tito.io environment "" -> "staging"
2026/10/20 21:12:38 provision: dry-run: would converge owned.go.tito.io channel stable -> edge
2026/10/20 21:12:38 provision: dry-run: would converge owned.go.tito.io environment "" -> "staging"
2026/10/20 21:12:38 provision: dry-run: would converge owned.go.tito.io hibernate false -> true
2026/10/20 21:12:38 provision: dry-run: would converge owned.go.tito.io seed
2026/10/20 21:12:38 provision: dry-run: would remove retired instance route gone.go.tito.io (record gone)
2026/10/20 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: adopted existing route adopt.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 21:12:38 provision: converged adopt.go.tito.io channel stable -> edge
2026/10/20 21:12:38 provision: converged adopt.go.tito.io environment "" -> "staging"
2026/10/20 21:12:38 provision: converged owned.go.tito.io channel stable -> edge
2026/10/20 21:12:38 provision: converged owned.go.tito.io environment "" -> "staging"
2026/10/20 21:12:38 provision: converged owned.go.tito.io hibernate false -> true
2026/10/20 21:12:38 provision: removed retired instance route gone.go.tito.io (record gone)
2026/10/20 21:12:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: adopted existing route story.carlosframework.com (app "story" acct "bad") — this record now owns its channel and environment
2026/10/20 21:12:38 provision: story.carlosframework.com exists but is not the route this record describes (kind "instance"/"static") — leaving it alone
2026/10/20 21:12:38 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: minted service route pub.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: minted service route pubs.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: minted instance route exec.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: minted service route loop.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: minted service route named.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: minted service route priv.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:38 provision: minted instance route unit.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:39 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:39 provision: minted static route pisite.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:39 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:39 provision: removed retired static route site.go.tito.io (record gone)
2026/10/20 21:12:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:39 provision: minted instance route acme-uk.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:39 provision: converged acme.go.tito.io replicas "ie,uk" -> "uk"
2026/10/20 21:12:39 provision: converged acme.go.tito.io replicas "uk" -> ""
2026/10/20 21:12:39 provision: minted instance route acme-uk.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:39 provision: converged acme-uk.go.tito.io replica mark true -> false
2026/10/20 21:12:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:39 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:39 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 21:12:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:39 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:39 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:39 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:39 provision: acme.go.tito.io: not minting this pass: the box's layout intent could not be read: store down
2026/10/20 21:12:39 provision: router.go.tito.io: not minting this pass: the box's layout intent could not be read: store down
2026/10/20 21:12:39 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 21:12:39 provision: converged acme.go.tito.io channel stable -> edge
2026/10/20 21:12:39 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/20 21:12:39 provision: not removing acme.go.tito.io (record gone): participant of a running operation
2026/10/20 21:12:39 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/20 21:12:39 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/20 21:12:39 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 21:12:39 provision: held acme.go.tito.io landing by mv_acme (was ready)
2026/10/20 21:12:39 provision: acme.go.tito.io: held restoring by rb_other, not by mv_acme; leaving it
2026/10/20 21:12:39 provision: acme.go.tito.io: the row is not this pass's (app "other" acct ""); not holding it for mv_acme
2026/10/20 21:12:39 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 21:12:39 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 21:12:39 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 21:12:39 provision: held acme.go.tito.io landing by mv_acme (was ready)
2026/10/20 21:12:39 provision: minted instance route acme.example.com (app "shop" acct "bac")
2026/10/20 21:12:39 provision: minted instance route plain.example.com (app "shop" acct "bac")
2026/10/20 21:12:39 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 21:12:39 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 21:12:39 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 21:12:39 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 21:12:39 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 21:12:39 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 21:12:39 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 21:12:39 provision: listing apps/bac/shop/instances/: list refused — its records are unseen this pass
2026/10/20 21:12:39 provision: a.shop.example.com: swapped for import sd_lior6c52bg4zpnannv35h5nvti (the original route is journaled)
2026/10/20 21:12:39 provision: a.shop.example.com: import sd_lior6c52bg4zpnannv35h5nvti committed: its gate is cleared and its journal row dropped
2026/10/20 21:12:39 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 21:12:40 provision: a.shop.example.com: import sd_ztsc5dl4qbx4mzgjyd2arj2w6q rolled back to its original route
2026/10/20 21:12:40 provision: a.shop.example.com: import sd_ztsc5dl4qbx4mzgjyd2arj2w6q: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/20 21:12:40 provision: a.shop.example.com: import sd_ztsc5dl4qbx4mzgjyd2arj2w6q is cleaned up and its journal row retired
2026/10/20 21:12:40 provision: a.shop.example.com: import sd_cnv7m3doo3uxfyzjh3gqaxrmca rolled back to its original route
2026/10/20 21:12:40 provision: a.shop.example.com: import sd_cnv7m3doo3uxfyzjh3gqaxrmca: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/20 21:12:40 provision: a.shop.example.com: import sd_cnv7m3doo3uxfyzjh3gqaxrmca is cleaned up and its journal row retired
2026/10/20 21:12:40 provision: dry-run: would redo a.shop.example.com's swap record CAS for import sd_eujw6qzpyug3v6yj5dk3ncdn5i
2026/10/20 21:12:40 provision: dry-run: would clear a.shop.example.com's import gate
2026/10/20 21:12:40 provision: dry-run: would converge a.shop.example.com seed source
2026/10/20 21:12:40 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 21:12:40 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 21:12:40 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 21:12:40 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 21:12:40 provision: a.shop.example.com: import sd_o4kepdd4xrwqkeiop6tiunpooa cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/20 21:12:40 provision: a.shop.example.com: import sd_syf4ruajdumstyoz2jdwxz5kga cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/20 21:12:40 provision: a.shop.example.com: import sd_sn7n22p3t76abkbmqpxa4wlxvi is journaled, but this box cannot act on imports; its row is left alone
2026/10/20 21:12:40 provision: a.shop.example.com: import sd_ag7mlrikdw63gtfudzcj6y7q2i is journaled, but this box cannot act on imports; its row is left alone
2026/10/20 21:12:40 provision: a.shop.example.com: import sd_2cz4lmwtbcn4kgphu7qkk4wtri is journaled, but this box cannot act on imports; its row is left alone
2026/10/20 21:12:40 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 21:12:40 provision: b.shop.example.com: import sd_tbdgdfm45yrx4rdgmschgj6w7y left alone this pass: the import journal could not be read
2026/10/20 21:12:40 provision: c.shop.example.com: import sd_cpievfpx6awlvpjqa7scx6ockm left alone this pass: the import journal could not be read
2026/10/20 21:12:40 provision: a.shop.example.com: import sd_zw2dskk57n5xcprjpt2rkuekqm committed: its gate is cleared and its journal row dropped
2026/10/20 21:12:40 provision: a.shop.example.com: not converging import sd_u4psnsvj7z73uo6fslw4w6xhqq: it is swapped but not committed, and the row on this box has no import gate
2026/10/20 21:12:40 provision: a.shop.example.com: not converging import sd_w2l23vkdaxzot75yse4mxtlsze: it is swapped but not committed, and the row on this box has no import gate
2026/10/20 21:12:40 provision: a.shop.example.com: not converging import sd_kjbtwc7xsjiz5bgvdnzlvrjkwa: it is placed but not committed, and the row on this box has no import gate
2026/10/20 21:12:40 provision: a.shop.example.com: not converging import sd_7pnpe647rdyz6xwh5iuip55jwu: it is placed but not committed, and the row on this box has no import gate
2026/10/20 21:12:40 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 21:12:40 provision: converge seed source on a.shop.example.com: constraint failed: seed_source is read-only here (1811)
2026/10/20 21:12:40 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 21:12:40 provision: a.shop.example.com: import sd_s4xbeuftwsbwkdpmcasfyqaj2q committed: its gate is cleared and its journal row dropped
2026/10/20 21:12:40 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 21:12:40 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:40 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 21:12:40 provision: acme.go.tito.io: not minting a seeded instance: this box does not mint nested (<nil>)
2026/10/20 21:12:40 provision: acme.go.tito.io: not minting a seeded instance: claim control is on for this box
2026/10/20 21:12:40 provision: acme.go.tito.io: aborted seed sd_6q7twf7g36itrbbj2ni5tfisbq: this box cannot read seed markers, and places no seed; nothing local is removed
2026/10/20 21:12:40 provision: acme.go.tito.io: aborted seed sd_6q7twf7g36itrbbj2ni5tfisbq rolled back (no box had swapped it)
2026/10/20 21:12:40 provision: acme.go.tito.io: not minting a seeded instance: its record does not describe a hibernating instance
2026/10/20 21:12:40 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:40 provision: removed instance route acme.go.tito.io (its seed sd_xyjcsh3b75x2cmcysyi7c2agzu was aborted); the next pass rolls it back
2026/10/20 21:12:40 provision: acme.go.tito.io: aborted seed sd_xyjcsh3b75x2cmcysyi7c2agzu: this box cannot read seed markers, and places no seed; nothing local is removed
2026/10/20 21:12:40 provision: acme.go.tito.io: aborted seed sd_xyjcsh3b75x2cmcysyi7c2agzu rolled back (no box had swapped it)
2026/10/20 21:12:40 provision: acme.go.tito.io: aborted seed sd_odf22intzgb7d5wb5qfcmy32c4 has a row this pass may not remove; leaving the seed aborted
2026/10/20 21:12:40 provision: acme.go.tito.io: aborted seed sd_mez2yt32cg4vt6ubv7ejq4qs4m rolled back (no box had swapped it)
2026/10/20 21:12:40 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:40 provision: removed instance route acme.go.tito.io (its seed sd_vqgyw2pnd75qerl6wuewob6hke was aborted); the next pass rolls it back
2026/10/20 21:12:40 provision: acme.go.tito.io: aborted seed sd_vqgyw2pnd75qerl6wuewob6hke has no route on this box: its local data is removed
2026/10/20 21:12:40 provision: acme.go.tito.io: aborted seed sd_vqgyw2pnd75qerl6wuewob6hke rolled back (no box had swapped it)
2026/10/20 21:12:40 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:40 provision: a.shop.example.com: swapped for import sd_gg3kqtianeqgdbru3ikwfnis7m (the original route is journaled)
2026/10/20 21:12:40 provision: a.shop.example.com: import sd_gg3kqtianeqgdbru3ikwfnis7m rolled back to its original route
2026/10/20 21:12:40 provision: a.shop.example.com: import sd_gg3kqtianeqgdbru3ikwfnis7m is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_hvelojvbfqjaiqjw7b2eqw7xda (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_hvelojvbfqjaiqjw7b2eqw7xda rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_hvelojvbfqjaiqjw7b2eqw7xda is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_g63lcqdenf4s5cws27qxnwgyiq (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_g63lcqdenf4s5cws27qxnwgyiq rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_g63lcqdenf4s5cws27qxnwgyiq: the host's replica is left alone: its record no longer names this seed
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_g63lcqdenf4s5cws27qxnwgyiq is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_mhcbvfpcimekk5wzupgfinueem (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_mhcbvfpcimekk5wzupgfinueem rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_mhcbvfpcimekk5wzupgfinueem rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_mhcbvfpcimekk5wzupgfinueem is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_mqkzepaixc2exj33otmyakywti (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_mqkzepaixc2exj33otmyakywti rollback deferred: the host is not fenced and stopped yet (stop unproven)
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_aymttmzmkvws57gvppdu4rhcdq (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_aymttmzmkvws57gvppdu4rhcdq is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_mna4mo74drblwzfhutfv226hcq (the original route is journaled)
2026/10/20 21:12:41 provision: skipping record apps/bac/shop/instances/a.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_mna4mo74drblwzfhutfv226hcq left alone this pass: its record could not be read
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_do7xe7de33xkdtzzhpjhyue6c4 (the original route is journaled)
2026/10/20 21:12:41 provision: skipping record apps/bac/shop/instances/a.shop.example.com.json: read failed: connection reset
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_do7xe7de33xkdtzzhpjhyue6c4 left alone this pass: its record could not be read
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_4biswl7vitake2siqkcys2g36a (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_4biswl7vitake2siqkcys2g36a: close the import gate: constraint failed: injected (1811)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_4biswl7vitake2siqkcys2g36a rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_4biswl7vitake2siqkcys2g36a is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_677c32laopql45gh3le4n4rrtq (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_677c32laopql45gh3le4n4rrtq: close the import gate: constraint failed: injected (1811)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_677c32laopql45gh3le4n4rrtq rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_677c32laopql45gh3le4n4rrtq is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_xye6awxzgcico4ivk6ytcwwucu (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_xye6awxzgcico4ivk6ytcwwucu rollback deferred: the host is not fenced and stopped yet (injected failure at fence)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_xye6awxzgcico4ivk6ytcwwucu rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_xye6awxzgcico4ivk6ytcwwucu is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_rrdbxjwrjjnx5isjyofohoic5a (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_rrdbxjwrjjnx5isjyofohoic5a rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_rrdbxjwrjjnx5isjyofohoic5a is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_yjqz3kvk4cwjo634yglc6vyaeu (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_yjqz3kvk4cwjo634yglc6vyaeu: retire its instance key: injected failure at retire-key
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_yjqz3kvk4cwjo634yglc6vyaeu rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_yjqz3kvk4cwjo634yglc6vyaeu is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_tbbszhbaycdjzkz5wjdpdxzj2q (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_tbbszhbaycdjzkz5wjdpdxzj2q rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_tbbszhbaycdjzkz5wjdpdxzj2q is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_b2mk6wwkg5gxtz5xurukkpcuhy (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_b2mk6wwkg5gxtz5xurukkpcuhy: remove its local data: injected failure at remove-local
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_b2mk6wwkg5gxtz5xurukkpcuhy rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_b2mk6wwkg5gxtz5xurukkpcuhy is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_7gkbwvx6jvi7t7w356bbfjijba (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_7gkbwvx6jvi7t7w356bbfjijba rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_7gkbwvx6jvi7t7w356bbfjijba is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_kw6qnomyvsxguzasbhbwee3k2a (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_kw6qnomyvsxguzasbhbwee3k2a: remove its local data: injected failure at remove-local-done
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_kw6qnomyvsxguzasbhbwee3k2a rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_kw6qnomyvsxguzasbhbwee3k2a is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_4dlqo24aqsr4ngac23w3txy3ou (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_4dlqo24aqsr4ngac23w3txy3ou rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_4dlqo24aqsr4ngac23w3txy3ou is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_5ie6zjkrd43sfphdcl73b6edre (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_5ie6zjkrd43sfphdcl73b6edre: restore the original route: constraint failed: injected (1811)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_5ie6zjkrd43sfphdcl73b6edre rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_5ie6zjkrd43sfphdcl73b6edre is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_i3z5zjy4vqylucvnk6hzcdd5zq (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_i3z5zjy4vqylucvnk6hzcdd5zq: restore the original route: constraint failed: injected (1811)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_i3z5zjy4vqylucvnk6hzcdd5zq rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_i3z5zjy4vqylucvnk6hzcdd5zq is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_7mq5xa3gtschseiotlbm3o6iri (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_7mq5xa3gtschseiotlbm3o6iri is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_3drovxrburkb6a4sd5ids34noy (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_3drovxrburkb6a4sd5ids34noy rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_3drovxrburkb6a4sd5ids34noy: delete its snapshot: injected failure at delete-snapshot
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_3drovxrburkb6a4sd5ids34noy is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_3foojst57agnrzv3e6oop7vkfu (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_3foojst57agnrzv3e6oop7vkfu rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_3foojst57agnrzv3e6oop7vkfu is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_xw7lb5u3hci36amccns5pt2w7m (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_xw7lb5u3hci36amccns5pt2w7m rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_xw7lb5u3hci36amccns5pt2w7m: delete the host's replica: injected failure at delete-replica
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_xw7lb5u3hci36amccns5pt2w7m is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_te4magljyne5hlqgrw3tqxm6mu (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_te4magljyne5hlqgrw3tqxm6mu rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_te4magljyne5hlqgrw3tqxm6mu is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_hi6wx5plxquxqtrzsmtsuiujsy (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_hi6wx5plxquxqtrzsmtsuiujsy rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_hi6wx5plxquxqtrzsmtsuiujsy: retire its journal row: constraint failed: injected (1811)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_hi6wx5plxquxqtrzsmtsuiujsy is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_m7ygger3om35dgfgqpjfxsidei (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_m7ygger3om35dgfgqpjfxsidei rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_m7ygger3om35dgfgqpjfxsidei: retire its journal row: constraint failed: injected (1811)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_m7ygger3om35dgfgqpjfxsidei is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_4bkyd3ocosjdzqfcurtb5mkowm (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_4bkyd3ocosjdzqfcurtb5mkowm rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_4bkyd3ocosjdzqfcurtb5mkowm is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: mark import sd_4bkyd3ocosjdzqfcurtb5mkowm rolled back: injected failure at cas
2026/10/20 21:12:41 provision: a.shop.example.com: aborted seed sd_4bkyd3ocosjdzqfcurtb5mkowm rolled back (no box had swapped it)
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_qrznkmf6x32rndyqjdiockqble (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_qrznkmf6x32rndyqjdiockqble rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_qrznkmf6x32rndyqjdiockqble is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: aborted seed sd_qrznkmf6x32rndyqjdiockqble rolled back (no box had swapped it)
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_mkrpffjjerlb5itb57jy3rszka (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_mkrpffjjerlb5itb57jy3rszka rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_mkrpffjjerlb5itb57jy3rszka rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_mkrpffjjerlb5itb57jy3rszka rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_mkrpffjjerlb5itb57jy3rszka is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_l2ouzewjflavcjmqteik7itfki (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_l2ouzewjflavcjmqteik7itfki rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_l2ouzewjflavcjmqteik7itfki is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_wgs4ajilmxsrlrayvypjrvebt4 (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_wgs4ajilmxsrlrayvypjrvebt4 rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_wgs4ajilmxsrlrayvypjrvebt4 is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_tmu72vwjkrluzkw5l5rnmhmcbq (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_tmu72vwjkrluzkw5l5rnmhmcbq rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_tmu72vwjkrluzkw5l5rnmhmcbq is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_jdr2a6latl2wiezybj3nbub6wm (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_jdr2a6latl2wiezybj3nbub6wm rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_jdr2a6latl2wiezybj3nbub6wm is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_jh2mjurru5avaiqnwcjpblrnfq (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_jh2mjurru5avaiqnwcjpblrnfq rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_jh2mjurru5avaiqnwcjpblrnfq is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_lv2hhv6iricwc6mc2ftdp6dp5u (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_lv2hhv6iricwc6mc2ftdp6dp5u rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_lv2hhv6iricwc6mc2ftdp6dp5u is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_yxzizfwwnzsayukqptcyg2im34 (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_yxzizfwwnzsayukqptcyg2im34 rolled back to its original route
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_yxzizfwwnzsayukqptcyg2im34 is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_vayvclzjg6mbwnwi5yilbsqd6e (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_vayvclzjg6mbwnwi5yilbsqd6e has no route on this box: its local data is removed and no route is put back
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_vayvclzjg6mbwnwi5yilbsqd6e is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_zxdjliemd7f6msp2mubv7ynrpa (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_mkzwuxr2bng4hlvfnpxf7mfp5e (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_klcwl4n4mrrmcsqcakx7uf5ede (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_klcwl4n4mrrmcsqcakx7uf5ede cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_4egvty6cbnhjqazsg6auyre6d4 (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_4egvty6cbnhjqazsg6auyre6d4 is not rolled back: the route changed under the fence, so nothing there is touched
2026/10/20 21:12:41 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 21:12:41 provision: a.shop.example.com: import ../not-a-seed is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_nsmaqlaepufye6bwik7jrguuzi (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_ne7f3pm64y5h2k7r7syiyt5q2e (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_6zjl5zjiikzwdoxi35djajehpu (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_itbeg4nftobnvqymfvuel464vq (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_skcykrlzg5byca75dfasrbsmza (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_skcykrlzg5byca75dfasrbsmza rollback deferred: the host is not fenced and stopped yet (stop evidence unreadable)
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_jukcspykn5ki4pfw3vab3qtiom (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_jukcspykn5ki4pfw3vab3qtiom has no route on this box: its local data is removed and no route is put back
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_jukcspykn5ki4pfw3vab3qtiom is cleaned up and its journal row retired
2026/10/20 21:12:41 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_2vs5yh34sma3yrmyid7453xuya (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_2vs5yh34sma3yrmyid7453xuya: remove its local data: injected failure at remove-local
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_2vs5yh34sma3yrmyid7453xuya is not rolled back: the route at the host is not the import's, so nothing there is touched
2026/10/20 21:12:41 provision: a.shop.example.com: swapped for import sd_7527jz3jbpagv2szphf5mwcuva (the original route is journaled)
2026/10/20 21:12:41 provision: a.shop.example.com: import sd_7527jz3jbpagv2szphf5mwcuva: a route appeared at the host, so its local database is left and the rollback waits
2026/10/20 21:12:42 provision: a.shop.example.com: swapped for import sd_yztidynneeano4otkxhfsoaule (the original route is journaled)
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_yztidynneeano4otkxhfsoaule rollback deferred: no fence generation: registry busy
2026/10/20 21:12:42 provision: a.shop.example.com: swapped for import sd_q2bw2jp4ad7j6vickoaspxiwty (the original route is journaled)
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_q2bw2jp4ad7j6vickoaspxiwty rollback deferred: no fence generation: the generation source answered 0
2026/10/20 21:12:42 provision: a.shop.example.com: swapped for import sd_lpzmwqecndub67eqphskldebxi (the original route is journaled)
2026/10/20 21:12:42 provision: a.shop.example.com: swapped for import sd_efha73xoj26ou5kvdurgm37rsy (the original route is journaled)
2026/10/20 21:12:42 provision: a.shop.example.com: swapped for import sd_wdur62eo3j73nyj5gk6osqpch4 (the original route is journaled)
2026/10/20 21:12:42 provision: a.shop.example.com: import deferred: this box cannot read the instance's env file
2026/10/20 21:12:42 provision: a.shop.example.com: import deferred: the instance's env file could not be read: a symlink
2026/10/20 21:12:42 provision: a.shop.example.com: swapped for import sd_in7fe37fahcjz4z2tgokbyirym (the original route is journaled)
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_in7fe37fahcjz4z2tgokbyirym rolled back to its original route
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_in7fe37fahcjz4z2tgokbyirym is cleaned up and its journal row retired
2026/10/20 21:12:42 provision: a.shop.example.com: swapped for import sd_tyigdu2ebdecbs7ofapvozbykm (the original route is journaled)
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_tyigdu2ebdecbs7ofapvozbykm rolled back to its original route
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_tyigdu2ebdecbs7ofapvozbykm is cleaned up and its journal row retired
2026/10/20 21:12:42 provision: a.shop.example.com: swapped for import sd_2dxrnw6tc6umpbvlvaacjc77uq (the original route is journaled)
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_2dxrnw6tc6umpbvlvaacjc77uq rolled back to its original route
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_2dxrnw6tc6umpbvlvaacjc77uq is cleaned up and its journal row retired
2026/10/20 21:12:42 provision: a.shop.example.com: swapped for import sd_qa55lp6zpjrmarp2kwhrpqpofm (the original route is journaled)
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_qa55lp6zpjrmarp2kwhrpqpofm: retire its instance key: the env file is a symlink
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_qa55lp6zpjrmarp2kwhrpqpofm rolled back to its original route
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_qa55lp6zpjrmarp2kwhrpqpofm is cleaned up and its journal row retired
2026/10/20 21:12:42 provision: a.shop.example.com: swapped for import sd_pv23l4okcakgmehrhbfos5vawm (the original route is journaled)
2026/10/20 21:12:42 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 21:12:42 provision: a.shop.example.com: swapped for import sd_p2jd5cooa5dqidj3phdckzzm54 (the original route is journaled)
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_4ildvvsposkq2spcztujrons7y refused: there is no route at a.shop.example.com to replace
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_7i5guquk2qeoz6tltpux24wnua refused: the route's address is 127.0.0.1:9, not 127.0.0.1:8401
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_k4klcslm7tqntxvuerudu5qxtq 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 21:12:42 provision: a.shop.example.com: import sd_5b2qv27xeovzyl3sk2hcgzkvjm refused: the route's address is 127.0.0.1:9, not 127.0.0.1:8401
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_tesk2sv5fkj2dnb5j6tyef7ppu refused: the route belongs to app other
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_wb3l4xkjdvhwz76jwpcgbon3gq refused: the route is filed under another account
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_kk6cxt4fvsxq236dogy3oae5xm refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_zvuqrquild6vky45q7i6vhvwzy refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_bb22woyrg6dqeejjo5sba72osu refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_7ezuolbj2xb66u27fvt6gb4lzm refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_6tgzr27h3bxqxv3glov37xl4r4 refused: the route is not an address route this import can take over (socket)
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_4kwozhxuotrzrnggiy7zgrklpa refused: the route is not an address route this import can take over (no address)
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_nibvkg6ljautgkjc6p6rcpkzci refused: the route is not an address route this import can take over (provisioned)
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_36epwsxwde5t4ixf7tx6xkfotu refused: the route is not an address route this import can take over (kind static)
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_nvffiqlxtsjfke3eqr7oom4vby refused: the route is not an address route this import can take over (backing)
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_lbc5bsv3msalhpiuptdaiet6y4 refused: the route is not an address route this import can take over (tunnel)
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_53gyik2q74ccnoytd77u2xee4y refused: the route is not an address route this import can take over (caps)
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_saw5wbcxpg3ywomzplti46aytm refused: the route is not an address route this import can take over (platform)
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_admvxlrxsubtf5ihwfrvtgb2fi refused: the route is not an address route this import can take over (canary)
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_ufhe3rwoewlssavctz2npvo4ja refused: the route is not an address route this import can take over (kind sidecar)
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_pp76fdduvrvfwi6b7kjk7km3re refused: the route is not an address route this import can take over (region)
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_5yvpqbvaei2z3zrvskyg7iubwm refused: the route is not an address route this import can take over (fleet_box)
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_qu2tpi2o52bsli52ewujrovnba refused: the route is not an address route this import can take over (hibernate)
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_44rayepksw5ucgiu4g44jlit6y refused: the route is not an address route this import can take over (claim_owner)
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_n2jkj6tbowrp5fi65o3lknbcea refused: this box does not run instances nested
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_klaoyhtro6tca5fu736riyw4de refused: this box does not run instances nested
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_sttq2lp2bgtu6upvyyjanaeb4u refused: claim control is on for this box
2026/10/20 21:12:42 provision: a.shop.example.com: swapped for import sd_osmgwxu7bacdeofldo5uccia3m (the original route is journaled)
2026/10/20 21:12:42 provision: a.shop.example.com: swapped for import sd_ch3t2o3ojllgofgj4lxa2wr2na (the original route is journaled)
2026/10/20 21:12:42 provision: a.shop.example.com: import deferred: the legacy route assignments could not be read: store down
2026/10/20 21:12:42 provision: a.shop.example.com: import deferred: this box cannot read the legacy route assignments
2026/10/20 21:12:42 provision: a.shop.example.com: not swapping for import sd_vx4sebdt7axtnliodc577gxefe: its verify hash is not a sha256
2026/10/20 21:12:42 provision: a.shop.example.com: not swapping for import sd_utcnac5ybjpimvon4gmbc7cwgy: its verify hash is not a sha256
2026/10/20 21:12:42 provision: a.shop.example.com: not swapping for import sd_v4akait2l7ugteo3wtcj6pjzlm: its verify hash is not a sha256
2026/10/20 21:12:42 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 21:12:42 provision: A.shop.example.com/..: not swapping for import sd_covzoictv4chz2jmnxlh6df7t4: its host or seed id is malformed (seeds: not a host)
2026/10/20 21:12:42 provision: a.shop.example.com: not swapping for import sd_vnpuhzh4fmj2fip7ffn5mikdra: its record does not describe a nested, hibernating instance
2026/10/20 21:12:42 provision: a.shop.example.com: not swapping for import sd_izlnkjui46utbjljtqea5bgcxm: its record does not describe a nested, hibernating instance
2026/10/20 21:12:42 provision: a.shop.example.com: not swapping for import sd_u6oxp2yn5gzvyygzeqralgtlle: its record does not describe a nested, hibernating instance
2026/10/20 21:12:42 provision: a.shop.example.com: not swapping for import sd_qzkl5243mkbgggseptvtrugeyy: its record does not describe a nested, hibernating instance
2026/10/20 21:12:42 provision: a.shop.example.com: import deferred: the box's layout intent could not be read: store down
2026/10/20 21:12:42 provision: a.shop.example.com: swapped for import sd_hev5lqoehdeh4pko43so3f6e6a (the original route is journaled)
2026/10/20 21:12:42 provision: a.shop.example.com: import deferred: the box's nested probe did not answer: ready probe timed out
2026/10/20 21:12:42 provision: a.shop.example.com: swapped for import sd_cv2ifmaifmxkbr3gvhe7mgifbu (the original route is journaled)
2026/10/20 21:12:42 provision: a.shop.example.com: swapped for import sd_7a4apf4z2oceyszvzgtujqcefe (the original route is journaled)
2026/10/20 21:12:42 provision: a.shop.example.com: import deferred: the route is held by operation op_1
2026/10/20 21:12:42 provision: dry-run: would consider swapping a.shop.example.com for import sd_oepx6kx3cowf4cpatjadexrk64
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_rv5nldajvyvnqn7mhktx3imx7u rolled back to its original route
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_rv5nldajvyvnqn7mhktx3imx7u: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_rv5nldajvyvnqn7mhktx3imx7u is cleaned up and its journal row retired
2026/10/20 21:12:42 provision: a.shop.example.com: import sd_4a6fbmwkzu6ecyhb5tm2xp4lvi left alone: the import journal holds seed sd_gyrmurpg37fxjelozqv6dybovi at swapped
2026/10/20 21:12:42 provision: a.shop.example.com: not minting import sd_fiiljwr3647jrgqpam4mzupkwq: it is swapped but not committed, and only its swap makes its row
2026/10/20 21:12:42 provision: a.shop.example.com: not minting import sd_j5mh7k4znus77cmwfzudftw6uu: it is placed but not committed, and only its swap makes its row
2026/10/20 21:12:42 provision: a.shop.example.com: swapped for import sd_yryyeej6o2tvlf2w3de5bic77a (the original route is journaled)
2026/10/20 21:12:42 provision: a.shop.example.com: not minting import sd_yryyeej6o2tvlf2w3de5bic77a: it is swapped but not committed, and only its swap makes its row
2026/10/20 21:12:42 provision: a.shop.example.com: not minting import sd_yryyeej6o2tvlf2w3de5bic77a: it is placed but not committed, and only its swap makes its row
2026/10/20 21:12:43 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 21:12:43 provision: removed retired sidecar route gone.eleven.bac.sidecar.internal (record gone)
2026/10/20 21:12:43 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 21:12:43 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 21:12:43 provision: converged sidecar bot.eleven.bac.sidecar.internal args ["sidecar","run"] -> ["worker","run"]
2026/10/20 21:12:43 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 21:12:43 provision: converged sidecar bot.eleven.bac.sidecar.internal ceilings 300/3600 -> 60/120
2026/10/20 21:12:43 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 21:12:43 provision: converged sidecar bot.eleven.bac.sidecar.internal channel stable -> canary/eleven
2026/10/20 21:12:43 provision: converged sidecar bot.eleven.bac.sidecar.internal environment "other" -> "relay"
2026/10/20 21:12:43 provision: converged sidecar bot.eleven.bac.sidecar.internal hibernate true -> false
2026/10/20 21:12:43 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: read failed: failStore: reads disabled under apps/bac/eleven/sidecars/
2026/10/20 21:12:43 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: malformed: invalid character 'n' looking for beginning of object key string
2026/10/20 21:12:43 provision: not removing sidecar bot.eleven.bac.sidecar.internal: its record exists but could not be read cleanly this pass
2026/10/20 21:12:43 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: empty channel
2026/10/20 21:12:43 provision: skipping sidecar record apps/bac/eleven/sidecars/held.json: empty channel
2026/10/20 21:12:43 provision: not removing sidecar held.eleven.bac.sidecar.internal: its record exists but could not be read cleanly this pass
2026/10/20 21:12:43 provision: removed retired sidecar route old.eleven.bac.sidecar.internal (record gone)
2026/10/20 21:12:43 provision: bac/eleven has sidecar records but no sidecars manifest — not minting
2026/10/20 21:12:43 provision: bac/eleven is in the trash — not minting sidecar routes for it
2026/10/20 21:12:43 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 21:12:43 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 21:12:43 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 21:12:43 provision: minted sidecar route hub.relay.bac.sidecar.internal (app "relay" acct "bac" args ["relay"])
2026/10/20 21:12:43 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 21:12:43 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 21:12:43 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 21:12:43 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 21:12:43 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 21:12:43 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 21:12:43 provision: removed retired sidecar route bot.eleven.bac.sidecar.internal (record gone)
2026/10/20 21:12:43 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 21:12:43 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 21:12:43 provision: skipping sidecar record apps/bac/relay/sidecars/hub.json: read failed: failStore: reads disabled under apps/bac/relay/sidecars/
2026/10/20 21:12:43 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 21:12:43 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 21:12:43 provision: dry-run: would mint sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" channel "stable" args ["sidecar","run"])
2026/10/20 21:12:43 provision: dry-run: would remove retired sidecar route gone.eleven.bac.sidecar.internal (record gone)
2026/10/20 21:12:43 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 21:12:43 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:43 provision: converged acme.go.tito.io update settings "{\"updates\":\"manual\",\"channel\":\"stable\"}" -> ""
2026/10/20 21:12:43 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:43 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:43 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/20 21:12:43 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/20 21:12:43 provision: acme.go.tito.io: not minted this pass: the app's update policy could not be read
2026/10/20 21:12:43 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 21:12:43 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/20 21:12:43 provision: acme.go.tito.io: not minted this pass: the app's update policy could not be read
2026/10/20 21:12:43 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 38.642s
ok github.com/carlosframework/platform/internal/publicrelease 0.007s
? github.com/carlosframework/platform/internal/regionname [no test files]
ok github.com/carlosframework/platform/internal/registry 5.500s
ok github.com/carlosframework/platform/internal/relay 7.248s
ok github.com/carlosframework/platform/internal/release 24.230s
ok github.com/carlosframework/platform/internal/rollout 3.852s
ok github.com/carlosframework/platform/internal/rolloutwords 0.004s
ok github.com/carlosframework/platform/internal/rootaws 0.007s
ok github.com/carlosframework/platform/internal/rootparticipation 0.060s
ok github.com/carlosframework/platform/internal/rootstate 0.028s
ok github.com/carlosframework/platform/internal/runs 0.578s
ok github.com/carlosframework/platform/internal/s3compat 0.008s
ok github.com/carlosframework/platform/internal/safefile 0.004s
ok github.com/carlosframework/platform/internal/schedule 2.533s
ok github.com/carlosframework/platform/internal/seeds 0.011s
ok github.com/carlosframework/platform/internal/sim/hostlife 10.398s
ok github.com/carlosframework/platform/internal/sim/litestreamfacts 4.361s
ok github.com/carlosframework/platform/internal/status 0.064s
ok github.com/carlosframework/platform/internal/steering 0.006s
ok github.com/carlosframework/platform/internal/stopevidence 0.320s
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.002s
ok github.com/carlosframework/platform/internal/vet 1.590s
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 908e4ef8e..b74046e43 100644 |
| --- a/harness/RESOURCES.md |
| +++ b/harness/RESOURCES.md |
| @@ -17,3 +17,4 @@ Appended as each is created. Teardown commands: harness/TEARDOWN.md. |
| | 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 | |
| +| 2026-10-20T20:54Z | TTL extended | i-06a1ec144aa5226fb, sg-0b9cf4c2a508b7cec, vol-035c92e5b506cc3db, bucket carlos-harness-640012953448, role and instance profile carlos-harness | ttl and expires tags 2026-10-20T23:40Z -> 2026-10-21T12:00Z; on the host `shutdown -c; shutdown -h +<minutes to 12:00Z>` (shutdown --show: Wed 2026-10-21 11:59:33 UTC); Run 10 (v0.28.6 candidate rehearsal, overnight) | |
diff --git a/harness/RUNLOG.md b/harness/RUNLOG.md| index 8c99996fd..6d240ef5a 100644 |
| --- a/harness/RUNLOG.md |
| +++ b/harness/RUNLOG.md |
| @@ -1944,3 +1944,93 @@ New snapshots (all five containers and the console volume): `pre-0285`, `e-refus |
| leo is the ext4 copy made from `leo-btrfs/s7` and holds only these four; the Run 8 ext4 leo is kept stopped as |
| `leo-ext4-run8b` (203.0.113.126) with `post-b5-run8b`, `post-8.1-run8`, `g10-stuck-run8`, `post-window`. |
| Host TTL 2026-10-20T23:40Z (`shutdown -h 23:40`, tags). |
| + |
| +# Run 10: the v0.28.6 candidate (main e0986eab), overnight 2026-10-20/21 |
| + |
| +Coordinator's brief: a full rehearsal of the v0.28.6 candidate before release and real moves. (A1) the normal |
| +`system update` from v0.28.5 boxes, then sophie's console by the new `install-console --upgrade`; (A2) the same from |
| +dev's state today (v0.28.4 stand-in); (A3) platform-1c's console-upgrade root tests as real root; (B) the offline move |
| +with the Run 9 fixes (B1 small, B2 large, B3 abort after flip, B4 stale report). Harness only. Host TTL extended to |
| +2026-10-21T12:00Z first (RESOURCES.md, 20:54Z). |
| + |
| +## The build |
| + |
| +Candidate = main **e0986eab** (21850356 install-console-upgrade + e0986eab moves-offline-fixes on top of 54ae7fb9). |
| +Source: `git worktree add --detach $TMPDIR/r10src e0986eab` + the harness patch (6b905c11's `internal/` diff, the same |
| +seven files, `git diff 6b905c11^ 6b905c11 -- internal` sha256 `b2f1ad8f...`), `-tags harness`, `GOFLAGS=-buildvcs=false`, |
| +linux/arm64, `CGO_ENABLED=0`, `-ldflags "-s -w -X .../internal/version.Build=v0.28.8"`, 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.8** | the **v0.28.6 candidate** (e0986eab) | `a0b192477b3b8bca59ce17f23001818d384d7c8fa33e5deea97f7319c652d792` | `9887a9a42b058708f1cef9fb552d4048f83e0376d2bf160a788c5fa159ed3611` | `artefacts/v0.28.8-e0986eab/` | |
| +| (test binary) | `go test -c -tags rootrunner ./internal/host` @ e0986eab, linux/arm64, no harness patch needed | `30a0933491f51c9a...` | | `artefacts/r10-rootrunner/` | |
| + |
| +**Why v0.28.8.** In the pre-0285/post-0285 lineage (from s7) the bucket holds identities v0.28.5 (= dev's v0.28.4) |
| +and v0.28.6 (= dev's v0.28.5) only; v0.28.7 was published after post-0285 was taken. v0.28.8 is the next tag that is |
| +free there and newer than both. Run 6 had used v0.28.8 for 8a313548 on the host: its directories were renamed aside |
| +(`blocks/r10-prep.host.sh`: `/root/harness/release/v0.28.8-run6-8a313548`, `/home/operator/release-v0.28.8-run6-8a313548`; |
| +never deleted, artefacts still in `artefacts/v0.28.8-8a313548/`). Read "v0.28.8" below as the v0.28.6 candidate, |
| +"v0.28.6" as dev's v0.28.5 and "v0.28.5" as dev's v0.28.4. Console ship version (CV) `e0986eab`. |
| + |
| +## (A3) platform-1c's console-upgrade root tests as real root: PASS 5/5 (20:59Z) |
| + |
| +`internal/host/activation_console_upgrade_rootrunner_linux_test.go` is `//go:build linux && rootrunner`. Built with |
| +`GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go test -c -tags rootrunner ./internal/host`, run on the harness HOST itself |
| +(the EC2 instance, not a container): `euid 0`, `/proc/self/uid_map` = `0 0 4294967295` (the initial user namespace, |
| +so real root), kernel 6.12.96+deb13-cloud-arm64, aarch64. The fixture makes its tree under `/var/lib` and removes it. |
| +``` |
| +--- PASS: TestRootActivationConsoleUpgrade (0.05s) |
| +--- PASS: TestRootActivationConsoleUpgradeIdentity (0.05s) |
| +--- PASS: TestRootActivationConsoleUpgradeSourceAlias (0.02s) |
| +--- PASS: TestRootActivationConsoleUpgradeAlreadySyncs (0.03s) |
| +--- PASS: TestRootActivationConsoleUpgradeOversizedSlot (0.36s) |
| +PASS |
| +``` |
| +Scratch `/root/r10-a3.*` removed; no `/var/lib/carlos-activation-test-*` left. |
| + |
| +## (A1) From `post-0285` (boxes on v0.28.5): PASS |
| + |
| +Restored `post-0285` 21:02-21:04Z (every box harness v0.28.6, console `dd24213d...` by Run 9's E1, both slots). |
| + |
| +**Signing session (C2 first): PASS (21:04:31-21:05:06Z)**, `blocks/r9-release.host.sh v0.28.8 v0.28.8-e0986eab |
| +a0b19247... 9887a9a4... e0986eab`: sums signed and verified (`SHA256SUMS.txt` `a4bb0dfb...`); operator CLI `carlos |
| +v0.28.8`; console `e0986eab` shipped and promoted to `canary/console` (21:04:35Z) before publish-identity; session |
| +`cohort1-20261020T210435Z` (signer `carlos v0.28.8`, key `root 600 1 45`, swap 0, `/run` tmpfs); one create-only write |
| +of `control/system/router/releases/v0.28.8.json` (`before_etag ""`, `85efd09f...`; router `a0b19247...`, console |
| +`9887a9a4...`); identity file = published object; REV 13. |
| + |
| +**Routers by the normal `system update`, NO box step: PASS (21:05:23-21:09:47Z)** (`blocks/r10-a1-normal.host.sh v0.28.8`) |
| +``` |
| +21:05:23.841Z carlos system update --channel stable --version v0.28.8 ... --yes 2 boxes over 5m, rev 13 -> 14 |
| +21:05:25.116Z carlos system update --channel canary --version v0.28.8 ... --yes 1 box (ada-letterpress), rev 15 |
| +leo 21:06:04-21:06:24Z carlos-system-update.service (root apply), result "applied" stable v0.28.8 |
| +sophie 21:06:17-21:06:37Z the same, canary |
| +dennis 21:07:51-21:08:09Z the same, stable (unarmed) |
| +21:09:00Z all three "v0.28.8 current"; 21:09:47Z roster {"rev":17,"activations":[]} |
| +``` |
| +On leo and sophie: guard identities `v0.28.5 v0.28.6 v0.28.8`, edge exe `a0b19247...`, NRestarts 0, `carlos v0.28.8`, |
| +`carlos.prev v0.28.6`, `carlos-system-update.path` active, no `/root/carlos-*`. No re-arm and no refusal anywhere: |
| +v0.28.5 carries 8376a468 and 8a313548, as Run 9's normal road showed. Sophie's console kept running `dd24213d...`. |
| + |
| +**Sophie's console by `install-console --upgrade`: PASS (21:09:59-21:10:02Z)** (`blocks/r10-console-upgrade.host.sh |
| +v0.28.8 e0986eab 9887a9a4...`). Source: the agent-staged `/opt/carlos/versions/e0986eab/console` (root:root 755, one |
| +link, the identity's sha). `--from` = the running console's exe sha `dd24213d...`. Router first (identity v0.28.8 |
| +persisted), then: |
| +``` |
| +install-console --identity identity.v0.28.8.json --source /opt/carlos/versions/e0986eab/console ... --upgrade --from dd24213d... --dry-run |
| + -> already_installed false, upgraded true, previous_sha dd24213d..., sha256 9887a9a4..., exit 0 |
| +(the same without --dry-run) -> the same, dry_run false, exit 0 |
| + console 755 root:root 1 link 47382690 9887a9a4... = the release console |
| + console.prev 755 root:root 1 link 47317154 dd24213d... = the old build; no console.next left |
| +systemctl restart console.service 21:10:00.340Z -> active, pid 963, exe /opt/carlos/system/console/console 9887a9a4..., |
| + CARLOS_HOST_CLAIM= (empty), NRestarts 0, healthz 200 at 21:10:00.833Z, / 200 |
| +console-report --expect-revision 17 (dry run, then for real): binary_sha256 9887a9a4..., guard_floor_sha256 53d81bb7..., |
| + key status/boxes/ada-letterpress.json, exit 0 |
| +the same upgrade again -> already_installed true, exit 0; slots unchanged |
| +``` |
| +(`all_launch_paths_guarded` is false in the report; no production code sets it true, only tests: expected.) |
| + |
| +Snapshot **`post-candidate`** (21:10:20-21:10:53Z): every box v0.28.8, console `9887a9a4...` by `--upgrade` (prev |
| +`dd24213d...`), claims off, roster rev 17. |
diff --git a/harness/evidence/run10/a1-console.log b/harness/evidence/run10/a1-console.log| new file mode 100644 |
| index 000000000..e968b2d59 |
| --- /dev/null |
| +++ b/harness/evidence/run10/a1-console.log |
| @@ -0,0 +1,117 @@ |
| +[hssm] i-06a1ec144aa5226fb 33b3e9ce-e9c8-410f-be38-e007060803da Success exit=0 |
| +leo: { |
| + "channel": "stable", |
| + "version": "v0.28.8", |
| + "promoted_at": "2026-10-20T21:05:24Z", |
| + "outcome": "applied", |
| + "at": "2026-10-20T21:06:24.578912816Z" |
| +} |
| +sophie: { |
| + "channel": "canary", |
| + "version": "v0.28.8", |
| + "promoted_at": "2026-10-20T21:05:25Z", |
| + "outcome": "applied", |
| + "at": "2026-10-20T21:06:37.138292706Z" |
| +} |
| +dennis: { |
| + "channel": "stable", |
| + "version": "v0.28.8", |
| + "promoted_at": "2026-10-20T21:05:24Z", |
| + "outcome": "applied", |
| + "at": "2026-10-20T21:08:09.621360403Z" |
| +} |
| +identity file = published object |
| +source: agent-staged /opt/carlos/versions/e0986eab/console (root:root 755 1) |
| +roster revision now 17 |
| +before: pid 306 exe /opt/carlos/system/console/console sha dd24213dff7b8bd5df575ccaee253df866ecefb613301fb6abc57752523ba159 |
| + /opt/carlos/system/console/console 755 root:root 1 47317154 sha dd24213dff7b8bd5 |
| + /opt/carlos/system/console/console.prev 755 root:root 1 47317154 sha dd24213dff7b8bd5 |
| +router: carlos v0.28.8; identities: v0.28.5.json v0.28.6.json v0.28.8.json |
| +== dry run 21:09:59.295Z |
| +{ |
| + "already_installed": false, |
| + "dry_run": true, |
| + "from": "dd24213dff7b8bd5df575ccaee253df866ecefb613301fb6abc57752523ba159", |
| + "mode": "0755", |
| + "path": "/opt/carlos/system/console/console", |
| + "previous": "/opt/carlos/system/console/console.prev", |
| + "previous_sha": "dd24213dff7b8bd5df575ccaee253df866ecefb613301fb6abc57752523ba159", |
| + "release_tag": "v0.28.8", |
| + "sha256": "9887a9a42b058708f1cef9fb552d4048f83e0376d2bf160a788c5fa159ed3611", |
| + "source": "/opt/carlos/versions/e0986eab/console", |
| + "upgraded": true |
| +} |
| +exit=0 |
| +== upgrade 21:09:59.589Z |
| +{ |
| + "already_installed": false, |
| + "dry_run": false, |
| + "from": "dd24213dff7b8bd5df575ccaee253df866ecefb613301fb6abc57752523ba159", |
| + "mode": "0755", |
| + "path": "/opt/carlos/system/console/console", |
| + "previous": "/opt/carlos/system/console/console.prev", |
| + "previous_sha": "dd24213dff7b8bd5df575ccaee253df866ecefb613301fb6abc57752523ba159", |
| + "release_tag": "v0.28.8", |
| + "sha256": "9887a9a42b058708f1cef9fb552d4048f83e0376d2bf160a788c5fa159ed3611", |
| + "source": "/opt/carlos/versions/e0986eab/console", |
| + "upgraded": true |
| +} |
| +exit=0 |
| + /opt/carlos/system/console/console 755 root:root 1 47382690 sha 9887a9a42b058708f1cef9fb552d4048f83e0376d2bf160a788c5fa159ed3611 |
| + /opt/carlos/system/console/console.prev 755 root:root 1 47317154 sha dd24213dff7b8bd5df575ccaee253df866ecefb613301fb6abc57752523ba159 |
| +console = the release console |
| +console.prev = the old build (dd24213dff7b8bd5df575ccaee253df866ecefb613301fb6abc57752523ba159) |
| +restart at 21:10:00.340Z: active |
| +console pid 963 exe /opt/carlos/system/console/console sha256 9887a9a42b058708f1cef9fb552d4048f83e0376d2bf160a788c5fa159ed3611 |
| +running = the release console |
| +CARLOS_HOST_CLAIM= |
| +NRestarts=0 ExecMainStartTimestamp=Tue 2026-10-20 21:10:00 UTC ActiveState=active |
| +healthz 200 (21:10:00.833Z); / 200 |
| +== console-report (rev 17) 21:10:00.857Z |
| +{ |
| + "bucket": "harness-deployment", |
| + "console_process": { |
| + "console_id": "dev-console", |
| + "enrollment": "e29fb09644be7c7a85a4acd3de194d01", |
| + "process_id": "462b6f95-f660-4bd4-9e08-c74eb99106b4:4026532823:963:7372038", |
| + "binary_sha256": "9887a9a42b058708f1cef9fb552d4048f83e0376d2bf160a788c5fa159ed3611", |
| + "guard_floor_sha256": "53d81bb7b0823bf983e44fa96618e3f3331e181ea04c15b9b535d959463a0c55", |
| + "all_launch_paths_guarded": false |
| + }, |
| + "dry_run": true, |
| + "expected_roster_revision": 17, |
| + "key": "status/boxes/ada-letterpress.json" |
| +} |
| +dry exit=0 |
| +{ |
| + "bucket": "harness-deployment", |
| + "console_process": { |
| + "console_id": "dev-console", |
| + "enrollment": "e29fb09644be7c7a85a4acd3de194d01", |
| + "process_id": "462b6f95-f660-4bd4-9e08-c74eb99106b4:4026532823:963:7372038", |
| + "binary_sha256": "9887a9a42b058708f1cef9fb552d4048f83e0376d2bf160a788c5fa159ed3611", |
| + "guard_floor_sha256": "53d81bb7b0823bf983e44fa96618e3f3331e181ea04c15b9b535d959463a0c55", |
| + "all_launch_paths_guarded": false |
| + }, |
| + "dry_run": false, |
| + "expected_roster_revision": 17, |
| + "key": "status/boxes/ada-letterpress.json" |
| +} |
| +exit=0 |
| +== the same upgrade again 21:10:01.663Z |
| +{ |
| + "already_installed": true, |
| + "dry_run": false, |
| + "from": "dd24213dff7b8bd5df575ccaee253df866ecefb613301fb6abc57752523ba159", |
| + "mode": "0755", |
| + "path": "/opt/carlos/system/console/console", |
| + "previous": "/opt/carlos/system/console/console.prev", |
| + "previous_sha": "dd24213dff7b8bd5df575ccaee253df866ecefb613301fb6abc57752523ba159", |
| + "release_tag": "v0.28.8", |
| + "sha256": "9887a9a42b058708f1cef9fb552d4048f83e0376d2bf160a788c5fa159ed3611", |
| + "source": "/opt/carlos/versions/e0986eab/console", |
| + "upgraded": true |
| +} |
| +exit=0 |
| + /opt/carlos/system/console/console 755 root:root 1 47382690 sha 9887a9a42b058708 |
| + /opt/carlos/system/console/console.prev 755 root:root 1 47317154 sha dd24213dff7b8bd5 |
diff --git a/harness/evidence/run10/a1-normal.log b/harness/evidence/run10/a1-normal.log| new file mode 100644 |
| index 000000000..a79fa676d |
| --- /dev/null |
| +++ b/harness/evidence/run10/a1-normal.log |
| @@ -0,0 +1,71 @@ |
| +[hssm] i-06a1ec144aa5226fb da1aa7a3-1086-424f-9fe8-473c92b55e82 Success exit=0 |
| +box reports fresh at 21:05:22 |
| +roster before: {"rev":13,"activations":[]} |
| +canary v0.28.6 promoted 2026-10-20T16:30:36Z spread 5m0s file |
| +stable v0.28.6 promoted 2026-10-20T16:19:48Z spread 5m0s file |
| +bootstrap/carlos is not stable's build (v0.28.6), so a new box would boot a different one. Copy bootstrap/router/v0.28.6/carlos-linux-arm64 over it. |
| + |
| +ada-letterpress linux-arm64 canary v0.28.6 current |
| +kathleen-juggling linux-arm64 stable v0.28.6 current |
| +noor-marquetry linux-arm64 stable v0.28.6 current |
| +-- leo before |
| + carlos carlos v0.28.6 / prev carlos v0.28.5; path active; guard activation.json carlos completed.json identities policy.json |
| + identities: v0.28.5.json v0.28.6.json |
| + edge pid 233 exe sha 9c662e4d685a1c73 NRestarts=0 ExecMainStartTimestamp=Tue 2026-10-20 21:04:15 UTC ActiveState=active |
| +-- sophie before |
| + carlos carlos v0.28.6 / prev carlos v0.28.5; path active; guard activation.json carlos completed.json console-ready.json identities policy.json |
| + identities: v0.28.5.json v0.28.6.json |
| + edge pid 233 exe sha 9c662e4d685a1c73 NRestarts=0 ExecMainStartTimestamp=Tue 2026-10-20 21:04:17 UTC ActiveState=active |
| +-- dennis before |
| + carlos carlos v0.28.6 / prev carlos v0.28.5; path active; guard |
| + |
| + edge pid 217 exe sha 9c662e4d685a1c73 NRestarts=0 ExecMainStartTimestamp=Tue 2026-10-20 21:04:16 UTC ActiveState=active |
| +== promote stable v0.28.8 (21:05:23.841Z), no step on any box |
| +promote v0.28.8 to router/stable — 2 box(es) will roll over 5m: |
| + kathleen-juggling (linux-arm64, running v0.28.6) |
| + noor-marquetry (linux-arm64, running v0.28.6) |
| +warning: v0.28.8 has not been on canary; promoting straight to stable |
| + using uploaded v0.28.8 for linux-arm64 |
| + mirrored bootstrap/router/v0.28.8/carlos-linux-arm64 |
| + pointed router/stable at v0.28.8 (spread 5m0s) |
| + serial bumped: boxes on stable start their spread |
| +promoted boxes on stable roll themselves; watch with: carlos system status --channel stable |
| +roster: {"rev":14,"activations":["ca804696c668c23cd550c46bc4a61a1c"]} |
| +== promote canary v0.28.8 (21:05:25.116Z) |
| +promote v0.28.8 to router/canary — 1 box(es) will roll over 5m: |
| + ada-letterpress (linux-arm64, running v0.28.6) |
| + using uploaded v0.28.8 for linux-arm64 |
| + bootstrap/router/v0.28.8/carlos-linux-arm64 already mirrored |
| + pointed router/canary at v0.28.8 (spread 5m0s) |
| + serial bumped: boxes on canary start their spread |
| +promoted boxes on canary roll themselves; watch with: carlos system status --channel canary |
| +roster: {"rev":15,"activations":["846dcd52bdd66c1d4737671b0a4ae80b","ca804696c668c23cd550c46bc4a61a1c"]} |
| +== status 21:09:00.634Z |
| +canary v0.28.8 promoted 2026-10-20T21:05:25Z spread 5m0s file |
| +stable v0.28.8 promoted 2026-10-20T21:05:24Z spread 5m0s file |
| +bootstrap/carlos is not stable's build (v0.28.8), so a new box would boot a different one. Copy bootstrap/router/v0.28.8/carlos-linux-arm64 over it. |
| + |
| +ada-letterpress linux-arm64 canary v0.28.8 current |
| +kathleen-juggling linux-arm64 stable v0.28.8 current |
| +noor-marquetry linux-arm64 stable v0.28.8 current |
| +-- leo after |
| + carlos carlos v0.28.8 / prev carlos v0.28.6; path active; guard activation.json carlos completed.json identities policy.json |
| + identities: v0.28.5.json v0.28.6.json v0.28.8.json |
| + edge pid 540 exe sha a0b192477b3b8bca NRestarts=0 ExecMainStartTimestamp=Tue 2026-10-20 21:06:07 UTC ActiveState=active |
| + journal: 2026-10-20T21:06:04.567978+00:00 leo systemd[1]: Starting carlos-system-update.service - carlos platform self-update (root apply)... |
| + journal: 2026-10-20T21:06:24.651622+00:00 leo systemd[1]: Finished carlos-system-update.service - carlos platform self-update (root apply). |
| +-- sophie after |
| + carlos carlos v0.28.8 / prev carlos v0.28.6; path active; guard activation.json carlos completed.json console-ready.json identities policy.json |
| + identities: v0.28.5.json v0.28.6.json v0.28.8.json |
| + edge pid 574 exe sha a0b192477b3b8bca NRestarts=0 ExecMainStartTimestamp=Tue 2026-10-20 21:06:20 UTC ActiveState=active |
| + journal: 2026-10-20T21:06:17.735432+00:00 sophie systemd[1]: Starting carlos-system-update.service - carlos platform self-update (root apply)... |
| + journal: 2026-10-20T21:06:37.213209+00:00 sophie systemd[1]: Finished carlos-system-update.service - carlos platform self-update (root apply). |
| +-- dennis after |
| + carlos carlos v0.28.8 / prev carlos v0.28.6; path active; guard |
| + |
| + edge pid 514 exe sha a0b192477b3b8bca NRestarts=0 ExecMainStartTimestamp=Tue 2026-10-20 21:07:52 UTC ActiveState=active |
| + journal: 2026-10-20T21:07:51.692013+00:00 dennis systemd[1]: Starting carlos-system-update.service - carlos platform self-update (root apply)... |
| + journal: 2026-10-20T21:08:09.648693+00:00 dennis systemd[1]: Finished carlos-system-update.service - carlos platform self-update (root apply). |
| +21:09:47 roster {"rev":17,"activations":[]} |
| +roster end: {"rev":17,"activations":[]} |
| +console pid 306 exe sha dd24213dff7b8bd5 (router apply leaves it alone) |
diff --git a/harness/evidence/run10/a1-release.log b/harness/evidence/run10/a1-release.log| new file mode 100644 |
| index 000000000..fb74a0096 |
| --- /dev/null |
| +++ b/harness/evidence/run10/a1-release.log |
| @@ -0,0 +1,88 @@ |
| +[hssm] i-06a1ec144aa5226fb 5a355ece-73d5-4bd5-a3f7-9300e5af3148 Success exit=0 |
| +== release-window v0.28.8 (21:04:31.689Z) |
| +== release v0.28.8 |
| +a0b192477b3b8bca59ce17f23001818d384d7c8fa33e5deea97f7319c652d792 carlos-linux-arm64 |
| +9bff035153238f5549adc577a52936e62df154eb0921ec448f89b630dcac37c9 carlos_0.28.8_amd64.deb |
| +27269180b4d3868e416ecc0f12cfd892b690113e9ef94ed5d159c5c674b27f74 carlos_0.28.8_arm64.deb |
| +a4bb0dfbabf354ab94a4d85c835c45944ea78717f6f2861a92499fa35f4466ff SHA256SUMS.txt |
| +c7b9d4c7d299f3f583a2f494e7c978bcc162f1e9cb08306652fa87e25d4d1a4b SHA256SUMS.txt.sig |
| +9887a9a42b058708f1cef9fb552d4048f83e0376d2bf160a788c5fa159ed3611 console-linux-arm64 |
| +verify sums: Signature Verified Successfully |
| +operator CLI: carlos v0.28.8 |
| +harness info: harness build: yes endpoint: http://203.0.113.10:9000 sums key: mAnSlX23... sha256:85f6f13cb78c |
| +== 1a/1e |
| +CHANNEL VERSION PROMOTED TAG DIGESTS |
| +canary/console 54ae7fb9 2026-10-20T16:13:15Z yes |
| +pointer digests: on for bab since 2026-10-20T01:12:47Z |
| +every channel's pointer carries digests: CARLOS_REQUIRE_POINTER_DIGEST can be turned on |
| +== 2 |
| +9887a9a42b058708f1cef9fb552d4048f83e0376d2bf160a788c5fa159ed3611 /home/operator/release-v0.28.8/console-linux-arm64 |
| +0 |
| +== 4 |
| +shipped console e0986eab (1 artifacts) |
| +promoted console e0986eab -> canary/console |
| +CHANNEL VERSION PROMOTED TAG DIGESTS |
| +canary/console e0986eab 2026-10-20T21:04:35Z yes |
| +== session open (21:04:35.730Z) |
| +run-id cohort1-20261020T210435Z |
| +2026-10-20 21:04:37 265 SHA256SUMS.txt |
| +2026-10-20 21:04:37 89 SHA256SUMS.txt.sig |
| +2026-10-20 21:04:38 49807522 carlos-linux-arm64 |
| +2026-10-20 21:04:42 203 console.json |
| +2026-10-20 21:04:39 37 floor.json |
| +2026-10-20 21:04:41 244 leo.json |
| +2026-10-20 21:04:40 191 regions.json |
| +2026-10-20 21:04:36 45 release.pub |
| +2026-10-20 21:04:43 1795 signer-helpers.sh |
| +2026-10-20 21:04:41 240 sophie.json |
| +Success /usr/local/bin/carlos: OK |
| +carlos v0.28.8 |
| +jq-1.7 |
| +/usr/bin/jq |
| +SHA256SUMS.txt: OK |
| +SHA256SUMS.txt.sig: OK |
| +helpers.sh: OK |
| +release.pub: OK |
| +swap devices: 0 |
| +/run: tmpfs |
| +session-start 2026-10-20T21:04:54Z |
| +root 600 1 45 |
| + 2026/10/20 21:04:46 ALERT: root AWS file, profile, endpoint and trust-store environment overrides ignored |
| + |
| +== publish-identity v0.28.8, console e0986eab (21:04:58.141Z) |
| +Success "writes": [ |
| + "key": "control/system/router/releases/v0.28.8.json", |
| + "before_etag": "", |
| + "key": "bootstrap/console/v0.28.8/carlos-linux-arm64", |
| + "key": "bootstrap/router/v0.28.8/carlos-linux-arm64", |
| + "key": "bootstrap/console/v0.28.8/carlos-linux-arm64", |
| + "key": "bootstrap/router/v0.28.8/carlos-linux-arm64", |
| +publish-identity writes: [{"key":"control/system/router/releases/v0.28.8.json","before_etag":"","sha256":"85efd09f201e4d1b00ba1e4867e3aba05943bcc5c78be9b2ff33971ff5257f04","payload":{"schema":1,"component":"router","channel":"stable","current":{"console_artifacts":{"linux-arm64":{"key":"bootstrap/console/v0.28.8/carlos-linux-arm64","sha256":"9887a9a42b058708f1cef9fb552d4048f83e0376d2bf160a788c5fa159ed3611"}},"release_tag":"v0.28.8","moves_protocol":1,"version":"v0.28.8","artifacts":{"linux-arm64":{"key":"bootstrap/router/v0.28.8/carlos-linux-arm64","sha256":"a0b192477b3b8bca59ce17f23001818d384d7c8fa33e5deea97f7319c652d792"}},"source":"release:v0.28.8","released_at":"0001-01-01T00:00:00Z"},"spread":"0s","promoted_at":"2026-10-20T21:04:59Z"}}] |
| +{ |
| + "identity_key": "control/system/router/releases/v0.28.8.json", |
| + "release": { |
| + "console_artifacts": { |
| + "linux-arm64": { |
| + "key": "bootstrap/console/v0.28.8/carlos-linux-arm64", |
| + "sha256": "9887a9a42b058708f1cef9fb552d4048f83e0376d2bf160a788c5fa159ed3611" |
| + } |
| + }, |
| + "release_tag": "v0.28.8", |
| + "moves_protocol": 1, |
| + "version": "v0.28.8", |
| + "artifacts": { |
| + "linux-arm64": { |
| + "key": "bootstrap/router/v0.28.8/carlos-linux-arm64", |
| + "sha256": "a0b192477b3b8bca59ce17f23001818d384d7c8fa33e5deea97f7319c652d792" |
| + } |
| + }, |
| + "source": "release:v0.28.8", |
| + "released_at": "0001-01-01T00:00:00Z" |
| + } |
| +} |
| +85efd09f201e4d1b |
| +REV=13 |
| + |
| +identity file = published object |
| +identity router a0b192477b3b8bca59ce17f23001818d384d7c8fa33e5deea97f7319c652d792 console 9887a9a42b058708f1cef9fb552d4048f83e0376d2bf160a788c5fa159ed3611 |
| +== done (21:05:06.465Z) |
diff --git a/harness/evidence/run10/a1-restore.log b/harness/evidence/run10/a1-restore.log| new file mode 100644 |
| index 000000000..6574f2532 |
| --- /dev/null |
| +++ b/harness/evidence/run10/a1-restore.log |
| @@ -0,0 +1,9 @@ |
| +[hssm] i-06a1ec144aa5226fb 6643f486-bc28-4b24-a4a3-16e5f272674b Success exit=0 |
| +sophie-console volume restored to post-0285 |
| +infra: running failed=[] snapshots=base,boot,pre62,s7,pre-window,g4-fail-cc90d542,pre-window-seeded,g4-held-8376a468,g4-fail-8376a468,g4-parent-p-refused,rearm-released-v0.28.7,post-b5,post-8.1,g7-fail-8a313548,g7-f4-census,post-b5-465c3a08,post-8.1-465c3a08,g7-fail-465c3a08,post-b5-465c3a08-c8,post-8.1-465c3a08-c8,g7-fail-465c3a08-c8,g7-fail-465c3a08-ext4,resume-complete-ext4,post-b5-clean,post-b5-run8,post-b5-run8b,post-8.1-run8,g10-stuck-run8,item6-plain-update-fail,post-window,pre-0285,e-refused-0285,post-0285,pre-move-r9 |
| +leo: running failed=[] snapshots=pre-0285,e-refused-0285,post-0285,pre-move-r9 |
| +sophie: running failed=[] snapshots=base,boot,pre62,s7,pre-window,g4-fail-cc90d542,pre-window-seeded,g4-held-8376a468,g4-fail-8376a468,g4-parent-p-refused,rearm-released-v0.28.7,post-b5,post-8.1,g7-fail-8a313548,g7-f4-census,post-b5-465c3a08,post-8.1-465c3a08,g7-fail-465c3a08,post-b5-465c3a08-c8,post-8.1-465c3a08-c8,g7-fail-465c3a08-c8,g7-fail-465c3a08-ext4,resume-complete-ext4,post-b5-clean,post-b5-run8,post-b5-run8b,post-8.1-run8,g10-stuck-run8,item6-plain-update-fail,post-window,pre-0285,e-refused-0285,post-0285,pre-move-r9 |
| +dennis: running failed=[] snapshots=base,boot,pre62,s7,pre-window,g4-fail-cc90d542,pre-window-seeded,g4-held-8376a468,g4-fail-8376a468,g4-parent-p-refused,rearm-released-v0.28.7,post-b5,post-8.1,g7-fail-8a313548,g7-f4-census,post-b5-465c3a08,post-8.1-465c3a08,g7-fail-465c3a08,post-b5-465c3a08-c8,post-8.1-465c3a08-c8,g7-fail-465c3a08-c8,g7-fail-465c3a08-ext4,resume-complete-ext4,post-b5-clean,post-b5-run8,post-b5-run8b,post-8.1-run8,g10-stuck-run8,item6-plain-update-fail,post-window,pre-0285,e-refused-0285,post-0285,pre-move-r9 |
| +signer: running failed=[] snapshots=base,boot,pre62,s7,pre-window,g4-fail-cc90d542,pre-window-seeded,g4-held-8376a468,g4-fail-8376a468,g4-parent-p-refused,rearm-released-v0.28.7,post-b5,post-8.1,g7-fail-8a313548,g7-f4-census,post-b5-465c3a08,post-8.1-465c3a08,g7-fail-465c3a08,post-b5-465c3a08-c8,post-8.1-465c3a08-c8,g7-fail-465c3a08-c8,g7-fail-465c3a08-ext4,resume-complete-ext4,post-b5-clean,post-b5-run8,post-b5-run8b,post-8.1-run8,g10-stuck-run8,item6-plain-update-fail,post-window,pre-0285,e-refused-0285,post-0285,pre-move-r9 |
| +sophie-console volume snapshots: s7,pre-window,g4-fail-cc90d542,pre-window-seeded,g4-held-8376a468,g4-fail-8376a468,g4-parent-p-refused,rearm-released-v0.28.7,post-b5,post-8.1,g7-fail-8a313548,g7-f4-census,post-b5-465c3a08,post-8.1-465c3a08,g7-fail-465c3a08,post-b5-465c3a08-c8,post-8.1-465c3a08-c8,g7-fail-465c3a08-c8,g7-fail-465c3a08-ext4,resume-complete-ext4,post-b5-clean,post-b5-run8,post-b5-run8b,post-8.1-run8,g10-stuck-run8,item6-plain-update-fail,post-window,pre-0285,e-refused-0285,post-0285,pre-move-r9 |
| +carlos v0.28.6 |
diff --git a/harness/evidence/run10/snap-post-candidate.log b/harness/evidence/run10/snap-post-candidate.log| new file mode 100644 |
| index 000000000..179b39bec |
| --- /dev/null |
| +++ b/harness/evidence/run10/snap-post-candidate.log |
| @@ -0,0 +1,8 @@ |
| +[hssm] i-06a1ec144aa5226fb 18e2ad06-b813-4285-bbd7-2a3f662c038f Success exit=0 |
| +leo: running failed=[] snapshots=pre-0285,e-refused-0285,post-0285,pre-move-r9,post-candidate |
| +sophie-console volume snapshots: s7,pre-window,g4-fail-cc90d542,pre-window-seeded,g4-held-8376a468,g4-fail-8376a468,g4-parent-p-refused,rearm-released-v0.28.7,post-b5,post-8.1,g7-fail-8a313548,g7-f4-census,post-b5-465c3a08,post-8.1-465c3a08,g7-fail-465c3a08,post-b5-465c3a08-c8,post-8.1-465c3a08-c8,g7-fail-465c3a08-c8,g7-fail-465c3a08-ext4,resume-complete-ext4,post-b5-clean,post-b5-run8,post-b5-run8b,post-8.1-run8,g10-stuck-run8,item6-plain-update-fail,post-window,pre-0285,e-refused-0285,post-0285,pre-move-r9,post-candidate |
| +leo carlos v0.28.8 |
| +sophie carlos v0.28.8 |
| +dennis carlos v0.28.8 |
| +healthz 200 |
| +/dev/nvme0n1p1 59G 38G 20G 67% / |
diff --git a/harness/scenarios/cohort1/blocks/r10-a1-normal.host.sh b/harness/scenarios/cohort1/blocks/r10-a1-normal.host.sh| new file mode 100644 |
| index 000000000..1e3d76c9f |
| --- /dev/null |
| +++ b/harness/scenarios/cohort1/blocks/r10-a1-normal.host.sh |
| @@ -0,0 +1,33 @@ |
| +#!/bin/bash |
| +# Run 10 (A1): the normal `carlos system update` from boxes on v0.28.5 (harness v0.28.6) to the candidate |
| +# (harness TAG), with NO step on any box: leo and dennis follow stable, sophie's router follows canary (H8). |
| +# v0.28.5 carries the armed-box fixes (8376a468, 8a313548), so no re-arm is expected. |
| +# r10-a1-normal.host.sh <TAG> |
| +set -uo pipefail |
| +TAG=$1 |
| +C=http://127.0.0.1:8090 |
| +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)}"'; } |
| +st() { runuser -l operator -c "carlos system status --console $C" 2>&1 | grep -v ALERT; } |
| +box() { incus exec $1 -- bash -c 'echo " carlos $(/opt/carlos/carlos version | tail -1) / prev $(/opt/carlos/carlos.prev version 2>&1 | tail -1); path $(systemctl is-active carlos-system-update.path); guard $(cat /opt/carlos/system/guard/state 2>/dev/null || ls /opt/carlos/system/guard 2>/dev/null | tr "\n" " " || echo none)" |
| + cat /opt/carlos/system/router/result.json 2>/dev/null | jq -c "{outcome, version, channel, promoted_at, error}" 2>/dev/null | sed "s/^/ result: /" |
| + ls /opt/carlos/system/guard/identities 2>/dev/null | tr "\n" " " | sed "s/^/ identities: /"; echo |
| + P=$(systemctl show -p MainPID --value carlos-edge.service); echo " edge pid $P exe sha $(sha256sum < /proc/$P/exe | cut -c1-16) $(systemctl show carlos-edge -p NRestarts -p ActiveState -p ExecMainStartTimestamp | tr "\n" " ")" |
| + ls /root/carlos-* 2>/dev/null |
| + journalctl -u carlos-system-update.service --since "-20min" --no-pager -o short-iso-precise | grep -E "Starting|Finished|refus|rearm|re-arm|guard|apply|error|fail" | tail -8 | sed "s/^/ journal: /"'; } |
| +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-300))" ] && break; sleep 10; done; echo "box reports fresh at $(date -u +%T)" |
| +echo "roster before: $(insp)"; st |
| +for b in leo sophie dennis; do echo "-- $b before"; box $b; done |
| +echo "== promote stable $TAG ($(date -u +%T.%3NZ)), no step on any box" |
| +runuser -l operator -c "carlos system update --console $C --channel stable --version $TAG --file ~/release-$TAG/carlos-linux-arm64 --platform linux-arm64 --yes" 2>&1 | grep -v ALERT |
| +echo "roster: $(insp)" |
| +echo "== promote canary $TAG ($(date -u +%T.%3NZ))" |
| +runuser -l operator -c "carlos system update --console $C --channel canary --version $TAG --file ~/release-$TAG/carlos-linux-arm64 --platform linux-arm64 --yes" 2>&1 | grep -v ALERT |
| +echo "roster: $(insp)" |
| +for i in $(seq 1 60); do s=$(st); [ "$(echo "$s" | grep -cE "$TAG *current")" -ge 3 ] && break; sleep 15; done |
| +echo "== status $(date -u +%T.%3NZ)"; echo "$s" |
| +for b in leo sophie dennis; do echo "-- $b after"; box $b; done |
| +for i in $(seq 1 40); do a=$(insp); case "$a" in *'"activations":[]'*) echo "$(date -u +%T) roster $a"; break;; esac; sleep 15; done |
| +echo "roster end: $(insp)" |
| +incus exec sophie -- bash -c 'p=$(systemctl show -p MainPID --value console.service); echo "console pid $p exe sha $(sha256sum < /proc/$p/exe | cut -c1-16) (router apply leaves it alone)"' |
diff --git a/harness/scenarios/cohort1/blocks/r10-console-upgrade.host.sh b/harness/scenarios/cohort1/blocks/r10-console-upgrade.host.sh| new file mode 100644 |
| index 000000000..30fddc4eb |
| --- /dev/null |
| +++ b/harness/scenarios/cohort1/blocks/r10-console-upgrade.host.sh |
| @@ -0,0 +1,61 @@ |
| +#!/bin/bash |
| +# Run 10 (A1 and A2): sophie's guarded console onto the candidate by the new |
| +# `system claims install-console --upgrade --from <running console sha>` (21850356), on host, root. |
| +# r10-console-upgrade.host.sh <TAG> <CV> <console sha> |
| +# The router must already be on TAG (guard-exec needs the identity persisted). Order: dry run, apply, |
| +# restart console.service, verify (exe sha, healthz, console.prev = the old build), console-report |
| +# (dry run, then for real), then the same upgrade again: it must answer already_installed true. |
| +# Source: the agent-staged copy of the promoted console (/opt/carlos/versions/<CV>/console) if it holds |
| +# the release's sha, else the release artefact pushed to /root/console-<TAG> (shredded at the end). |
| +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 %h' $SRC))" |
| +else |
| + echo "source: $SRC absent or not the release"; 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 |
| +REV=$(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 -r .roster.revision') |
| +echo "roster revision now $REV" |
| +incus exec sophie -- bash -s -- "$TAG" "$SRC" "$COS" "$REV" <<'BOX' |
| +set -uo pipefail |
| +TAG=$1 SRC=$2 COS=$3 REV=$4 |
| +umask 077 |
| +cd /root/claim-trial |
| +PUB=$(cat release.pub); CID=$(cat console-id) |
| +CB=/opt/carlos/system/console/console |
| +ic() { /opt/carlos/carlos system claims install-console --identity /root/claim-trial/identity.$TAG.json --source "$SRC" \ |
| + --bucket harness-deployment --aws-region eu-west-1 --public-key "$PUB" "$@"; } |
| +p=$(systemctl show -p MainPID --value console.service) |
| +FROM=$(sha256sum < /proc/$p/exe | cut -d' ' -f1) |
| +echo "before: pid $p exe $(readlink /proc/$p/exe) sha $FROM" |
| +for f in $CB $CB.prev; do echo " $(stat -c '%n %a %U:%G %h %s' $f 2>&1) sha $(sha256sum < $f 2>/dev/null | cut -c1-16)"; done |
| +echo "router: $(/opt/carlos/carlos version | tail -1); identities: $(ls /opt/carlos/system/guard/identities | tr '\n' ' ')" |
| +echo "== dry run $(date -u +%T.%3NZ)"; ic --upgrade --from "$FROM" --dry-run; echo "exit=$?" |
| +echo "== upgrade $(date -u +%T.%3NZ)"; ic --upgrade --from "$FROM"; RC=$?; echo "exit=$RC" |
| +[ $RC = 0 ] || { echo "UPGRADE REFUSED"; for f in $CB $CB.prev $CB.next; do echo " $(stat -c '%n %a %U:%G %h %s' $f 2>&1)"; done; exit 1; } |
| +for f in $CB $CB.prev; do echo " $(stat -c '%n %a %U:%G %h %s' $f) sha $(sha256sum < $f | cut -d' ' -f1)"; done |
| +test "$(sha256sum < $CB | cut -d' ' -f1)" = "$COS" && echo "console = the release console" |
| +test "$(sha256sum < $CB.prev | cut -d' ' -f1)" = "$FROM" && echo "console.prev = the old build ($FROM)" |
| +ls $CB.next 2>/dev/null && echo "console.next LEFT BEHIND" |
| +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)" = $CB ] && break; sleep 0.25; done |
| +H=$(sha256sum < /proc/$p/exe | cut -d' ' -f1); echo "console pid $p exe $(readlink /proc/$p/exe) sha256 $H"; [ "$H" = "$COS" ] && echo "running = the release console" |
| +tr '\0' '\n' < "/proc/$p/environ" | grep '^CARLOS_HOST_CLAIM=' |
| +systemctl show console.service -p NRestarts -p ActiveState -p ExecMainStartTimestamp | tr '\n' ' '; echo |
| +for i in $(seq 1 40); 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/)" |
| +journalctl -u console.service --since "-2min" --no-pager | grep -iE "guard|refus|floor|error" | tail -5 |
| +echo "== console-report (rev $REV) $(date -u +%T.%3NZ)" |
| +/opt/carlos/carlos system claims console-report --bucket harness-deployment --aws-region eu-west-1 --expect-revision "$REV" --console-id "$CID" --public-key "$PUB" --dry-run; echo "dry exit=$?" |
| +/opt/carlos/carlos system claims console-report --bucket harness-deployment --aws-region eu-west-1 --expect-revision "$REV" --console-id "$CID" --public-key "$PUB"; echo "exit=$?" |
| +echo "== the same upgrade again $(date -u +%T.%3NZ)" |
| +ic --upgrade --from "$FROM"; echo "exit=$?" |
| +for f in $CB $CB.prev; do echo " $(stat -c '%n %a %U:%G %h %s' $f) sha $(sha256sum < $f | cut -c1-16)"; done |
| +case "$SRC" in /root/*) shred -u "$SRC" && echo "shredded $SRC";; esac |
| +BOX |
diff --git a/harness/scenarios/cohort1/blocks/r10-prep.host.sh b/harness/scenarios/cohort1/blocks/r10-prep.host.sh| new file mode 100644 |
| index 000000000..81e2e7a54 |
| --- /dev/null |
| +++ b/harness/scenarios/cohort1/blocks/r10-prep.host.sh |
| @@ -0,0 +1,10 @@ |
| +#!/bin/bash |
| +# Run 10 prep (on host, root): free the harness tag v0.28.8 on the host. The bucket lineage of |
| +# pre-0285/post-0285 (from s7) has published only v0.28.5 and v0.28.6, so v0.28.8 is free there; but run 6 |
| +# left a v0.28.8 (= 8a313548) release directory on the host and in the operator's home. They are renamed |
| +# aside (never deleted; the artefacts are also in s3://carlos-harness-640012953448/artefacts/v0.28.8-8a313548/). |
| +set -euo pipefail |
| +for d in /root/harness/release/v0.28.8 /home/operator/release-v0.28.8; do |
| + if [ -d "$d" ] && [ ! -e "$d-run6-8a313548" ]; then mv "$d" "$d-run6-8a313548"; echo "moved aside $d -> $d-run6-8a313548"; fi |
| +done |
| +ls -d /root/harness/release/v0.28.8* /home/operator/release-v0.28.8* 2>&1 |