carlos / platform Public

harness: boxes from host-init a0b3f5a with pre-boot shims, signer, snapshot base (step 5)

Layout probe: /opt/carlos carlos:carlos, OpenProtected refuses, which
is defect 1's precondition reproduced from the infrastructure's own
user_data.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude agent, operated by paul@keymail.dev f434a425dce8c606cd4b743854385f5207f3ddc3 parent c5069bd
10 files changed, +501 −0
  • harness/RUNLOG.md +57 −0
  • harness/boxes/boxes-up.sh +86 −0
  • harness/boxes/layout-probe.sh +15 −0
  • harness/boxes/shims/sysctl +38 −0
  • harness/boxes/shims/systemd-zram-setup@.service +11 −0
  • harness/infra-copies/747f699/dev/host-init.sh +53 −0
  • harness/infra-copies/PROVENANCE.md +13 −0
  • harness/infra-copies/a0b3f5a/dev/host-init.sh +50 −0
  • harness/infra-copies/a0b3f5a/scripts/bootstrap-box.sh +80 −0
  • harness/infra-copies/a0b3f5a/scripts/update-platform-binary.sh +98 −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	324.788s
?   	github.com/carlosframework/platform/cmd/changelog	[no test files]
ok  	github.com/carlosframework/platform/cmd/console	3.517s
ok  	github.com/carlosframework/platform/cmd/moveprobe	93.871s
ok  	github.com/carlosframework/platform/cmd/zddprobe	0.738s
ok  	github.com/carlosframework/platform/internal/activator	252.016s
ok  	github.com/carlosframework/platform/internal/agentsock	0.028s
ok  	github.com/carlosframework/platform/internal/alerting	0.006s
ok  	github.com/carlosframework/platform/internal/analytics	0.034s
ok  	github.com/carlosframework/platform/internal/appconfig	2.801s
ok  	github.com/carlosframework/platform/internal/apperr	0.138s
ok  	github.com/carlosframework/platform/internal/applog	0.232s
ok  	github.com/carlosframework/platform/internal/awsinv	0.009s
ok  	github.com/carlosframework/platform/internal/boxchoice	0.006s
ok  	github.com/carlosframework/platform/internal/boxid	0.552s
?   	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.018s
ok  	github.com/carlosframework/platform/internal/caps	0.016s
ok  	github.com/carlosframework/platform/internal/certwarm	0.008s
ok  	github.com/carlosframework/platform/internal/cgroup	0.759s
ok  	github.com/carlosframework/platform/internal/changelog	0.461s
ok  	github.com/carlosframework/platform/internal/claimactivation	1.153s
ok  	github.com/carlosframework/platform/internal/clamd	0.058s
?   	github.com/carlosframework/platform/internal/cliflag	[no test files]
ok  	github.com/carlosframework/platform/internal/console	411.264s
?   	github.com/carlosframework/platform/internal/controlname	[no test files]
?   	github.com/carlosframework/platform/internal/controlsock	[no test files]
ok  	github.com/carlosframework/platform/internal/dbdoor	5.684s
ok  	github.com/carlosframework/platform/internal/dbdoor/dbdoortest	0.015s
ok  	github.com/carlosframework/platform/internal/dbverify	0.008s
ok  	github.com/carlosframework/platform/internal/dnsrec	0.004s
ok  	github.com/carlosframework/platform/internal/docsite	0.007s
ok  	github.com/carlosframework/platform/internal/domains	2.548s
ok  	github.com/carlosframework/platform/internal/doorkey	0.009s
ok  	github.com/carlosframework/platform/internal/economics	0.005s
ok  	github.com/carlosframework/platform/internal/edge	46.117s
?   	github.com/carlosframework/platform/internal/edgeproof	[no test files]
ok  	github.com/carlosframework/platform/internal/edgesfile	0.017s
ok  	github.com/carlosframework/platform/internal/fleetapi	0.163s
ok  	github.com/carlosframework/platform/internal/gate	1.749s
ok  	github.com/carlosframework/platform/internal/genselect	0.024s
ok  	github.com/carlosframework/platform/internal/geo	0.032s
ok  	github.com/carlosframework/platform/internal/geoip	0.049s
ok  	github.com/carlosframework/platform/internal/historyreadback	0.229s
ok  	github.com/carlosframework/platform/internal/host	189.601s
ok  	github.com/carlosframework/platform/internal/hostactors	6.700s
ok  	github.com/carlosframework/platform/internal/hostactors/awsmembership	0.005s
ok  	github.com/carlosframework/platform/internal/hostbox	3.291s
ok  	github.com/carlosframework/platform/internal/hostclaim	0.996s
ok  	github.com/carlosframework/platform/internal/hostenv	0.010s
ok  	github.com/carlosframework/platform/internal/hostevidence	0.006s
ok  	github.com/carlosframework/platform/internal/hostexec	7.063s
ok  	github.com/carlosframework/platform/internal/hostfence	0.042s
ok  	github.com/carlosframework/platform/internal/hostfiles	11.293s
ok  	github.com/carlosframework/platform/internal/hostfloor	0.025s
ok  	github.com/carlosframework/platform/internal/hostguard	1.028s
ok  	github.com/carlosframework/platform/internal/hostops	2.404s
?   	github.com/carlosframework/platform/internal/hostops/fencerelease	[no test files]
ok  	github.com/carlosframework/platform/internal/hostops/internal/fencerelease	0.009s
ok  	github.com/carlosframework/platform/internal/hostquarantine	0.006s
ok  	github.com/carlosframework/platform/internal/hostrelocate	0.840s
ok  	github.com/carlosframework/platform/internal/hostresolve	0.308s
ok  	github.com/carlosframework/platform/internal/hostwrite	0.005s
ok  	github.com/carlosframework/platform/internal/infraview	0.006s
ok  	github.com/carlosframework/platform/internal/instancectl	5.299s
ok  	github.com/carlosframework/platform/internal/instanceexec	2.948s
ok  	github.com/carlosframework/platform/internal/instancefs	0.009s
ok  	github.com/carlosframework/platform/internal/instancekey	0.005s
ok  	github.com/carlosframework/platform/internal/instanceupdates	0.011s
ok  	github.com/carlosframework/platform/internal/layout	1.944s
ok  	github.com/carlosframework/platform/internal/lbhealth	0.025s
ok  	github.com/carlosframework/platform/internal/lease	10.003s
ok  	github.com/carlosframework/platform/internal/lease/leasetest	0.006s
ok  	github.com/carlosframework/platform/internal/ledger	0.037s
ok  	github.com/carlosframework/platform/internal/mail	0.273s
ok  	github.com/carlosframework/platform/internal/maintenance	0.104s
ok  	github.com/carlosframework/platform/internal/maintenanceexec	5.793s
ok  	github.com/carlosframework/platform/internal/maintenanceguard	0.103s
ok  	github.com/carlosframework/platform/internal/metrics	0.008s
ok  	github.com/carlosframework/platform/internal/moves	23.439s
ok  	github.com/carlosframework/platform/internal/moves/archive	1.475s
ok  	github.com/carlosframework/platform/internal/objstore	0.288s
ok  	github.com/carlosframework/platform/internal/ops	0.248s
ok  	github.com/carlosframework/platform/internal/park	0.300s
ok  	github.com/carlosframework/platform/internal/privatefile	0.016s
2026/10/20 01:00:05 provision: listing apps/bab/blog/instances/: list refused — its records are unseen this pass
2026/10/20 01:00:05 provision: listing apps/bab/: listdirs refused — its records are unseen this pass
2026/10/20 01:00:05 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:05 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:05 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:05 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/20 01:00:05 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/20 01:00:05 provision: skipping record apps/bac/tito/instances/one.example.com.json: unreadable: read refused
2026/10/20 01:00:05 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/20 01:00:05 provision: an app's records could not be listed: they are skipped
2026/10/20 01:00:05 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 01:00:05 provision: remove retired instance route shop.example: provision: claim admission unavailable
2026/10/20 01:00:05 provision: remove retired instance route shop.example: provision: claim admission unavailable
2026/10/20 01:00:05 provision: remove retired sidecar route worker.sidecar.internal: provision: claim admission unavailable
2026/10/20 01:00:05 provision: remove retired sidecar route worker.sidecar.internal: provision: claim admission unavailable
2026/10/20 01:00:05 provision: claim install acme.go.tito.io: provision: claim admission unavailable
2026/10/20 01:00:05 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:05 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/20 01:00:05 provision: claim install bot.eleven.bac.sidecar.internal: provision: claim admission unavailable
2026/10/20 01:00:05 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 01:00:05 provision: claim install bot.eleven.bac.sidecar.internal: registry: claim row ownership changed or unknown
2026/10/20 01:00: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 01:00:05 provision: acme.go.tito.io: not minting this pass: the box's layout intent could not be read: no sealed config
2026/10/20 01:00:05 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:05 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00: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 01:00:05 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 01:00:05 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 01:00: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 01:00:05 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00: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 01:00:05 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 01:00:05 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 01:00:05 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:05 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/20 01:00:05 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:05 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/20 01:00: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 01:00:05 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 01:00:05 provision: claim install bot.eleven.bac.sidecar.internal: registry: claim row ownership changed or unknown
2026/10/20 01:00:05 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 01:00:05 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:05 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 01:00: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 01:00:05 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:05 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:05 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:05 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 01:00:05 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:05 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 01:00:05 provision: skipping record apps/bac/tito/instances/new.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 01:00:05 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 01:00:05 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 01:00:05 provision: skipping record apps/bac/tito/instances/new.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 01:00:05 provision: minted instance route re.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:05 provision: minted instance route rf.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:05 provision: minted instance route rg.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:05 provision: minted instance route rh.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:05 provision: minted instance route ra.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:05 provision: minted instance route rd.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:05 provision: minted instance route ri.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:05 provision: minted instance route rj.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:05 provision: minted instance route rk.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:05 provision: minted instance route rl.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:05 provision: minted instance route rb.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:05 provision: minted instance route rc.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route rb.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route rc.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route rd.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route ra.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: skipping record apps/bac/tito/instances/rb.go.tito.io.json: read failed: read refused
2026/10/20 01:00:06 provision: skipping record apps/bac/tito/instances/rb.go.tito.io.json: read failed: read refused
2026/10/20 01:00:06 provision: minted instance route re.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route x.appa.example (app "appa" acct "bac")
2026/10/20 01:00:06 provision: minted instance route x.appf.example (app "appf" acct "bac")
2026/10/20 01:00:06 provision: minted instance route x.appg.example (app "appg" acct "bac")
2026/10/20 01:00:06 provision: minted instance route x.appi.example (app "appi" acct "bac")
2026/10/20 01:00:06 provision: minted instance route x.appb.example (app "appb" acct "bac")
2026/10/20 01:00:06 provision: minted instance route x.appc.example (app "appc" acct "bac")
2026/10/20 01:00:06 provision: minted instance route x.appd.example (app "appd" acct "bac")
2026/10/20 01:00:06 provision: minted instance route x.appe.example (app "appe" acct "bac")
2026/10/20 01:00:06 provision: minted instance route x.apph.example (app "apph" acct "bac")
2026/10/20 01:00:06 provision: minted instance route x.appj.example (app "appj" acct "bac")
2026/10/20 01:00:06 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 01:00:06 provision: minted instance route r0099.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0016.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0029.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0043.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0117.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0127.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0045.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0050.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0060.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0105.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0022.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0077.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0113.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0126.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0007.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0012.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0035.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0064.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0091.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0102.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0024.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0027.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0101.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0104.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0056.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0071.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0087.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0121.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0065.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0088.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0055.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0019.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0059.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0109.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0116.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0123.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0010.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0020.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0005.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0084.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0120.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0046.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0075.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0128.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0002.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0013.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0068.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0073.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0079.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0106.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0119.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0039.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0051.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0094.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0100.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0112.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0122.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0000.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0028.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0044.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0097.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0054.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0015.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0049.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0057.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0067.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0129.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0089.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0090.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0111.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0053.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0086.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0096.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0078.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0083.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0085.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0011.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0017.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0025.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0038.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0062.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0069.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0072.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0023.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0118.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0063.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0093.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0103.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0009.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0108.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0006.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0058.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0008.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0037.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0041.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0048.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0092.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0098.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0124.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0061.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0074.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0107.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0014.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0047.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0114.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0001.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0026.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0032.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0052.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0066.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0082.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0110.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0003.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0021.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0080.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0115.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0081.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0125.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0095.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0004.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0030.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0031.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0033.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0018.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0034.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0036.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0040.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0042.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0070.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:06 provision: minted instance route r0076.go.tito.io (app "tito" acct "bac")
--- FAIL: TestPlan14RootReadCensus (5.02s)
    plan14_root_reads_test.go:940: root read census: 25 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/boxes
        changed root source envelope harness/boxes/shims
        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 internal/host
        changed root source envelope internal/hostfence
        changed root source envelope internal/publicrelease
        changed root source envelope internal/s3compat
        unclassified root read harness/boxes/boxes-up.sh:external file:external@0
        unclassified root read harness/boxes/layout-probe.sh:external file:external@0
        unclassified root read harness/boxes/shims/systemd-zram-setup@.service:external file:external@0
        unclassified root read harness/donor-user-data.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/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/update-platform-binary.sh:external file:external@0
        unclassified root read harness/infra/infra-setup.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 01:00:44 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 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 01:00:44 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 provision: minted service route svc.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 provision: minted instance route whole.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 provision: minted instance route console.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 provision: minted service route ha.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 provision: minted instance route shared.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 provision: converged acme.go.tito.io channel stable -> edge
2026/10/20 01:00:44 provision: converged acme.go.tito.io channel edge -> canary/rehearsal
2026/10/20 01:00:44 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: empty channel
2026/10/20 01:00:44 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 01:00:44 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 provision: converged acme.go.tito.io environment "" -> "staging"
2026/10/20 01:00:44 provision: converged acme.go.tito.io environment "staging" -> ""
2026/10/20 01:00:44 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 provision: converged acme.go.tito.io steering "" -> "latency"
2026/10/20 01:00:44 provision: converged acme.go.tito.io steering "latency" -> ""
2026/10/20 01:00:44 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 provision: converged acme.go.tito.io hibernate false -> true
2026/10/20 01:00:44 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 provision: converged acme.go.tito.io hibernate true -> false (replication "daily" cleared: only a hibernating route's rung is read)
2026/10/20 01:00:44 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 provision: converged acme.go.tito.io status-named false -> true
2026/10/20 01:00:44 provision: converged acme.go.tito.io status-named true -> false
2026/10/20 01:00:44 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 provision: minted service route ha.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 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 01:00:44 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 01:00:44 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 01:00:44 provision: minted service route whole.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 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 01:00:44 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 01:00:44 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 01:00:44 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 provision: minted service route whole.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 01:00:44 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:44 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/20 01:00:45 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: skipping accounts/bac/account.json: malformed account manifest: invalid character 'o' in literal null (expecting 'u')
2026/10/20 01:00:45 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/20 01:00:45 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: manifest bac/tito: read failed: provision: manifest bac/tito: invalid character 'o' in literal null (expecting 'u')
2026/10/20 01:00:45 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 01:00:45 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 01:00:45 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 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 01:00:45 provision: not removing acme$evil.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 01:00:45 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 01:00:45 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 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 01:00:45 provision: not removing bad-service.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 01:00:45 provision: skipping record apps/bac/tito/instances/no-channel.go.tito.io.json: empty channel
2026/10/20 01:00:45 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: skipping record apps/bac/tito/instances/no-channel.go.tito.io.json: empty channel
2026/10/20 01:00:45 provision: not removing no-channel.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 01:00:45 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 01:00:45 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 01:00:45 provision: removed retired instance route ghost.go.tito.io (record gone)
2026/10/20 01:00:45 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 01:00:45 provision: minted instance route dup.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 01:00:45 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 01:00:45 provision: removed retired instance route acme.go.tito.io (app in the trash)
2026/10/20 01:00:45 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 01:00:45 provision: removed retired static route site.go.tito.io (app in the trash)
2026/10/20 01:00:45 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 01:00:45 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 01:00:45 provision: removed retired instance route acme.go.tito.io (app in the trash)
2026/10/20 01:00:45 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 01:00:45 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 01:00:45 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 01:00:45 provision: converged acme.go.tito.io channel stable -> edge
2026/10/20 01:00:45 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 01:00:45 provision: converged acme.go.tito.io channel canary/rehearsal -> edge
2026/10/20 01:00:45 provision: converged acme.go.tito.io environment "staging" -> ""
2026/10/20 01:00:45 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 01:00:45 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 01:00:45 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 01:00:45 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 01:00:45 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 01:00:45 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 01:00:45 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 01:00:45 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 01:00:45 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/20 01:00:45 provision: dry-run: would mint instance route acme.go.tito.io (app "tito" acct "bac" channel "stable")
2026/10/20 01:00:45 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 01:00:45 provision: dry-run: would converge adopt.go.tito.io channel stable -> edge
2026/10/20 01:00:45 provision: dry-run: would converge adopt.go.tito.io environment "" -> "staging"
2026/10/20 01:00:45 provision: dry-run: would converge owned.go.tito.io channel stable -> edge
2026/10/20 01:00:45 provision: dry-run: would converge owned.go.tito.io environment "" -> "staging"
2026/10/20 01:00:45 provision: dry-run: would converge owned.go.tito.io hibernate false -> true
2026/10/20 01:00:45 provision: dry-run: would converge owned.go.tito.io seed
2026/10/20 01:00:45 provision: dry-run: would remove retired instance route gone.go.tito.io (record gone)
2026/10/20 01:00:45 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: adopted existing route adopt.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 01:00:45 provision: converged adopt.go.tito.io channel stable -> edge
2026/10/20 01:00:45 provision: converged adopt.go.tito.io environment "" -> "staging"
2026/10/20 01:00:45 provision: converged owned.go.tito.io channel stable -> edge
2026/10/20 01:00:45 provision: converged owned.go.tito.io environment "" -> "staging"
2026/10/20 01:00:45 provision: converged owned.go.tito.io hibernate false -> true
2026/10/20 01:00:45 provision: removed retired instance route gone.go.tito.io (record gone)
2026/10/20 01:00:45 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: adopted existing route story.carlosframework.com (app "story" acct "bad") — this record now owns its channel and environment
2026/10/20 01:00:45 provision: story.carlosframework.com exists but is not the route this record describes (kind "instance"/"static") — leaving it alone
2026/10/20 01:00:45 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: minted service route pub.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: minted service route pubs.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: minted instance route exec.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: minted service route loop.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: minted service route named.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: minted service route priv.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: minted instance route unit.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: minted static route pisite.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: removed retired static route site.go.tito.io (record gone)
2026/10/20 01:00:45 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: minted instance route acme-uk.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: converged acme.go.tito.io replicas "ie,uk" -> "uk"
2026/10/20 01:00:45 provision: converged acme.go.tito.io replicas "uk" -> ""
2026/10/20 01:00:45 provision: minted instance route acme-uk.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: converged acme-uk.go.tito.io replica mark true -> false
2026/10/20 01:00:45 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 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 01:00:45 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:45 provision: acme.go.tito.io: not minting this pass: the box's layout intent could not be read: store down
2026/10/20 01:00:45 provision: router.go.tito.io: not minting this pass: the box's layout intent could not be read: store down
2026/10/20 01:00:45 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 01:00:45 provision: converged acme.go.tito.io channel stable -> edge
2026/10/20 01:00:45 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/20 01:00:45 provision: not removing acme.go.tito.io (record gone): participant of a running operation
2026/10/20 01:00:45 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/20 01:00:45 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/20 01:00:45 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 01:00:45 provision: held acme.go.tito.io landing by mv_acme (was ready)
2026/10/20 01:00:45 provision: acme.go.tito.io: held restoring by rb_other, not by mv_acme; leaving it
2026/10/20 01:00:45 provision: acme.go.tito.io: the row is not this pass's (app "other" acct ""); not holding it for mv_acme
2026/10/20 01:00:45 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 01:00:45 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 01:00:45 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 01:00:46 provision: held acme.go.tito.io landing by mv_acme (was ready)
2026/10/20 01:00:46 provision: minted instance route plain.example.com (app "shop" acct "bac")
2026/10/20 01:00:46 provision: minted instance route acme.example.com (app "shop" acct "bac")
2026/10/20 01:00:46 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 01:00:46 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 01:00:46 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 01:00:46 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 01:00:46 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 01:00:46 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 01:00:46 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 01:00:46 provision: listing apps/bac/shop/instances/: list refused — its records are unseen this pass
2026/10/20 01:00:46 provision: a.shop.example.com: swapped for import sd_w5fil3txjzps5tdbktiyd4nage (the original route is journaled)
2026/10/20 01:00:46 provision: a.shop.example.com: import sd_w5fil3txjzps5tdbktiyd4nage committed: its gate is cleared and its journal row dropped
2026/10/20 01:00:46 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 01:00:46 provision: a.shop.example.com: import sd_mblx4wnjunsojtdrox62q65faq rolled back to its original route
2026/10/20 01:00:46 provision: a.shop.example.com: import sd_mblx4wnjunsojtdrox62q65faq: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/20 01:00:46 provision: a.shop.example.com: import sd_mblx4wnjunsojtdrox62q65faq is cleaned up and its journal row retired
2026/10/20 01:00:46 provision: a.shop.example.com: import sd_ukg2fvw5wdrge7g4lkgk2nmc7q rolled back to its original route
2026/10/20 01:00:46 provision: a.shop.example.com: import sd_ukg2fvw5wdrge7g4lkgk2nmc7q: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/20 01:00:46 provision: a.shop.example.com: import sd_ukg2fvw5wdrge7g4lkgk2nmc7q is cleaned up and its journal row retired
2026/10/20 01:00:46 provision: dry-run: would redo a.shop.example.com's swap record CAS for import sd_kicyrqhqq7ppvni5avpa3twtbm
2026/10/20 01:00:46 provision: dry-run: would clear a.shop.example.com's import gate
2026/10/20 01:00:46 provision: dry-run: would converge a.shop.example.com seed source
2026/10/20 01:00:46 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 01:00:46 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 01:00:46 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 01:00:46 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 01:00:46 provision: a.shop.example.com: import sd_4ejy2auesleffxgkuhlowfrgui cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/20 01:00:46 provision: a.shop.example.com: import sd_23lt446zmdjsbgbeyiw7gwr2uy cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/20 01:00:46 provision: a.shop.example.com: import sd_hivluohzljlm6k5j2f2xiro4eu is journaled, but this box cannot act on imports; its row is left alone
2026/10/20 01:00:46 provision: a.shop.example.com: import sd_votrlfpmgbf5tz7zmsjlhg6it4 is journaled, but this box cannot act on imports; its row is left alone
2026/10/20 01:00:46 provision: a.shop.example.com: import sd_mvdy62j3armalctt3d2334jzaa is journaled, but this box cannot act on imports; its row is left alone
2026/10/20 01:00:46 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 01:00:46 provision: b.shop.example.com: import sd_3vxul5rwoaawfvde5bsnkxsnt4 left alone this pass: the import journal could not be read
2026/10/20 01:00:46 provision: c.shop.example.com: import sd_a5mjmbf6z47to3ezhgkec7ohzi left alone this pass: the import journal could not be read
2026/10/20 01:00:46 provision: a.shop.example.com: import sd_q2fpb4ah44czvc23emwxwdqjhu committed: its gate is cleared and its journal row dropped
2026/10/20 01:00:46 provision: a.shop.example.com: not converging import sd_ixon5fkifp6ywerdjf7jjcmfwq: it is swapped but not committed, and the row on this box has no import gate
2026/10/20 01:00:47 provision: a.shop.example.com: not converging import sd_lj4fay7w4omcgdrticjflfxalm: it is swapped but not committed, and the row on this box has no import gate
2026/10/20 01:00:47 provision: a.shop.example.com: not converging import sd_pienpslqe4tw4i4gyl3n3zqgq4: it is placed but not committed, and the row on this box has no import gate
2026/10/20 01:00:47 provision: a.shop.example.com: not converging import sd_dzcsomjgkvalbeaup3u4k2cs4q: it is placed but not committed, and the row on this box has no import gate
2026/10/20 01:00:47 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 01:00:47 provision: converge seed source on a.shop.example.com: constraint failed: seed_source is read-only here (1811)
2026/10/20 01:00:47 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 01:00:47 provision: a.shop.example.com: import sd_fduzhpnqnwos3aj25wbhofaxx4 committed: its gate is cleared and its journal row dropped
2026/10/20 01:00:47 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 01:00:47 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:47 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 01:00:47 provision: acme.go.tito.io: not minting a seeded instance: this box does not mint nested (<nil>)
2026/10/20 01:00:47 provision: acme.go.tito.io: not minting a seeded instance: claim control is on for this box
2026/10/20 01:00:47 provision: acme.go.tito.io: aborted seed sd_hp4vfucarguei5jnpngiwmby7a: this box cannot read seed markers, and places no seed; nothing local is removed
2026/10/20 01:00:47 provision: acme.go.tito.io: aborted seed sd_hp4vfucarguei5jnpngiwmby7a rolled back (no box had swapped it)
2026/10/20 01:00:47 provision: acme.go.tito.io: not minting a seeded instance: its record does not describe a hibernating instance
2026/10/20 01:00:47 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:47 provision: removed instance route acme.go.tito.io (its seed sd_ueq7smuubvzg4pvj3iiiq7wocq was aborted); the next pass rolls it back
2026/10/20 01:00:47 provision: acme.go.tito.io: aborted seed sd_ueq7smuubvzg4pvj3iiiq7wocq: this box cannot read seed markers, and places no seed; nothing local is removed
2026/10/20 01:00:47 provision: acme.go.tito.io: aborted seed sd_ueq7smuubvzg4pvj3iiiq7wocq rolled back (no box had swapped it)
2026/10/20 01:00:47 provision: acme.go.tito.io: aborted seed sd_hsy7yyopenjf4z22ymrkefkype has a row this pass may not remove; leaving the seed aborted
2026/10/20 01:00:47 provision: acme.go.tito.io: aborted seed sd_o4pq4jyvbt56rfgl332vtuscxe rolled back (no box had swapped it)
2026/10/20 01:00:47 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:47 provision: removed instance route acme.go.tito.io (its seed sd_yneo3fzhobltipjjxlfnultxte was aborted); the next pass rolls it back
2026/10/20 01:00:47 provision: acme.go.tito.io: aborted seed sd_yneo3fzhobltipjjxlfnultxte has no route on this box: its local data is removed
2026/10/20 01:00:47 provision: acme.go.tito.io: aborted seed sd_yneo3fzhobltipjjxlfnultxte rolled back (no box had swapped it)
2026/10/20 01:00:47 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:47 provision: a.shop.example.com: swapped for import sd_fzonljb4o7qu6nigsasrmrvxdy (the original route is journaled)
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_fzonljb4o7qu6nigsasrmrvxdy rolled back to its original route
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_fzonljb4o7qu6nigsasrmrvxdy is cleaned up and its journal row retired
2026/10/20 01:00:47 provision: a.shop.example.com: swapped for import sd_bj2xc4n73m66p3wjnuokyl5gfe (the original route is journaled)
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_bj2xc4n73m66p3wjnuokyl5gfe rolled back to its original route
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_bj2xc4n73m66p3wjnuokyl5gfe is cleaned up and its journal row retired
2026/10/20 01:00:47 provision: a.shop.example.com: swapped for import sd_ah3y2xfiqcnghv2ycaj65bfv5a (the original route is journaled)
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_ah3y2xfiqcnghv2ycaj65bfv5a rolled back to its original route
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_ah3y2xfiqcnghv2ycaj65bfv5a: the host's replica is left alone: its record no longer names this seed
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_ah3y2xfiqcnghv2ycaj65bfv5a is cleaned up and its journal row retired
2026/10/20 01:00:47 provision: a.shop.example.com: swapped for import sd_z25hnkczbfhv4dkcl22iaxyj6u (the original route is journaled)
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_z25hnkczbfhv4dkcl22iaxyj6u rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_z25hnkczbfhv4dkcl22iaxyj6u rolled back to its original route
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_z25hnkczbfhv4dkcl22iaxyj6u is cleaned up and its journal row retired
2026/10/20 01:00:47 provision: a.shop.example.com: swapped for import sd_vdrsdofmjklt5dugyg43cr54ce (the original route is journaled)
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_vdrsdofmjklt5dugyg43cr54ce rollback deferred: the host is not fenced and stopped yet (stop unproven)
2026/10/20 01:00:47 provision: a.shop.example.com: swapped for import sd_yrgjwwkozivvxtar5gnbpmvhji (the original route is journaled)
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_yrgjwwkozivvxtar5gnbpmvhji is cleaned up and its journal row retired
2026/10/20 01:00:47 provision: a.shop.example.com: swapped for import sd_yr4k2ltso3wqjiuf63276pgbmy (the original route is journaled)
2026/10/20 01:00:47 provision: skipping record apps/bac/shop/instances/a.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_yr4k2ltso3wqjiuf63276pgbmy left alone this pass: its record could not be read
2026/10/20 01:00:47 provision: a.shop.example.com: swapped for import sd_2pagnxipsjukpcudxrp6ibd5yi (the original route is journaled)
2026/10/20 01:00:47 provision: skipping record apps/bac/shop/instances/a.shop.example.com.json: read failed: connection reset
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_2pagnxipsjukpcudxrp6ibd5yi left alone this pass: its record could not be read
2026/10/20 01:00:47 provision: a.shop.example.com: swapped for import sd_yz2ttlwpguenuwy72ceb53kemy (the original route is journaled)
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_yz2ttlwpguenuwy72ceb53kemy: close the import gate: constraint failed: injected (1811)
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_yz2ttlwpguenuwy72ceb53kemy rolled back to its original route
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_yz2ttlwpguenuwy72ceb53kemy is cleaned up and its journal row retired
2026/10/20 01:00:47 provision: a.shop.example.com: swapped for import sd_symnyb3b4k7fajz2gix7m6v53m (the original route is journaled)
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_symnyb3b4k7fajz2gix7m6v53m: close the import gate: constraint failed: injected (1811)
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_symnyb3b4k7fajz2gix7m6v53m rolled back to its original route
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_symnyb3b4k7fajz2gix7m6v53m is cleaned up and its journal row retired
2026/10/20 01:00:47 provision: a.shop.example.com: swapped for import sd_fjaoyqtoxed6hg7vjuzqbg4wna (the original route is journaled)
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_fjaoyqtoxed6hg7vjuzqbg4wna rollback deferred: the host is not fenced and stopped yet (injected failure at fence)
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_fjaoyqtoxed6hg7vjuzqbg4wna rolled back to its original route
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_fjaoyqtoxed6hg7vjuzqbg4wna is cleaned up and its journal row retired
2026/10/20 01:00:47 provision: a.shop.example.com: swapped for import sd_2w7hrny3sgfpq5flhlxb2suvfy (the original route is journaled)
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_2w7hrny3sgfpq5flhlxb2suvfy rolled back to its original route
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_2w7hrny3sgfpq5flhlxb2suvfy is cleaned up and its journal row retired
2026/10/20 01:00:47 provision: a.shop.example.com: swapped for import sd_lsgj6b5ij5rpyuwxepjvjr36oy (the original route is journaled)
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_lsgj6b5ij5rpyuwxepjvjr36oy: retire its instance key: injected failure at retire-key
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_lsgj6b5ij5rpyuwxepjvjr36oy rolled back to its original route
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_lsgj6b5ij5rpyuwxepjvjr36oy is cleaned up and its journal row retired
2026/10/20 01:00:47 provision: a.shop.example.com: swapped for import sd_nteqli43vii6fqlbgbp62nr7mi (the original route is journaled)
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_nteqli43vii6fqlbgbp62nr7mi rolled back to its original route
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_nteqli43vii6fqlbgbp62nr7mi is cleaned up and its journal row retired
2026/10/20 01:00:47 provision: a.shop.example.com: swapped for import sd_bgkjangk6nytguaf5bpgwmzv6u (the original route is journaled)
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_bgkjangk6nytguaf5bpgwmzv6u: remove its local data: injected failure at remove-local
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_bgkjangk6nytguaf5bpgwmzv6u rolled back to its original route
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_bgkjangk6nytguaf5bpgwmzv6u is cleaned up and its journal row retired
2026/10/20 01:00:47 provision: a.shop.example.com: swapped for import sd_5limtpwgkdsy7zu2hmc2xrxgxm (the original route is journaled)
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_5limtpwgkdsy7zu2hmc2xrxgxm rolled back to its original route
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_5limtpwgkdsy7zu2hmc2xrxgxm is cleaned up and its journal row retired
2026/10/20 01:00:47 provision: a.shop.example.com: swapped for import sd_a37sqcqoslqs5hn7h4qvbjrhde (the original route is journaled)
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_a37sqcqoslqs5hn7h4qvbjrhde: remove its local data: injected failure at remove-local-done
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_a37sqcqoslqs5hn7h4qvbjrhde rolled back to its original route
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_a37sqcqoslqs5hn7h4qvbjrhde is cleaned up and its journal row retired
2026/10/20 01:00:47 provision: a.shop.example.com: swapped for import sd_wg75gbwykthay6yl7ko3is5bom (the original route is journaled)
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_wg75gbwykthay6yl7ko3is5bom rolled back to its original route
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_wg75gbwykthay6yl7ko3is5bom is cleaned up and its journal row retired
2026/10/20 01:00:47 provision: a.shop.example.com: swapped for import sd_rxfusvzf7f6frjpy2ucx76mnyq (the original route is journaled)
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_rxfusvzf7f6frjpy2ucx76mnyq: restore the original route: constraint failed: injected (1811)
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_rxfusvzf7f6frjpy2ucx76mnyq rolled back to its original route
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_rxfusvzf7f6frjpy2ucx76mnyq is cleaned up and its journal row retired
2026/10/20 01:00:47 provision: a.shop.example.com: swapped for import sd_pf5wukwmlxwkcxcokmkq7edbwa (the original route is journaled)
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_pf5wukwmlxwkcxcokmkq7edbwa: restore the original route: constraint failed: injected (1811)
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_pf5wukwmlxwkcxcokmkq7edbwa rolled back to its original route
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_pf5wukwmlxwkcxcokmkq7edbwa is cleaned up and its journal row retired
2026/10/20 01:00:47 provision: a.shop.example.com: swapped for import sd_2aoroly56ox6zsumzz4ch7dc6e (the original route is journaled)
2026/10/20 01:00:47 provision: a.shop.example.com: import sd_2aoroly56ox6zsumzz4ch7dc6e is cleaned up and its journal row retired
2026/10/20 01:00:47 provision: a.shop.example.com: swapped for import sd_pzldmnngvr2aoomsenascxmafa (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_pzldmnngvr2aoomsenascxmafa rolled back to its original route
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_pzldmnngvr2aoomsenascxmafa: delete its snapshot: injected failure at delete-snapshot
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_pzldmnngvr2aoomsenascxmafa is cleaned up and its journal row retired
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_dseayltpqt6queuulg635j3d6y (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_dseayltpqt6queuulg635j3d6y rolled back to its original route
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_dseayltpqt6queuulg635j3d6y is cleaned up and its journal row retired
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_5z3wq2pngzohzanidhuqhsa36q (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_5z3wq2pngzohzanidhuqhsa36q rolled back to its original route
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_5z3wq2pngzohzanidhuqhsa36q: delete the host's replica: injected failure at delete-replica
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_5z3wq2pngzohzanidhuqhsa36q is cleaned up and its journal row retired
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_utousezxygc5lwkxz2wzs5olvu (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_utousezxygc5lwkxz2wzs5olvu rolled back to its original route
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_utousezxygc5lwkxz2wzs5olvu is cleaned up and its journal row retired
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_w5bmgguuqhkmdcnudlpkx6zede (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_w5bmgguuqhkmdcnudlpkx6zede rolled back to its original route
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_w5bmgguuqhkmdcnudlpkx6zede: retire its journal row: constraint failed: injected (1811)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_w5bmgguuqhkmdcnudlpkx6zede is cleaned up and its journal row retired
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_jcj7qvw4n627ybumnmsjscesfm (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_jcj7qvw4n627ybumnmsjscesfm rolled back to its original route
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_jcj7qvw4n627ybumnmsjscesfm: retire its journal row: constraint failed: injected (1811)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_jcj7qvw4n627ybumnmsjscesfm is cleaned up and its journal row retired
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_sxmvt2kb5j25i2cd54mjttsxt4 (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_sxmvt2kb5j25i2cd54mjttsxt4 rolled back to its original route
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_sxmvt2kb5j25i2cd54mjttsxt4 is cleaned up and its journal row retired
2026/10/20 01:00:48 provision: a.shop.example.com: mark import sd_sxmvt2kb5j25i2cd54mjttsxt4 rolled back: injected failure at cas
2026/10/20 01:00:48 provision: a.shop.example.com: aborted seed sd_sxmvt2kb5j25i2cd54mjttsxt4 rolled back (no box had swapped it)
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_y6jclx5n7xp3kuz6g6ejyll624 (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_y6jclx5n7xp3kuz6g6ejyll624 rolled back to its original route
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_y6jclx5n7xp3kuz6g6ejyll624 is cleaned up and its journal row retired
2026/10/20 01:00:48 provision: a.shop.example.com: aborted seed sd_y6jclx5n7xp3kuz6g6ejyll624 rolled back (no box had swapped it)
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_6tf4owijoxiwpyypuua5kes5sm (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_6tf4owijoxiwpyypuua5kes5sm rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_6tf4owijoxiwpyypuua5kes5sm rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_6tf4owijoxiwpyypuua5kes5sm rolled back to its original route
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_6tf4owijoxiwpyypuua5kes5sm is cleaned up and its journal row retired
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_whvmv25sm3l3uj2moon4fuowi4 (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_whvmv25sm3l3uj2moon4fuowi4 rolled back to its original route
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_whvmv25sm3l3uj2moon4fuowi4 is cleaned up and its journal row retired
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_gvn3757pjan4thhm6omlwytgui (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_gvn3757pjan4thhm6omlwytgui rolled back to its original route
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_gvn3757pjan4thhm6omlwytgui is cleaned up and its journal row retired
2026/10/20 01:00:48 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_cpusuyicswfpwvnacvwn2cpvdq (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_cpusuyicswfpwvnacvwn2cpvdq rolled back to its original route
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_cpusuyicswfpwvnacvwn2cpvdq is cleaned up and its journal row retired
2026/10/20 01:00:48 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_dwgsvhz63s3bwqc2rgw7seh3t4 (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_dwgsvhz63s3bwqc2rgw7seh3t4 rolled back to its original route
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_dwgsvhz63s3bwqc2rgw7seh3t4 is cleaned up and its journal row retired
2026/10/20 01:00:48 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_zdgidnuiw53t4pim3haskl7hwy (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_zdgidnuiw53t4pim3haskl7hwy rolled back to its original route
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_zdgidnuiw53t4pim3haskl7hwy is cleaned up and its journal row retired
2026/10/20 01:00:48 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_tgwqwl3zsgjqldipivsx2ozkm4 (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_tgwqwl3zsgjqldipivsx2ozkm4 rolled back to its original route
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_tgwqwl3zsgjqldipivsx2ozkm4 is cleaned up and its journal row retired
2026/10/20 01:00:48 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_md5uevmt73uxnb7c247wl3iuzu (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_md5uevmt73uxnb7c247wl3iuzu rolled back to its original route
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_md5uevmt73uxnb7c247wl3iuzu is cleaned up and its journal row retired
2026/10/20 01:00:48 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_zulv5zzjkdmjzp4eicuaerahmi (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_zulv5zzjkdmjzp4eicuaerahmi has no route on this box: its local data is removed and no route is put back
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_zulv5zzjkdmjzp4eicuaerahmi is cleaned up and its journal row retired
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_wfofu4kgjizpxnnxrjguwhasqq (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_rabjxcnlybqyw25fgv7orqolsy (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_rjlsjftgalv3ykmhb5yi3chate (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_rjlsjftgalv3ykmhb5yi3chate cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_akoylwv65dqlgakn5n5zftbm4i (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_akoylwv65dqlgakn5n5zftbm4i is not rolled back: the route changed under the fence, so nothing there is touched
2026/10/20 01:00:48 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 01:00:48 provision: a.shop.example.com: import ../not-a-seed is cleaned up and its journal row retired
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_utgqylb77apmp45ltdlbu24oie (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_vwgbugkueddrrf6cin2iqkylvy (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_rutrvqs2v6i6iwujm2unf5spfi (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_4hzjjtodgksw6h6jinmz62qtva (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_dmr3ncwaaizwoxm7fiiajcdczu (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_dmr3ncwaaizwoxm7fiiajcdczu rollback deferred: the host is not fenced and stopped yet (stop evidence unreadable)
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_4mqtr25iwwge2rzbqnt7tjspne (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_4mqtr25iwwge2rzbqnt7tjspne has no route on this box: its local data is removed and no route is put back
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_4mqtr25iwwge2rzbqnt7tjspne is cleaned up and its journal row retired
2026/10/20 01:00:48 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_27kdl4g6ohjjjiax42cl5ifxzi (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_27kdl4g6ohjjjiax42cl5ifxzi: remove its local data: injected failure at remove-local
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_27kdl4g6ohjjjiax42cl5ifxzi is not rolled back: the route at the host is not the import's, so nothing there is touched
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_w3zrinsnqsrxlrcumdgkd54why (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_w3zrinsnqsrxlrcumdgkd54why: a route appeared at the host, so its local database is left and the rollback waits
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_kdgtr3ubzjidhrwv34fsvz25de (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_kdgtr3ubzjidhrwv34fsvz25de rollback deferred: no fence generation: registry busy
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_gsixp33qscdlntfuh42xb5r2fa (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_gsixp33qscdlntfuh42xb5r2fa rollback deferred: no fence generation: the generation source answered 0
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_k7xsmtjawlpkdnarr3ohvdbgka (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_qrjkt4lw2rcnxittnilf6txtyy (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_4kje67hx4ymcjpte63bnvxjaua (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import deferred: this box cannot read the instance's env file
2026/10/20 01:00:48 provision: a.shop.example.com: import deferred: the instance's env file could not be read: a symlink
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_fw7r6z6i5dzaqv3xtb5nmyee2a (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_fw7r6z6i5dzaqv3xtb5nmyee2a rolled back to its original route
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_fw7r6z6i5dzaqv3xtb5nmyee2a is cleaned up and its journal row retired
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_76ahtuzocqlgnbpf22xvc3dmm4 (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_76ahtuzocqlgnbpf22xvc3dmm4 rolled back to its original route
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_76ahtuzocqlgnbpf22xvc3dmm4 is cleaned up and its journal row retired
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_a36lwihaabnfxvbj7caz4rogf4 (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_a36lwihaabnfxvbj7caz4rogf4 rolled back to its original route
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_a36lwihaabnfxvbj7caz4rogf4 is cleaned up and its journal row retired
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_kkfmpggbd3o4b6q3mevkuqopbq (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_kkfmpggbd3o4b6q3mevkuqopbq: retire its instance key: the env file is a symlink
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_kkfmpggbd3o4b6q3mevkuqopbq rolled back to its original route
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_kkfmpggbd3o4b6q3mevkuqopbq is cleaned up and its journal row retired
2026/10/20 01:00:48 provision: a.shop.example.com: swapped for import sd_wcgecvfamgyyusaogsohq542oe (the original route is journaled)
2026/10/20 01:00:48 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 01:00:48 provision: a.shop.example.com: swapped for import sd_lyspaz3dzjkp2mtbfgxr22fozu (the original route is journaled)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_56chkchetdl4eq5xav4y6yoerm refused: there is no route at a.shop.example.com to replace
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_nwu3vfycrhn3kcesac2lglucva refused: the route's address is 127.0.0.1:9, not 127.0.0.1:8401
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_2x5t6fpn4h6vfev3fkevgyk4gu 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 01:00:48 provision: a.shop.example.com: import sd_cqgu7kfa6hdsrjlhwuypoybe7q refused: the route's address is 127.0.0.1:9, not 127.0.0.1:8401
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_mziuxnb5uxutud2pfhtgjhrkmu refused: the route belongs to app other
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_g3vq5cpkqcz454tq657w2kcq2q refused: the route is filed under another account
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_p5eylgfp3d6myh4j2ssedmpehm refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_gsrksndxwpyyg6iaagrpqngska refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_2niynqehnugbuqmj2m66tj5rea refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_cps63cxuzwz6dqjy76ndodwyji refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_ism4tpckx3lsx6uj2uvs2yhyfa refused: the route is not an address route this import can take over (socket)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_r42kb7jcyu2oa3vva2sjnqrjke refused: the route is not an address route this import can take over (no address)
2026/10/20 01:00:48 provision: a.shop.example.com: import sd_52krayfw5crlm6jpxjxcgl46rq refused: the route is not an address route this import can take over (provisioned)
2026/10/20 01:00:49 provision: a.shop.example.com: import sd_k4zwkj2tlbsjpwcmxbjgnsixq4 refused: the route is not an address route this import can take over (kind static)
2026/10/20 01:00:49 provision: a.shop.example.com: import sd_lb6fki2ariuiqorfa5bfike6ue refused: the route is not an address route this import can take over (backing)
2026/10/20 01:00:49 provision: a.shop.example.com: import sd_thllcx7sqyjt4fhsqec2h3tw6q refused: the route is not an address route this import can take over (tunnel)
2026/10/20 01:00:49 provision: a.shop.example.com: import sd_mpnlvmyy7o3jrntfpupm3tnypy refused: the route is not an address route this import can take over (caps)
2026/10/20 01:00:49 provision: a.shop.example.com: import sd_7uj47v5rdacza4msstyf7u42py refused: the route is not an address route this import can take over (platform)
2026/10/20 01:00:49 provision: a.shop.example.com: import sd_sfviis3h426uphubh5ficktfzm refused: the route is not an address route this import can take over (canary)
2026/10/20 01:00:49 provision: a.shop.example.com: import sd_uuqej6qgyk6smxpbjqyijvhg4y refused: the route is not an address route this import can take over (kind sidecar)
2026/10/20 01:00:49 provision: a.shop.example.com: import sd_evf7fdd7ngm4dnld5j35t2fevu refused: the route is not an address route this import can take over (region)
2026/10/20 01:00:49 provision: a.shop.example.com: import sd_q3zrdaarwhdtqkexsreuhp6l3q refused: the route is not an address route this import can take over (fleet_box)
2026/10/20 01:00:49 provision: a.shop.example.com: import sd_4yqdfchr4s7kw7tpknwk4mktt4 refused: the route is not an address route this import can take over (hibernate)
2026/10/20 01:00:49 provision: a.shop.example.com: import sd_w4s5e5y3kqvidddeysml2bsi4e refused: the route is not an address route this import can take over (claim_owner)
2026/10/20 01:00:49 provision: a.shop.example.com: import sd_xe3vgnlaw7dc2obfyrbapy2xvm refused: this box does not run instances nested
2026/10/20 01:00:49 provision: a.shop.example.com: import sd_gjh6j65sfs47xn7i56zgbampei refused: this box does not run instances nested
2026/10/20 01:00:49 provision: a.shop.example.com: import sd_gtak567lzopydpevzsujpui4xy refused: claim control is on for this box
2026/10/20 01:00:49 provision: a.shop.example.com: swapped for import sd_v2hqasczbbavkqydkt52km3jl4 (the original route is journaled)
2026/10/20 01:00:49 provision: a.shop.example.com: swapped for import sd_atpjceulci6vr6dpgcteepcomq (the original route is journaled)
2026/10/20 01:00:49 provision: a.shop.example.com: import deferred: this box cannot read the legacy route assignments
2026/10/20 01:00:49 provision: a.shop.example.com: import deferred: the legacy route assignments could not be read: store down
2026/10/20 01:00:49 provision: a.shop.example.com: not swapping for import sd_r4poa5dhtq2riqabtgjbezohom: its verify hash is not a sha256
2026/10/20 01:00:49 provision: a.shop.example.com: not swapping for import sd_a7wllijmybr4yigqqdydsxj6ie: its verify hash is not a sha256
2026/10/20 01:00:49 provision: a.shop.example.com: not swapping for import sd_y3ec6b2ky2acymn2pnkohwzohi: its verify hash is not a sha256
2026/10/20 01:00:49 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 01:00:49 provision: A.shop.example.com/..: not swapping for import sd_u4cfikmyz3jl23umzkcvypumbq: its host or seed id is malformed (seeds: not a host)
2026/10/20 01:00:49 provision: a.shop.example.com: not swapping for import sd_htnig3jstkxesqwx6muehdyzfu: its record does not describe a nested, hibernating instance
2026/10/20 01:00:49 provision: a.shop.example.com: not swapping for import sd_mycwhmol3oo23u3kvqfhoqoz2e: its record does not describe a nested, hibernating instance
2026/10/20 01:00:49 provision: a.shop.example.com: not swapping for import sd_4pfqqs2dnfztzxae3tnd5vpab4: its record does not describe a nested, hibernating instance
2026/10/20 01:00:49 provision: a.shop.example.com: not swapping for import sd_qmqo5ibnwrncfi26bzttbsbl2e: its record does not describe a nested, hibernating instance
2026/10/20 01:00:49 provision: a.shop.example.com: import deferred: the box's layout intent could not be read: store down
2026/10/20 01:00:49 provision: a.shop.example.com: swapped for import sd_mp3o65x7peoyglag57lif2guga (the original route is journaled)
2026/10/20 01:00:49 provision: a.shop.example.com: import deferred: the box's nested probe did not answer: ready probe timed out
2026/10/20 01:00:49 provision: a.shop.example.com: swapped for import sd_pigfixgfpo35ddpsvccw5lrxqu (the original route is journaled)
2026/10/20 01:00:49 provision: a.shop.example.com: swapped for import sd_ekgy2xvim6gtcrdrom3jd6e6a4 (the original route is journaled)
2026/10/20 01:00:49 provision: a.shop.example.com: import deferred: the route is held by operation op_1
2026/10/20 01:00:49 provision: dry-run: would consider swapping a.shop.example.com for import sd_pak3amsrpogcgkhe47vsqkr5cm
2026/10/20 01:00:49 provision: a.shop.example.com: import sd_aqndppiy6dfrfb3jenuwn3igoy rolled back to its original route
2026/10/20 01:00:49 provision: a.shop.example.com: import sd_aqndppiy6dfrfb3jenuwn3igoy: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/20 01:00:49 provision: a.shop.example.com: import sd_aqndppiy6dfrfb3jenuwn3igoy is cleaned up and its journal row retired
2026/10/20 01:00:49 provision: a.shop.example.com: import sd_bev3cecrocdrans67ptng6k434 left alone: the import journal holds seed sd_xiwvfxknkp47ju73dsjwsewkme at swapped
2026/10/20 01:00:49 provision: a.shop.example.com: not minting import sd_7sotad6pinffpyemahod4egrtu: it is swapped but not committed, and only its swap makes its row
2026/10/20 01:00:49 provision: a.shop.example.com: not minting import sd_4zxqbjst2pneprausik7np74ei: it is placed but not committed, and only its swap makes its row
2026/10/20 01:00:49 provision: a.shop.example.com: swapped for import sd_7jxlradpaglctlvwge2fbj7w3m (the original route is journaled)
2026/10/20 01:00:49 provision: a.shop.example.com: not minting import sd_7jxlradpaglctlvwge2fbj7w3m: it is swapped but not committed, and only its swap makes its row
2026/10/20 01:00:49 provision: a.shop.example.com: not minting import sd_7jxlradpaglctlvwge2fbj7w3m: it is placed but not committed, and only its swap makes its row
2026/10/20 01:00:49 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 01:00:49 provision: removed retired sidecar route gone.eleven.bac.sidecar.internal (record gone)
2026/10/20 01:00:49 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 01:00:49 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 01:00:49 provision: converged sidecar bot.eleven.bac.sidecar.internal args ["sidecar","run"] -> ["worker","run"]
2026/10/20 01:00:49 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 01:00:49 provision: converged sidecar bot.eleven.bac.sidecar.internal ceilings 300/3600 -> 60/120
2026/10/20 01:00:49 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 01:00:49 provision: converged sidecar bot.eleven.bac.sidecar.internal channel stable -> canary/eleven
2026/10/20 01:00:49 provision: converged sidecar bot.eleven.bac.sidecar.internal environment "other" -> "relay"
2026/10/20 01:00:49 provision: converged sidecar bot.eleven.bac.sidecar.internal hibernate true -> false
2026/10/20 01:00:49 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: read failed: failStore: reads disabled under apps/bac/eleven/sidecars/
2026/10/20 01:00:49 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: malformed: invalid character 'n' looking for beginning of object key string
2026/10/20 01:00:49 provision: not removing sidecar bot.eleven.bac.sidecar.internal: its record exists but could not be read cleanly this pass
2026/10/20 01:00:49 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: empty channel
2026/10/20 01:00:49 provision: skipping sidecar record apps/bac/eleven/sidecars/held.json: empty channel
2026/10/20 01:00:49 provision: not removing sidecar held.eleven.bac.sidecar.internal: its record exists but could not be read cleanly this pass
2026/10/20 01:00:49 provision: removed retired sidecar route old.eleven.bac.sidecar.internal (record gone)
2026/10/20 01:00:49 provision: bac/eleven has sidecar records but no sidecars manifest — not minting
2026/10/20 01:00:49 provision: bac/eleven is in the trash — not minting sidecar routes for it
2026/10/20 01:00:49 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 01:00:49 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 01:00:49 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 01:00:49 provision: minted sidecar route hub.relay.bac.sidecar.internal (app "relay" acct "bac" args ["relay"])
2026/10/20 01:00:49 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 01:00:49 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 01:00:49 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 01:00:49 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 01:00:49 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 01:00:49 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 01:00:49 provision: removed retired sidecar route bot.eleven.bac.sidecar.internal (record gone)
2026/10/20 01:00:49 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 01:00:49 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 01:00:49 provision: skipping sidecar record apps/bac/relay/sidecars/hub.json: read failed: failStore: reads disabled under apps/bac/relay/sidecars/
2026/10/20 01:00:49 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 01:00:49 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 01:00:49 provision: dry-run: would mint sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" channel "stable" args ["sidecar","run"])
2026/10/20 01:00:49 provision: dry-run: would remove retired sidecar route gone.eleven.bac.sidecar.internal (record gone)
2026/10/20 01:00:49 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 01:00:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:49 provision: converged acme.go.tito.io update settings "{\"updates\":\"manual\",\"channel\":\"stable\"}" -> ""
2026/10/20 01:00:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:49 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/20 01:00:49 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/20 01:00:49 provision: acme.go.tito.io: not minted this pass: the app's update policy could not be read
2026/10/20 01:00:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:00:49 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/20 01:00:49 provision: acme.go.tito.io: not minted this pass: the app's update policy could not be read
2026/10/20 01:00:49 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	44.889s
ok  	github.com/carlosframework/platform/internal/publicrelease	0.008s
?   	github.com/carlosframework/platform/internal/regionname	[no test files]
ok  	github.com/carlosframework/platform/internal/registry	6.163s
ok  	github.com/carlosframework/platform/internal/relay	7.295s
ok  	github.com/carlosframework/platform/internal/release	26.919s
ok  	github.com/carlosframework/platform/internal/rollout	4.320s
ok  	github.com/carlosframework/platform/internal/rolloutwords	0.004s
ok  	github.com/carlosframework/platform/internal/rootaws	0.008s
ok  	github.com/carlosframework/platform/internal/rootparticipation	0.059s
ok  	github.com/carlosframework/platform/internal/rootstate	0.034s
ok  	github.com/carlosframework/platform/internal/runs	0.566s
ok  	github.com/carlosframework/platform/internal/s3compat	0.008s
ok  	github.com/carlosframework/platform/internal/safefile	0.005s
ok  	github.com/carlosframework/platform/internal/schedule	2.905s
ok  	github.com/carlosframework/platform/internal/seeds	0.010s
ok  	github.com/carlosframework/platform/internal/sim/hostlife	17.715s
ok  	github.com/carlosframework/platform/internal/sim/litestreamfacts	4.321s
ok  	github.com/carlosframework/platform/internal/status	0.114s
ok  	github.com/carlosframework/platform/internal/steering	0.006s
ok  	github.com/carlosframework/platform/internal/stopevidence	0.338s
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.013s
ok  	github.com/carlosframework/platform/internal/tunnelclient	0.010s
ok  	github.com/carlosframework/platform/internal/unixdial	0.003s
ok  	github.com/carlosframework/platform/internal/updatewords	0.006s
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.793s
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/RUNLOG.md b/harness/RUNLOG.md
index 2a441675a..212f8c99b 100644
--- a/harness/RUNLOG.md
+++ b/harness/RUNLOG.md
@@ -213,3 +213,60 @@ openssl under internal/boxid/certs/eu-west-1.pem: Verified OK
```
**Step 4: GREEN** (2026-10-20T00:53:26Z).
+
+## Step 5: boxes from host-init, shims before boot, snapshot `base`
+
+Infrastructure scripts copied verbatim (`git show`) into `harness/infra-copies/`; commits,
+refs and sha256 in `harness/infra-copies/PROVENANCE.md`. Boxes use **as-merged main**:
+`dev/host-init.sh` @ `a0b3f5a` (sha256 `f95d48b3...`). `747f699` (host-root-owned-opt) is
+copied too, for step 9's `base-opt`; both are on the host under `/root/harness/`.
+
+`harness/boxes/boxes-up.sh` (on host, 00:55-00:58 UTC): each of leo .21, sophie .22, dennis .23
+is `incus init`-ed stopped from JSON carrying `cloud-init.user-data` = host-init, and the
+digest incus holds is checked against the file (all three `f95d48b3...`). Before first boot:
+`/etc/systemd/system/systemd-zram-setup@.service` (no-op), `/usr/local/sbin/sysctl` (skips
+vm.*), fixed `/etc/machine-id` = md5("carlos-harness-<box>"). Started; cloud-init ran host-init.
+After: `systemctl mask --now amazon-ssm-agent` (+ `reset-failed`), and
+`/etc/carlos/harness-endpoint` (root:root 0644, `http://203.0.113.10:9000`). Signer .30:
+cloud-config `packages: [jq, awscli, curl, ca-certificates, openssl]`, same endpoint file,
+no host-init. Two fixes on the way, both in boxes-up.sh: incus parses instance JSON as YAML
+and refused `\ud83e` surrogate escapes (host-init's header has an emoji), so the JSON is raw
+UTF-8; and dennis's agent had crashed before the mask (no donor document, "failed to find
+agent identity") and stayed `failed`, so `reset-failed` follows the mask.
+
+Observed: on leo and sophie the SSM agent ran for about a second before the mask, took
+"identity from EC2" (the stand-in) and started registering against real SSM with MinIO keys
+(provisioning egress was open). AWS cannot accept those keys; egress is now closed.
+
+Check (`$TMPDIR/harness-build/check5.sh`, 00:58 UTC):
+
+```
+== leo (sophie and dennis identical apart from machine-id)
+cloud-init: status: done errors: [] recoverable: []
+motd: carlos host ready — awaiting bootstrap
+ssm agent: masked / inactive
+harness shim: sysctl skipped 2 vm.* line(s) from /etc/sysctl.d/90-carlos-zram.conf
+systemd-zram-setup@zram0: Result=success ActiveState=active FragmentPath=/etc/systemd/system/systemd-zram-setup@.service
+-- layout probe:
+/ root:root 755
+/opt root:root 755
+/opt/carlos carlos:carlos 755 <- defect 1's precondition, reproduced on purpose
+/opt/carlos/versions carlos:carlos 755
+/opt/carlos/live carlos:carlos 755
+/data carlos:carlos 711
+/etc/carlos root:root 755
+/run/carlos carlos:carlos 755
+OpenProtected rule for /opt/carlos/*: REFUSE: /opt/carlos owned by carlos
+-- systemctl --failed: (empty) system state: running
+== signer: cloud-init done; jq, aws (aws-cli/2.23.6), openssl, curl present
+```
+
+Snapshot `base` (`$TMPDIR/harness-build/snap-base.sh`): all five containers stopped,
+`incus snapshot create <c> base`, started. Then provisioning egress closed
+(`nft flush set inet harness egress_ports`, marker `/etc/harness/egress-closed`, which
+`harness-guard.service` honours on restart). After the restart every container is
+`running` with `systemctl --failed` empty; from leo, deb.debian.org:443 times out and
+MinIO 203.0.113.10:9000 connects. To reopen egress for re-provisioning (step 9's
+`base-opt`): `nft add element inet harness egress_ports '{ 80, 443 }'; rm /etc/harness/egress-closed`.
+
+**Step 5: GREEN** (2026-10-20T00:59:15Z).
diff --git a/harness/boxes/boxes-up.sh b/harness/boxes/boxes-up.sh
new file mode 100644
index 000000000..f931f7b47
--- /dev/null
+++ b/harness/boxes/boxes-up.sh
@@ -0,0 +1,86 @@
+#!/bin/bash
+# Step 5: boxes leo, sophie, dennis from the infrastructure repo's host-init,
+# byte for byte, plus the signer container. Run as root on the harness host.
+#
+# HOSTINIT=/root/harness/host-init.sh SHIMS=/root/harness/shims boxes-up.sh
+#
+# Order (spec §3.3, §3.4): `incus init` (stopped) with the user_data in the
+# instance config, push the shims (zram no-op unit, sysctl wrapper, fixed
+# machine-id), start, wait for cloud-init, then mask the SSM agent host-init
+# installed (B4) and write /etc/carlos/harness-endpoint (the harness build's
+# fallback, §3.7).
+set -euo pipefail
+HOSTINIT=${HOSTINIT:?path to host-init.sh}
+SHIMS=${SHIMS:?path to shims dir}
+BOXES=${BOXES:-leo sophie dennis}
+ENDPOINT=http://203.0.113.10:9000
+declare -A IP=([leo]=203.0.113.21 [sophie]=203.0.113.22 [dennis]=203.0.113.23 [signer]=203.0.113.30)
+
+T=$(mktemp -d); trap 'rm -rf "$T"' EXIT
+
+machine_id() { printf 'carlos-harness-%s' "$1" | md5sum | cut -c1-32; }
+
+create() { # name user-data-file
+ local name=$1 ud=$2
+ python3 - "$ud" "${IP[$name]}" > "$T/$name.json" <<'PY'
+import json, sys
+ud = open(sys.argv[1], "rb").read().decode()
+# Raw UTF-8, not \u escapes: incus parses this as YAML, which refuses
+# JSON's surrogate-pair escapes (host-init's header has an emoji).
+sys.stdout.buffer.write(json.dumps({"config": {"cloud-init.user-data": ud},
+ "devices": {"eth0": {"type": "nic", "network": "hbr0", "name": "eth0",
+ "ipv4.address": sys.argv[2]}}}, ensure_ascii=False).encode() + b"\n")
+PY
+ incus init images:debian/13/cloud "$name" -p box -q < "$T/$name.json"
+ # The user_data incus holds is the file, byte for byte.
+ local want got
+ want=$(sha256sum < "$ud" | cut -d' ' -f1)
+ got=$(incus query "/1.0/instances/$name" | python3 -c 'import json,sys,hashlib; print(hashlib.sha256(json.load(sys.stdin)["config"]["cloud-init.user-data"].encode()).hexdigest())')
+ [ "$want" = "$got" ] || { echo "$name: user_data digest mismatch ($want vs $got)" >&2; exit 1; }
+ echo "$name: user_data sha256 $got (= $(basename "$ud"))"
+ machine_id "$name" > "$T/machine-id"
+ incus file push "$T/machine-id" "$name/etc/machine-id" --mode 0444 -q
+}
+
+shim() { # name
+ incus file push "$SHIMS/systemd-zram-setup@.service" "$1/etc/systemd/system/systemd-zram-setup@.service" --mode 0644 -q
+ incus file push "$SHIMS/sysctl" "$1/usr/local/sbin/sysctl" --mode 0755 -q
+}
+
+for b in $BOXES; do
+ incus info "$b" >/dev/null 2>&1 && { echo "$b exists; refusing"; exit 1; }
+ create "$b" "$HOSTINIT"
+ shim "$b"
+done
+
+# The signer: not a box (no host-init); a trusted signing host stand-in with
+# jq and the aws CLI. Its key and the carlos binary come later (step 7+).
+if ! incus info signer >/dev/null 2>&1; then
+ printf '#cloud-config\npackages: [jq, awscli, curl, ca-certificates, openssl]\n' > "$T/signer-ud"
+ create signer "$T/signer-ud"
+fi
+
+for b in $BOXES signer; do incus start "$b"; done
+for b in $BOXES signer; do
+ for i in $(seq 1 60); do incus exec "$b" -- true 2>/dev/null && break; sleep 2; done
+done
+for b in $BOXES signer; do
+ echo "== $b: cloud-init"
+ incus exec "$b" -- cloud-init status --wait --long | sed -n '1,4p' || true
+done
+
+for b in $BOXES; do
+ incus exec "$b" -- systemctl mask --now amazon-ssm-agent.service
+ # An agent that had already crashed (a box with no donor document has no
+ # identity) stays "failed" under the mask; the failure is the harness's, not
+ # a platform unit's, so clear it before `systemctl --failed` is evidence.
+ incus exec "$b" -- systemctl reset-failed amazon-ssm-agent.service 2>/dev/null || true
+done
+printf '%s\n' "$ENDPOINT" > "$T/endpoint"
+for b in $BOXES signer; do
+ # Only the signer lacks /etc/carlos; on a box host-init made it, and its
+ # mode and owner are evidence, so they are not touched.
+ incus exec "$b" -- sh -c '[ -d /etc/carlos ] || install -d -m 0755 /etc/carlos'
+ incus file push "$T/endpoint" "$b/etc/carlos/harness-endpoint" --uid 0 --gid 0 --mode 0644 -q
+done
+echo "boxes-up: done"
diff --git a/harness/boxes/layout-probe.sh b/harness/boxes/layout-probe.sh
new file mode 100755
index 000000000..26e9f95aa
--- /dev/null
+++ b/harness/boxes/layout-probe.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+# Read-only layout probe (spec §8.1 P1a): owners and modes of /opt/carlos, its
+# parents and the carlos tree, against hostfloor.OpenProtected's rule
+# (internal/hostfloor/image_linux.go): every parent of a protected path must be
+# root-owned and not group- or world-writable.
+for p in / /opt /opt/carlos /opt/carlos/versions /opt/carlos/live /data /etc /etc/carlos /etc/carlos/host.env /run/carlos; do
+ [ -e "$p" ] && stat -c '%n %U:%G %a' "$p" || echo "$p (absent)"
+done
+v="ok"
+for p in / /opt /opt/carlos; do
+ o=$(stat -c %u "$p"); m=$(stat -c %a "$p")
+ if [ "$o" != 0 ]; then v="REFUSE: $p owned by $(stat -c %U "$p")"; break; fi
+ case "$m" in *[2367]?|*?[2367]) v="REFUSE: $p mode $m"; break;; esac
+done
+echo "OpenProtected rule for /opt/carlos/*: $v"
diff --git a/harness/boxes/shims/sysctl b/harness/boxes/shims/sysctl
new file mode 100755
index 000000000..ecdb6c788
--- /dev/null
+++ b/harness/boxes/shims/sysctl
@@ -0,0 +1,38 @@
+#!/bin/sh
+# harness shim H4 (spec §3.4), /usr/local/sbin/sysctl: a container's /proc/sys
+# is read-only outside net.*, so host-init's `sysctl -q -p <file>` of vm.*
+# settings would stop it under `set -e`. vm.* lines in -p files and vm.*
+# arguments are skipped and reported on stderr; everything else goes to the
+# real sysctl unchanged. Hides: vm.swappiness and vm.page-cluster.
+real=/usr/sbin/sysctl
+flags=""
+files=""
+keys=""
+want_p=0
+for a in "$@"; do
+ if [ "$want_p" = 1 ]; then files="$files $a"; want_p=0; continue; fi
+ case "$a" in
+ -p|--load) want_p=1 ;;
+ -p*) files="$files ${a#-p}" ;;
+ --load=*) files="$files ${a#--load=}" ;;
+ -*) flags="$flags $a" ;;
+ vm.*) echo "harness shim: sysctl skipped $a" >&2 ;;
+ *) keys="$keys $a" ;;
+ esac
+done
+rc=0
+for f in $files; do
+ n=$(grep -c -E '^[[:space:]]*vm\.' "$f" || true)
+ echo "harness shim: sysctl skipped $n vm.* line(s) from $f" >&2
+ tmp=$(mktemp)
+ grep -v -E '^[[:space:]]*vm\.' "$f" > "$tmp" || true
+ if grep -q -E '^[[:space:]]*[A-Za-z]' "$tmp"; then
+ $real $flags -p "$tmp" || rc=$?
+ fi
+ rm -f "$tmp"
+done
+if [ -n "$keys" ] || { [ -z "$files" ] && [ -n "$flags" ]; }; then
+ # shellcheck disable=SC2086
+ $real $flags $keys || rc=$?
+fi
+exit $rc
diff --git a/harness/boxes/shims/systemd-zram-setup@.service b/harness/boxes/shims/systemd-zram-setup@.service
new file mode 100644
index 000000000..134445fb2
--- /dev/null
+++ b/harness/boxes/shims/systemd-zram-setup@.service
@@ -0,0 +1,11 @@
+# harness shim H4 (spec §3.4): a container cannot create zram devices.
+# Overrides the systemd-zram-generator package's template, so host-init's
+# `systemctl start systemd-zram-setup@zram0.service` succeeds as a no-op
+# instead of stopping the script under `set -e`. Hides: zram swap.
+[Unit]
+Description=harness shim: no zram in a container (%i)
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/bin/echo "harness shim: zram %i skipped"
diff --git a/harness/infra-copies/747f699/dev/host-init.sh b/harness/infra-copies/747f699/dev/host-init.sh
new file mode 100755
index 000000000..dc6c28d02
--- /dev/null
+++ b/harness/infra-copies/747f699/dev/host-init.sh
@@ -0,0 +1,53 @@
+#!/bin/bash
+# 🤖 First-boot init for a carlos flagship host (Debian arm64). Deliberately
+# minimal: the carlos binary arrives via bootstrap after the box is up —
+# this script only prepares the ground the binary expects.
+set -euo pipefail
+
+# The service user and the three directories every carlos host has.
+useradd --system --home /opt/carlos --shell /usr/sbin/nologin carlos || true
+mkdir -p /data /etc/carlos
+# /opt/carlos is root's: only root passes write it, and the host floor
+# (hostfloor.OpenProtected) refuses any parent the service user owns.
+install -d -o root -g root -m 0755 /opt/carlos /opt/carlos/versions /opt/carlos/live
+chown -R carlos:carlos /data
+# 711: tenant service users (kass, ...) need traversal into their own
+# /data/<app> subdirs; contents stay private per-owner.
+chmod 0711 /data
+
+# /run/carlos is tmpfs-backed; recreate on every boot.
+cat >/etc/tmpfiles.d/carlos.conf <<'EOF'
+d /run/carlos 0755 carlos carlos -
+EOF
+systemd-tmpfiles --create /etc/tmpfiles.d/carlos.conf
+
+# Keep the OS patched; everything else ships through carlos channels.
+export DEBIAN_FRONTEND=noninteractive
+apt-get update -q
+apt-get install -qy unattended-upgrades curl awscli
+systemctl enable --now unattended-upgrades
+
+# Admin access is SSM Session Manager only — no SSH ingress exists.
+curl -fsSL -o /tmp/amazon-ssm-agent.deb \
+ "https://s3.eu-west-1.amazonaws.com/amazon-ssm-eu-west-1/latest/debian_arm64/amazon-ssm-agent.deb"
+dpkg -i /tmp/amazon-ssm-agent.deb
+systemctl enable --now amazon-ssm-agent
+
+# zram swap (memory-pressure spec §2.1) — the same three files
+# scripts/harden-box.sh writes on a live box; keep them identical.
+apt-get install -qy systemd-zram-generator
+cat >/etc/systemd/zram-generator.conf <<'EOF'
+[zram0]
+zram-size = ram / 2
+compression-algorithm = zstd
+swap-priority = 100
+EOF
+cat >/etc/sysctl.d/90-carlos-zram.conf <<'EOF'
+vm.swappiness = 180
+vm.page-cluster = 0
+EOF
+systemctl daemon-reload
+systemctl start systemd-zram-setup@zram0.service
+sysctl -q -p /etc/sysctl.d/90-carlos-zram.conf
+
+echo "carlos host ready — awaiting bootstrap" >/etc/motd
diff --git a/harness/infra-copies/PROVENANCE.md b/harness/infra-copies/PROVENANCE.md
new file mode 100644
index 000000000..30db28a9f
--- /dev/null
+++ b/harness/infra-copies/PROVENANCE.md
@@ -0,0 +1,13 @@
+# Verbatim copies from carlosframework/platform-infrastructure
+
+Copied read-only with `git show <commit>:<path>` from the local clone at
+`/home/paulca/amadan.net/carlos/platform-infrastructure` on 2026-10-20. The files are
+byte-for-byte; nothing is edited, so cloud-init and the SSM stand-in run exactly what
+the infrastructure repo holds.
+
+| File here | Repo path | Commit | Ref | sha256 |
+|---|---|---|---|---|
+| `a0b3f5a/dev/host-init.sh` | `dev/host-init.sh` | `a0b3f5a5f2221429e8fb18e69eba504704be25b7` | origin/main | `f95d48b3c9946c19...` |
+| `a0b3f5a/scripts/bootstrap-box.sh` | `scripts/bootstrap-box.sh` | `a0b3f5a5f2221429e8fb18e69eba504704be25b7` | origin/main | `46aa1642a24dde15...` |
+| `a0b3f5a/scripts/update-platform-binary.sh` | `scripts/update-platform-binary.sh` | `a0b3f5a5f2221429e8fb18e69eba504704be25b7` | origin/main | `61bf3ef8f4e6f878...` |
+| `747f699/dev/host-init.sh` | `dev/host-init.sh` | `747f699d8e48e14fd012a4ccd2f7ea830701dcee` | origin/host-root-owned-opt | `9ef0c3dbe9506571...` |
diff --git a/harness/infra-copies/a0b3f5a/dev/host-init.sh b/harness/infra-copies/a0b3f5a/dev/host-init.sh
new file mode 100755
index 000000000..498bc67b3
--- /dev/null
+++ b/harness/infra-copies/a0b3f5a/dev/host-init.sh
@@ -0,0 +1,50 @@
+#!/bin/bash
+# 🤖 First-boot init for a carlos flagship host (Debian arm64). Deliberately
+# minimal: the carlos binary arrives via bootstrap after the box is up —
+# this script only prepares the ground the binary expects.
+set -euo pipefail
+
+# The service user and the three directories every carlos host has.
+useradd --system --home /opt/carlos --shell /usr/sbin/nologin carlos || true
+mkdir -p /data /opt/carlos/versions /opt/carlos/live /etc/carlos
+chown -R carlos:carlos /data /opt/carlos
+# 711: tenant service users (kass, ...) need traversal into their own
+# /data/<app> subdirs; contents stay private per-owner.
+chmod 0711 /data
+
+# /run/carlos is tmpfs-backed; recreate on every boot.
+cat >/etc/tmpfiles.d/carlos.conf <<'EOF'
+d /run/carlos 0755 carlos carlos -
+EOF
+systemd-tmpfiles --create /etc/tmpfiles.d/carlos.conf
+
+# Keep the OS patched; everything else ships through carlos channels.
+export DEBIAN_FRONTEND=noninteractive
+apt-get update -q
+apt-get install -qy unattended-upgrades curl awscli
+systemctl enable --now unattended-upgrades
+
+# Admin access is SSM Session Manager only — no SSH ingress exists.
+curl -fsSL -o /tmp/amazon-ssm-agent.deb \
+ "https://s3.eu-west-1.amazonaws.com/amazon-ssm-eu-west-1/latest/debian_arm64/amazon-ssm-agent.deb"
+dpkg -i /tmp/amazon-ssm-agent.deb
+systemctl enable --now amazon-ssm-agent
+
+# zram swap (memory-pressure spec §2.1) — the same three files
+# scripts/harden-box.sh writes on a live box; keep them identical.
+apt-get install -qy systemd-zram-generator
+cat >/etc/systemd/zram-generator.conf <<'EOF'
+[zram0]
+zram-size = ram / 2
+compression-algorithm = zstd
+swap-priority = 100
+EOF
+cat >/etc/sysctl.d/90-carlos-zram.conf <<'EOF'
+vm.swappiness = 180
+vm.page-cluster = 0
+EOF
+systemctl daemon-reload
+systemctl start systemd-zram-setup@zram0.service
+sysctl -q -p /etc/sysctl.d/90-carlos-zram.conf
+
+echo "carlos host ready — awaiting bootstrap" >/etc/motd
diff --git a/harness/infra-copies/a0b3f5a/scripts/bootstrap-box.sh b/harness/infra-copies/a0b3f5a/scripts/bootstrap-box.sh
new file mode 100755
index 000000000..b3fc151d7
--- /dev/null
+++ b/harness/infra-copies/a0b3f5a/scripts/bootstrap-box.sh
@@ -0,0 +1,80 @@
+#!/bin/bash
+# 🤖 Bootstrap a carlos host over SSM: install the binary from the
+# deployment bucket, run `carlos bootstrap`, write host.env, start the
+# edge. Idempotent — safe to re-run.
+# Usage: bootstrap-box.sh <aws-profile> <instance-id> <deployment-bucket> \
+# <data-bucket> <pubkey-file> [aws-region] [carlos-region] [status-box-region]
+#
+# aws-region (default eu-west-1) is the box's own region — it sets
+# CARLOS_HIBERNATE_REGION (which data bucket region the box wakes from).
+# AWS_REGION is pinned to the DEPLOYMENT bucket's region (eu-west-1): the
+# Go SDK does not follow S3 cross-region redirects, so a region box whose
+# AWS_REGION named its own region got PermanentRedirect 301 on every
+# deployment-bucket call (status, metrics, adoption, provision — learned
+# 2026-08-11 standing up us/uk/au). The hibernate store has its own region
+# var precisely so these can differ.
+#
+# carlos-region is CARLOS_REGION, the placement scope this box serves
+# ("us"|"uk"|"au"; unset = serves ""-scoped records only). status-box-region
+# is STATUS_BOX_REGION, the free-text region word the status page and the
+# console's shared-fleet chips display ("US · N. Virginia"). Both may come
+# from the environment instead of the argument, and both are OMITTED from
+# host.env when empty — an unset region is a legal state on this box, not a
+# blank one.
+set -euo pipefail
+profile=$1; instance=$2; depbucket=$3; databucket=$4; pubfile=$5
+region=${6:-eu-west-1}
+carlosregion=${7:-${CARLOS_REGION:-}}
+boxregion=${8:-${STATUS_BOX_REGION:-}}
+pub=$(cat "$pubfile")
+
+# Appended inside the host.env heredoc below; empty keeps the file exactly as
+# it was before regions existed.
+extra=""
+if [ -n "$carlosregion" ]; then
+ extra="$extra
+CARLOS_REGION=$carlosregion"
+fi
+if [ -n "$boxregion" ]; then
+ extra="$extra
+STATUS_BOX_REGION=\"$boxregion\""
+fi
+d=$(mktemp -d)
+
+cat > "$d/bootstrap.sh" <<EOF
+set -e
+aws s3 cp s3://$depbucket/bootstrap/carlos /opt/carlos/carlos.new --no-progress
+install -m755 -o carlos -g carlos /opt/carlos/carlos.new /opt/carlos/carlos && rm /opt/carlos/carlos.new
+/opt/carlos/carlos bootstrap
+cat > /etc/carlos/host.env <<ENV
+CARLOS_DATA_DIR=/data
+CARLOS_DEPLOYMENT_BUCKET=$depbucket
+CARLOS_RELEASE_PUBKEY=$pub
+CARLOS_HIBERNATE_BUCKET=$databucket
+CARLOS_HIBERNATE_REGION=$region
+CARLOS_HIBERNATE_PREFIX=instances
+AWS_REGION=eu-west-1$extra
+ENV
+chmod 600 /etc/carlos/host.env
+chown carlos:carlos /etc/carlos/host.env
+systemctl start carlos-edge
+sleep 3
+systemctl is-active carlos-edge
+/opt/carlos/carlos version
+EOF
+
+jq -n --rawfile s "$d/bootstrap.sh" '{commands: ($s | split("\n"))}' > "$d/params.json"
+cmdid=$(aws --profile "$profile" ssm send-command --instance-ids "$instance" \
+ --document-name AWS-RunShellScript --parameters "file://$d/params.json" \
+ --query Command.CommandId --output text)
+echo "command $cmdid sent; polling..."
+for i in $(seq 1 30); do
+ sleep 5
+ status=$(aws --profile "$profile" ssm get-command-invocation --command-id "$cmdid" \
+ --instance-id "$instance" --query Status --output text 2>/dev/null || echo Pending)
+ [ "$status" = "Success" ] || [ "$status" = "Failed" ] && break
+done
+echo "status: $status"
+aws --profile "$profile" ssm get-command-invocation --command-id "$cmdid" \
+ --instance-id "$instance" --query StandardOutputContent --output text | tail -8
+[ "$status" = "Success" ]
diff --git a/harness/infra-copies/a0b3f5a/scripts/update-platform-binary.sh b/harness/infra-copies/a0b3f5a/scripts/update-platform-binary.sh
new file mode 100755
index 000000000..d2018326d
--- /dev/null
+++ b/harness/infra-copies/a0b3f5a/scripts/update-platform-binary.sh
@@ -0,0 +1,98 @@
+#!/bin/bash
+# 🤖 Roll a new carlos platform binary onto a live box over SSM, WITHOUT
+# re-running full `carlos bootstrap` on the box: bootstrap re-chowns and
+# re-modes /data (0750 carlos:carlos), which would break static-user
+# tenants' data access (titogo's family on the Tito box; /data is
+# deliberately 0711 there). Instead: install the binary, stage the
+# embedded units into a temp root, copy them into place, tmpfiles +
+# daemon-reload, restart the edge.
+# Usage: update-platform-binary.sh <aws-profile> <instance-id> <deployment-bucket> <sha256>
+set -euo pipefail
+profile=$1; instance=$2; depbucket=$3; sha=$4
+d=$(mktemp -d)
+
+cat > "$d/update.sh" <<EOF
+set -e
+aws s3 cp s3://$depbucket/bootstrap/carlos /opt/carlos/carlos.new --no-progress
+echo "$sha /opt/carlos/carlos.new" | sha256sum -c -
+install -m755 -o carlos -g carlos /opt/carlos/carlos.new /opt/carlos/carlos
+rm /opt/carlos/carlos.new
+rm -rf /tmp/carlos-unitstage
+/opt/carlos/carlos bootstrap -root /tmp/carlos-unitstage >/dev/null
+cp /tmp/carlos-unitstage/etc/systemd/system/* /etc/systemd/system/
+# The sysusers conf must land AND run BEFORE the tmpfiles conf is applied:
+# since platform #104 the tmpfiles /run/carlos line names the carlos-sockets
+# group, and systemd-tmpfiles silently DROPS a line whose group does not
+# resolve -- the dir then isn't created at the next boot and carlos-edge
+# (ReadWritePaths=/run/carlos, no "-" prefix) can never start. Guarded so
+# the script still works when rolling BACK to a pre-#104 binary whose
+# staging root has no sysusers.d.
+if [ -f /tmp/carlos-unitstage/etc/sysusers.d/carlos.conf ]; then
+ mkdir -p /etc/sysusers.d
+ cp /tmp/carlos-unitstage/etc/sysusers.d/carlos.conf /etc/sysusers.d/carlos.conf
+ systemd-sysusers /etc/sysusers.d/carlos.conf
+fi
+cp /tmp/carlos-unitstage/etc/tmpfiles.d/carlos.conf /etc/tmpfiles.d/carlos.conf
+mkdir -p /etc/carlos/apps /run/carlos/apps
+chown carlos:carlos /run/carlos/apps
+systemd-tmpfiles --create /etc/tmpfiles.d/carlos.conf >/dev/null 2>&1 || true
+systemctl daemon-reload
+# Arm the adoption timer AND the path units, don't just refresh their unit
+# files. A past bootstrap already ran "systemctl enable", but enable ONLY
+# writes the .wants symlink -- the unit stays inactive until something starts
+# it or the box reboots. That is exactly how carlos-adopt.timer sat
+# enabled-but-never-active on the flagship: no NEXT, no LAST, no release ever
+# adopted on its own, every deploy silently needing a hand-run adoption pass.
+# The same trap applies to the relays: carlos-adopt.path (config fast
+# convergence) and carlos-stage.path (release stage relay -- without it the
+# sandboxed agent's 2s converge loop can SEE every promote and stage none of
+# them, platform PR #108/#98). --now is idempotent, so on an already-armed box
+# these are no-ops. carlos-restore-verify.timer is deliberately left inert
+# until an operator configures litestream on that box.
+systemctl enable --now carlos-adopt.timer
+systemctl enable --now carlos-adopt.path
+systemctl enable --now carlos-stage.path
+# carlos-restart.path relays `carlos restart` requests (platform #113) to a
+# root pass; unarmed, a member's restart lands but waits for the hourly
+# timer instead of seconds. Guarded so this script still runs against a
+# binary that predates the unit.
+if [ -f /etc/systemd/system/carlos-restart.path ]; then
+ systemctl enable --now carlos-restart.path
+fi
+# carlos-system-update.path relays the agent's platform self-update request
+# to a root apply, and carlos-system-recover.service recovers an interrupted
+# apply at boot (platform spec 2026-09-06-carlos-system-update §7). Both
+# must be armed by this, the last hand roll; the hourly adopt pass arms
+# them too if this is forgotten. Guarded for a binary that predates them.
+if [ -f /etc/systemd/system/carlos-system-update.path ]; then
+ systemctl enable --now carlos-system-update.path
+ systemctl enable carlos-system-recover.service
+fi
+systemctl restart carlos-edge
+sleep 3
+systemctl is-active carlos-edge
+# Post-condition, not decoration: under set -e an inactive timer fails the run
+# rather than letting a box go back into service unable to adopt.
+systemctl is-active carlos-adopt.timer
+if [ -f /etc/systemd/system/carlos-system-update.path ]; then
+ systemctl is-active carlos-system-update.path
+ systemctl is-enabled carlos-system-recover.service
+fi
+/opt/carlos/carlos version
+rm -rf /tmp/carlos-unitstage
+EOF
+
+jq -n --rawfile s "$d/update.sh" '{commands: ($s | split("\n"))}' > "$d/params.json"
+cmdid=$(aws --profile "$profile" ssm send-command --instance-ids "$instance" \
+ --document-name AWS-RunShellScript --parameters "file://$d/params.json" \
+ --query Command.CommandId --output text)
+for i in $(seq 1 36); do sleep 5
+ s=$(aws --profile "$profile" ssm get-command-invocation --command-id "$cmdid" \
+ --instance-id "$instance" --query Status --output text 2>/dev/null || echo Pending)
+ [ "$s" = Success ] || [ "$s" = Failed ] && break
+done
+echo "status: $s"
+aws --profile "$profile" ssm get-command-invocation --command-id "$cmdid" \
+ --instance-id "$instance" --query '[StandardOutputContent,StandardErrorContent]' \
+ --output text | tail -8
+[ "$s" = Success ]