carlos / platform Public

hostops, console: the limits record is a reviewed non-app family

Host-claim consoles route bucket writes through hostops, which refuses
unreviewed key families. accounts/<sqid>/limits.json is put-only and
holds no app state. The worker gets its claim fixture and probe.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude agent, operated by paul@keymail.dev 8ec5863bed9c82d70e02659a3fdd0713a2b69116 parent 20e9228
4 files changed, +67 −0
  • internal/console/claim_invariant_fixtures_test.go +1 −0
  • internal/console/claim_invariant_probes_worker_test.go +15 −0
  • internal/hostops/limits_classifier_test.go +45 −0
  • internal/hostops/mutation_classifier.go +6 −0

CI failed — run details

CI log
=== gate ===
cd launchctx && go vet ./... && go test ./... -count=1
ok  	amadan.net/carlos/platform.git/launchctx	0.013s
?   	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	344.420s
?   	github.com/carlosframework/platform/cmd/changelog	[no test files]
ok  	github.com/carlosframework/platform/cmd/console	3.613s
ok  	github.com/carlosframework/platform/cmd/moveprobe	93.496s
ok  	github.com/carlosframework/platform/cmd/zddprobe	0.714s
ok  	github.com/carlosframework/platform/internal/activator	252.962s
ok  	github.com/carlosframework/platform/internal/agentsock	0.020s
ok  	github.com/carlosframework/platform/internal/alerting	0.006s
ok  	github.com/carlosframework/platform/internal/analytics	0.022s
ok  	github.com/carlosframework/platform/internal/appconfig	2.666s
ok  	github.com/carlosframework/platform/internal/apperr	0.081s
ok  	github.com/carlosframework/platform/internal/applog	0.149s
ok  	github.com/carlosframework/platform/internal/awsinv	0.005s
ok  	github.com/carlosframework/platform/internal/boxchoice	0.006s
ok  	github.com/carlosframework/platform/internal/boxid	0.625s
?   	github.com/carlosframework/platform/internal/boxid/boxidtest	[no test files]
?   	github.com/carlosframework/platform/internal/boxid/internal/signtest	[no test files]
ok  	github.com/carlosframework/platform/internal/boxvolumes	0.010s
ok  	github.com/carlosframework/platform/internal/caps	0.016s
ok  	github.com/carlosframework/platform/internal/certwarm	0.002s
ok  	github.com/carlosframework/platform/internal/cgroup	0.726s
ok  	github.com/carlosframework/platform/internal/changelog	0.360s
ok  	github.com/carlosframework/platform/internal/claimactivation	0.979s
ok  	github.com/carlosframework/platform/internal/clamd	0.055s
?   	github.com/carlosframework/platform/internal/cliflag	[no test files]
ok  	github.com/carlosframework/platform/internal/console	427.040s
?   	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.884s
ok  	github.com/carlosframework/platform/internal/dbdoor/dbdoortest	0.024s
ok  	github.com/carlosframework/platform/internal/dbverify	0.006s
ok  	github.com/carlosframework/platform/internal/dnsrec	0.007s
ok  	github.com/carlosframework/platform/internal/docsite	0.009s
ok  	github.com/carlosframework/platform/internal/domains	2.580s
ok  	github.com/carlosframework/platform/internal/doorkey	0.009s
ok  	github.com/carlosframework/platform/internal/economics	0.007s
ok  	github.com/carlosframework/platform/internal/edge	45.417s
?   	github.com/carlosframework/platform/internal/edgeproof	[no test files]
ok  	github.com/carlosframework/platform/internal/edgesfile	0.012s
ok  	github.com/carlosframework/platform/internal/fleetapi	0.161s
ok  	github.com/carlosframework/platform/internal/gate	1.659s
ok  	github.com/carlosframework/platform/internal/genselect	0.032s
ok  	github.com/carlosframework/platform/internal/geo	0.021s
ok  	github.com/carlosframework/platform/internal/geoip	0.041s
ok  	github.com/carlosframework/platform/internal/historyreadback	0.221s
ok  	github.com/carlosframework/platform/internal/host	191.959s
ok  	github.com/carlosframework/platform/internal/hostactors	6.000s
ok  	github.com/carlosframework/platform/internal/hostactors/awsmembership	0.013s
ok  	github.com/carlosframework/platform/internal/hostbox	3.118s
ok  	github.com/carlosframework/platform/internal/hostclaim	0.694s
ok  	github.com/carlosframework/platform/internal/hostenv	0.013s
ok  	github.com/carlosframework/platform/internal/hostevidence	0.013s
ok  	github.com/carlosframework/platform/internal/hostexec	5.526s
ok  	github.com/carlosframework/platform/internal/hostfence	0.040s
ok  	github.com/carlosframework/platform/internal/hostfiles	10.678s
ok  	github.com/carlosframework/platform/internal/hostfloor	0.018s
ok  	github.com/carlosframework/platform/internal/hostguard	1.014s
ok  	github.com/carlosframework/platform/internal/hostops	1.785s
?   	github.com/carlosframework/platform/internal/hostops/fencerelease	[no test files]
ok  	github.com/carlosframework/platform/internal/hostops/internal/fencerelease	0.013s
ok  	github.com/carlosframework/platform/internal/hostquarantine	0.013s
ok  	github.com/carlosframework/platform/internal/hostrelocate	0.525s
ok  	github.com/carlosframework/platform/internal/hostresolve	0.186s
ok  	github.com/carlosframework/platform/internal/hostwrite	0.013s
ok  	github.com/carlosframework/platform/internal/infraview	0.016s
ok  	github.com/carlosframework/platform/internal/instancectl	5.244s
ok  	github.com/carlosframework/platform/internal/instanceexec	2.830s
ok  	github.com/carlosframework/platform/internal/instancefs	0.017s
ok  	github.com/carlosframework/platform/internal/instancekey	0.021s
ok  	github.com/carlosframework/platform/internal/instanceupdates	0.022s
ok  	github.com/carlosframework/platform/internal/layout	1.746s
ok  	github.com/carlosframework/platform/internal/lbhealth	0.016s
ok  	github.com/carlosframework/platform/internal/lease	10.111s
ok  	github.com/carlosframework/platform/internal/lease/leasetest	0.533s
ok  	github.com/carlosframework/platform/internal/ledger	0.012s
ok  	github.com/carlosframework/platform/internal/mail	0.191s
ok  	github.com/carlosframework/platform/internal/maintenance	0.090s
ok  	github.com/carlosframework/platform/internal/maintenanceexec	5.680s
ok  	github.com/carlosframework/platform/internal/maintenanceguard	0.102s
ok  	github.com/carlosframework/platform/internal/metrics	0.007s
ok  	github.com/carlosframework/platform/internal/moves	21.768s
ok  	github.com/carlosframework/platform/internal/moves/archive	0.849s
ok  	github.com/carlosframework/platform/internal/objstore	0.205s
ok  	github.com/carlosframework/platform/internal/ops	0.211s
ok  	github.com/carlosframework/platform/internal/park	0.238s
ok  	github.com/carlosframework/platform/internal/plans	0.006s
ok  	github.com/carlosframework/platform/internal/privatefile	0.004s
2026/10/20 20:02:29 provision: listing apps/bab/blog/instances/: list refused — its records are unseen this pass
2026/10/20 20:02:29 provision: listing apps/bab/: listdirs refused — its records are unseen this pass
2026/10/20 20:02:29 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:29 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:29 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:29 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/20 20:02:29 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/20 20:02:29 provision: skipping record apps/bac/tito/instances/one.example.com.json: unreadable: read refused
2026/10/20 20:02:29 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/20 20:02:29 provision: an app's records could not be listed: they are skipped
2026/10/20 20:02:29 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 20:02:29 provision: remove retired instance route shop.example: provision: claim admission unavailable
2026/10/20 20:02:29 provision: remove retired instance route shop.example: provision: claim admission unavailable
2026/10/20 20:02:29 provision: remove retired sidecar route worker.sidecar.internal: provision: claim admission unavailable
2026/10/20 20:02:29 provision: remove retired sidecar route worker.sidecar.internal: provision: claim admission unavailable
2026/10/20 20:02:29 provision: claim install acme.go.tito.io: provision: claim admission unavailable
2026/10/20 20:02:29 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:29 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/20 20:02:29 provision: claim install bot.eleven.bac.sidecar.internal: provision: claim admission unavailable
2026/10/20 20:02:29 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 20:02:29 provision: claim install bot.eleven.bac.sidecar.internal: registry: claim row ownership changed or unknown
2026/10/20 20:02:29 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 20:02:29 provision: acme.go.tito.io: not minting this pass: the box's layout intent could not be read: no sealed config
2026/10/20 20:02:29 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:29 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:29 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 20:02:29 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 20:02:29 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 20:02:29 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 20:02:29 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:29 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 20:02:29 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 20:02:29 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 20:02:29 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:29 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/20 20:02:29 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:29 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/20 20:02:29 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 20:02:30 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 20:02:30 provision: claim install bot.eleven.bac.sidecar.internal: registry: claim row ownership changed or unknown
2026/10/20 20:02:30 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 20:02:30 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 20:02:30 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 20:02:30 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 20:02:30 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 20:02:30 provision: skipping record apps/bac/tito/instances/new.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 20:02:30 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 20:02:30 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 20:02:30 provision: skipping record apps/bac/tito/instances/new.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 20:02:30 provision: minted instance route rd.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route rh.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route rj.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route rl.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route ra.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route re.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route rf.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route rg.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route ri.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route rk.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route rb.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route rc.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route ra.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route rb.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route rc.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route rd.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: skipping record apps/bac/tito/instances/rb.go.tito.io.json: read failed: read refused
2026/10/20 20:02:30 provision: skipping record apps/bac/tito/instances/rb.go.tito.io.json: read failed: read refused
2026/10/20 20:02:30 provision: minted instance route re.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route x.appa.example (app "appa" acct "bac")
2026/10/20 20:02:30 provision: minted instance route x.appb.example (app "appb" acct "bac")
2026/10/20 20:02:30 provision: minted instance route x.appd.example (app "appd" acct "bac")
2026/10/20 20:02:30 provision: minted instance route x.appe.example (app "appe" acct "bac")
2026/10/20 20:02:30 provision: minted instance route x.appg.example (app "appg" acct "bac")
2026/10/20 20:02:30 provision: minted instance route x.appi.example (app "appi" acct "bac")
2026/10/20 20:02:30 provision: minted instance route x.appc.example (app "appc" acct "bac")
2026/10/20 20:02:30 provision: minted instance route x.appf.example (app "appf" acct "bac")
2026/10/20 20:02:30 provision: minted instance route x.apph.example (app "apph" acct "bac")
2026/10/20 20:02:30 provision: minted instance route x.appj.example (app "appj" acct "bac")
2026/10/20 20:02:30 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 20:02:30 provision: minted instance route r0031.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0032.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0037.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0050.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0092.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0113.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0116.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0122.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0061.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0077.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0129.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0001.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0022.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0111.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0085.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0096.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0003.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0008.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0026.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0087.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0112.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0121.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0126.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0028.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0035.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0045.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0127.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0070.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0101.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0114.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0000.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0056.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0108.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0125.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0006.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0021.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0065.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0084.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0089.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0099.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0018.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0017.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0030.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0058.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0082.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0078.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0120.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0014.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0015.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0069.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0009.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0059.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0075.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0091.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0025.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0064.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0123.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0128.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0020.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0072.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0094.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0097.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0102.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0103.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0054.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0055.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0010.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0076.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0095.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0107.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0118.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0002.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0034.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0039.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0040.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0049.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0060.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0073.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0083.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0038.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0046.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0093.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0100.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0027.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0042.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0105.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0106.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0119.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0053.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0067.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0080.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0115.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0005.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0043.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0052.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0062.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0007.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0071.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0081.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0088.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0109.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0047.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0048.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0063.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0079.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0098.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0016.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0041.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0044.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0090.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0019.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0023.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0013.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0011.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0036.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0086.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0012.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0029.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0033.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0068.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0104.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0110.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0117.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0066.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0074.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0004.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0024.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0051.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0057.go.tito.io (app "tito" acct "bac")
2026/10/20 20:02:30 provision: minted instance route r0124.go.tito.io (app "tito" acct "bac")
--- FAIL: TestPlan14RootReadCensus (5.70s)
    plan14_root_reads_test.go:987: root read census: 14 discrepancies
        changed root read cmd/console/main.go:serve; review class, task, sites and digest
        changed root read internal/console/store.go:Store.migrate; review class, task, sites and digest
        changed root source envelope cmd/console
        changed root source envelope internal/console
        changed root source envelope internal/hostops
        changed root source envelope internal/plans
        unclassified root read internal/console/accountplans.go:Store.AccountPlan file:QueryRow@99
        unclassified root read internal/console/accountplans.go:Store.EnsureDefaultPlans file:Exec@98
        unclassified root read internal/console/accountplans.go:Store.MarkPlanPublished file:Exec@98
        unclassified root read internal/console/accountplans.go:Store.PlansToPublish file:Query@102
        unclassified root read internal/console/accountplans.go:Store.SetAccountPlan file:QueryRow@442
        unclassified root read internal/plans/catalog.go:LoadCatalog file:ReadFile@61
        changed legacy declaration cmd/console/main.go:serve
        changed legacy declaration internal/console/store.go:Store.migrate
--- FAIL: TestPlan9B8RecordWriteCensus (0.63s)
    plan9_b8_census_test.go:372: record-write census rejected 5 site(s); update the explicit inventory only after reviewing the source:
          changed site internal/hostops/mutation_classifier.go:ClassifyMutation: source differs from the reviewed digest
          unlisted site internal/plans/record.go:GetRecord [key:RecordKey]: review it, classify it, and update its explicit inventory entry
          unlisted site internal/plans/record.go:ParseRecord [key:RecordKey]: review it, classify it, and update its explicit inventory entry
          unlisted site internal/plans/record.go:PutRecord [key:RecordKey,sel:Put]: review it, classify it, and update its explicit inventory entry
          unlisted site internal/plans/record.go:RecordKey [key:RecordKey]: review it, classify it, and update its explicit inventory entry
2026/10/20 20:03:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:12 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 20:03:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:12 provision: minted instance route whole.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:12 provision: minted instance route console.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:12 provision: minted service route ha.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:12 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:12 provision: minted service route svc.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:12 provision: minted instance route shared.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: converged acme.go.tito.io channel stable -> edge
2026/10/20 20:03:13 provision: converged acme.go.tito.io channel edge -> canary/rehearsal
2026/10/20 20:03:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: empty channel
2026/10/20 20:03:13 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 20:03:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: converged acme.go.tito.io environment "" -> "staging"
2026/10/20 20:03:13 provision: converged acme.go.tito.io environment "staging" -> ""
2026/10/20 20:03:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: converged acme.go.tito.io steering "" -> "latency"
2026/10/20 20:03:13 provision: converged acme.go.tito.io steering "latency" -> ""
2026/10/20 20:03:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: converged acme.go.tito.io hibernate false -> true
2026/10/20 20:03:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: converged acme.go.tito.io hibernate true -> false (replication "daily" cleared: only a hibernating route's rung is read)
2026/10/20 20:03:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: converged acme.go.tito.io status-named false -> true
2026/10/20 20:03:13 provision: converged acme.go.tito.io status-named true -> false
2026/10/20 20:03:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: minted service route ha.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 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 20:03:13 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 20:03:13 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 20:03:13 provision: minted service route whole.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 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 20:03:13 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 20:03:13 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 20:03:13 provision: minted service route whole.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 20:03:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/20 20:03:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: skipping accounts/bac/account.json: malformed account manifest: invalid character 'o' in literal null (expecting 'u')
2026/10/20 20:03:13 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/20 20:03:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: manifest bac/tito: read failed: provision: manifest bac/tito: invalid character 'o' in literal null (expecting 'u')
2026/10/20 20:03:13 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 20:03:13 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 20:03:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 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 20:03:13 provision: not removing acme$evil.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 20:03:13 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 20:03:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 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 20:03:13 provision: not removing bad-service.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 20:03:13 provision: skipping record apps/bac/tito/instances/no-channel.go.tito.io.json: empty channel
2026/10/20 20:03:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: skipping record apps/bac/tito/instances/no-channel.go.tito.io.json: empty channel
2026/10/20 20:03:13 provision: not removing no-channel.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 20:03:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 20:03:13 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 20:03:13 provision: removed retired instance route ghost.go.tito.io (record gone)
2026/10/20 20:03:13 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 20:03:13 provision: minted instance route dup.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 20:03:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 20:03:13 provision: removed retired instance route acme.go.tito.io (app in the trash)
2026/10/20 20:03:13 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 20:03:13 provision: removed retired static route site.go.tito.io (app in the trash)
2026/10/20 20:03:13 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 20:03:13 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 20:03:13 provision: removed retired instance route acme.go.tito.io (app in the trash)
2026/10/20 20:03:13 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 20:03:13 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 20:03:13 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 20:03:13 provision: converged acme.go.tito.io channel stable -> edge
2026/10/20 20:03:13 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 20:03:13 provision: converged acme.go.tito.io channel canary/rehearsal -> edge
2026/10/20 20:03:13 provision: converged acme.go.tito.io environment "staging" -> ""
2026/10/20 20:03:13 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 20:03:13 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 20:03:13 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 20:03:13 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 20:03:13 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 20:03:13 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 20:03:13 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 20:03:13 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 20:03:13 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/20 20:03:13 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 20:03:13 provision: dry-run: would converge adopt.go.tito.io channel stable -> edge
2026/10/20 20:03:13 provision: dry-run: would converge adopt.go.tito.io environment "" -> "staging"
2026/10/20 20:03:13 provision: dry-run: would converge owned.go.tito.io channel stable -> edge
2026/10/20 20:03:13 provision: dry-run: would converge owned.go.tito.io environment "" -> "staging"
2026/10/20 20:03:13 provision: dry-run: would converge owned.go.tito.io hibernate false -> true
2026/10/20 20:03:13 provision: dry-run: would converge owned.go.tito.io seed
2026/10/20 20:03:13 provision: dry-run: would mint instance route acme.go.tito.io (app "tito" acct "bac" channel "stable")
2026/10/20 20:03:13 provision: dry-run: would remove retired instance route gone.go.tito.io (record gone)
2026/10/20 20:03:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: adopted existing route adopt.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 20:03:13 provision: converged adopt.go.tito.io channel stable -> edge
2026/10/20 20:03:13 provision: converged adopt.go.tito.io environment "" -> "staging"
2026/10/20 20:03:13 provision: converged owned.go.tito.io channel stable -> edge
2026/10/20 20:03:13 provision: converged owned.go.tito.io environment "" -> "staging"
2026/10/20 20:03:13 provision: converged owned.go.tito.io hibernate false -> true
2026/10/20 20:03:13 provision: removed retired instance route gone.go.tito.io (record gone)
2026/10/20 20:03:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: adopted existing route story.carlosframework.com (app "story" acct "bad") — this record now owns its channel and environment
2026/10/20 20:03:13 provision: story.carlosframework.com exists but is not the route this record describes (kind "instance"/"static") — leaving it alone
2026/10/20 20:03:13 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: minted service route pub.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: minted service route pubs.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: minted service route priv.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: minted instance route unit.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: minted instance route exec.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: minted service route loop.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: minted service route named.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: minted static route pisite.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: removed retired static route site.go.tito.io (record gone)
2026/10/20 20:03:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:14 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:14 provision: minted instance route acme-uk.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:14 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:14 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:14 provision: converged acme.go.tito.io replicas "ie,uk" -> "uk"
2026/10/20 20:03:14 provision: converged acme.go.tito.io replicas "uk" -> ""
2026/10/20 20:03:14 provision: minted instance route acme-uk.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:14 provision: converged acme-uk.go.tito.io replica mark true -> false
2026/10/20 20:03:14 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:14 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:14 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 20:03:14 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:14 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:14 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:14 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:14 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:14 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:14 provision: acme.go.tito.io: not minting this pass: the box's layout intent could not be read: store down
2026/10/20 20:03:14 provision: router.go.tito.io: not minting this pass: the box's layout intent could not be read: store down
2026/10/20 20:03:14 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 20:03:14 provision: converged acme.go.tito.io channel stable -> edge
2026/10/20 20:03:14 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/20 20:03:14 provision: not removing acme.go.tito.io (record gone): participant of a running operation
2026/10/20 20:03:14 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/20 20:03:14 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/20 20:03:14 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 20:03:14 provision: held acme.go.tito.io landing by mv_acme (was ready)
2026/10/20 20:03:14 provision: acme.go.tito.io: held restoring by rb_other, not by mv_acme; leaving it
2026/10/20 20:03:14 provision: acme.go.tito.io: the row is not this pass's (app "other" acct ""); not holding it for mv_acme
2026/10/20 20:03:14 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 20:03:14 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 20:03:14 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 20:03:14 provision: held acme.go.tito.io landing by mv_acme (was ready)
2026/10/20 20:03:14 provision: minted instance route acme.example.com (app "shop" acct "bac")
2026/10/20 20:03:14 provision: minted instance route plain.example.com (app "shop" acct "bac")
2026/10/20 20:03:14 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 20:03:14 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 20:03:14 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 20:03:14 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 20:03:14 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 20:03:14 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 20:03:14 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 20:03:14 provision: listing apps/bac/shop/instances/: list refused — its records are unseen this pass
2026/10/20 20:03:14 provision: a.shop.example.com: swapped for import sd_ukxuuraxhdgp27pb3xkoe5isyq (the original route is journaled)
2026/10/20 20:03:14 provision: a.shop.example.com: import sd_ukxuuraxhdgp27pb3xkoe5isyq committed: its gate is cleared and its journal row dropped
2026/10/20 20:03:14 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 20:03:15 provision: a.shop.example.com: import sd_lgg43hiqxw4mwp4tneooqw33pq rolled back to its original route
2026/10/20 20:03:15 provision: a.shop.example.com: import sd_lgg43hiqxw4mwp4tneooqw33pq: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/20 20:03:15 provision: a.shop.example.com: import sd_lgg43hiqxw4mwp4tneooqw33pq is cleaned up and its journal row retired
2026/10/20 20:03:15 provision: a.shop.example.com: import sd_7lg3esj5mch2elczsv2ihwjzg4 rolled back to its original route
2026/10/20 20:03:15 provision: a.shop.example.com: import sd_7lg3esj5mch2elczsv2ihwjzg4: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/20 20:03:15 provision: a.shop.example.com: import sd_7lg3esj5mch2elczsv2ihwjzg4 is cleaned up and its journal row retired
2026/10/20 20:03:15 provision: dry-run: would redo a.shop.example.com's swap record CAS for import sd_vtx5ynubhumnf6fakkan4suekm
2026/10/20 20:03:15 provision: dry-run: would clear a.shop.example.com's import gate
2026/10/20 20:03:15 provision: dry-run: would converge a.shop.example.com seed source
2026/10/20 20:03:15 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 20:03:15 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 20:03:15 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 20:03:15 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 20:03:15 provision: a.shop.example.com: import sd_mun6cdrasjykowgzrzt6hy2p2q cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/20 20:03:15 provision: a.shop.example.com: import sd_lsziz4vsrjcdlk66vt4ilri4my cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/20 20:03:15 provision: a.shop.example.com: import sd_uzfebfa77we2n4a36ui3mcg63a is journaled, but this box cannot act on imports; its row is left alone
2026/10/20 20:03:15 provision: a.shop.example.com: import sd_thok236kaxrqmmofp7ickqgypu is journaled, but this box cannot act on imports; its row is left alone
2026/10/20 20:03:15 provision: a.shop.example.com: import sd_u3iyutcg5wyufpb6xorikgfade is journaled, but this box cannot act on imports; its row is left alone
2026/10/20 20:03:15 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 20:03:15 provision: b.shop.example.com: import sd_sv6n4aufyzv2u5l6sxajvyaqmi left alone this pass: the import journal could not be read
2026/10/20 20:03:15 provision: c.shop.example.com: import sd_lgexxlwqcnepi75t2pnp23y2by left alone this pass: the import journal could not be read
2026/10/20 20:03:15 provision: a.shop.example.com: import sd_svnbijeru5iymcwrfyqig2lqoy committed: its gate is cleared and its journal row dropped
2026/10/20 20:03:15 provision: a.shop.example.com: not converging import sd_m5r2vxpmvteq63hmhhdyd2t2pa: it is swapped but not committed, and the row on this box has no import gate
2026/10/20 20:03:15 provision: a.shop.example.com: not converging import sd_a4og4l2vl5e6yyamiwrtddxq2u: it is swapped but not committed, and the row on this box has no import gate
2026/10/20 20:03:15 provision: a.shop.example.com: not converging import sd_2itmhl4buthb2aixdh3uff256e: it is placed but not committed, and the row on this box has no import gate
2026/10/20 20:03:15 provision: a.shop.example.com: not converging import sd_sovu4wpaq55s3mjxaaggkuz2ze: it is placed but not committed, and the row on this box has no import gate
2026/10/20 20:03:15 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 20:03:15 provision: converge seed source on a.shop.example.com: constraint failed: seed_source is read-only here (1811)
2026/10/20 20:03:15 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 20:03:15 provision: a.shop.example.com: import sd_qwjqe4xineo2uwuej6vgewvhfm committed: its gate is cleared and its journal row dropped
2026/10/20 20:03:15 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 20:03:15 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:15 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 20:03:15 provision: acme.go.tito.io: not minting a seeded instance: this box does not mint nested (<nil>)
2026/10/20 20:03:15 provision: acme.go.tito.io: not minting a seeded instance: claim control is on for this box
2026/10/20 20:03:15 provision: acme.go.tito.io: aborted seed sd_mdq5aiuhkspibuvxav27xayydu: this box cannot read seed markers, and places no seed; nothing local is removed
2026/10/20 20:03:15 provision: acme.go.tito.io: aborted seed sd_mdq5aiuhkspibuvxav27xayydu rolled back (no box had swapped it)
2026/10/20 20:03:15 provision: acme.go.tito.io: not minting a seeded instance: its record does not describe a hibernating instance
2026/10/20 20:03:15 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:15 provision: removed instance route acme.go.tito.io (its seed sd_t34n7qctjpaufmpn6ygdc5tffi was aborted); the next pass rolls it back
2026/10/20 20:03:15 provision: acme.go.tito.io: aborted seed sd_t34n7qctjpaufmpn6ygdc5tffi: this box cannot read seed markers, and places no seed; nothing local is removed
2026/10/20 20:03:15 provision: acme.go.tito.io: aborted seed sd_t34n7qctjpaufmpn6ygdc5tffi rolled back (no box had swapped it)
2026/10/20 20:03:15 provision: acme.go.tito.io: aborted seed sd_hzqlc77awitkmtrck5ca7iioiq has a row this pass may not remove; leaving the seed aborted
2026/10/20 20:03:15 provision: acme.go.tito.io: aborted seed sd_y57gsositaupzn6ucdg4arg6vy rolled back (no box had swapped it)
2026/10/20 20:03:15 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:15 provision: removed instance route acme.go.tito.io (its seed sd_tbltqldquacdzgsy54b2lksx2m was aborted); the next pass rolls it back
2026/10/20 20:03:15 provision: acme.go.tito.io: aborted seed sd_tbltqldquacdzgsy54b2lksx2m has no route on this box: its local data is removed
2026/10/20 20:03:15 provision: acme.go.tito.io: aborted seed sd_tbltqldquacdzgsy54b2lksx2m rolled back (no box had swapped it)
2026/10/20 20:03:15 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_duq5rojf3nsgdl6tot3wiidi54 (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_duq5rojf3nsgdl6tot3wiidi54 rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_duq5rojf3nsgdl6tot3wiidi54 is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_q6ivauqa2fpreexwko4nthtbeq (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_q6ivauqa2fpreexwko4nthtbeq rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_q6ivauqa2fpreexwko4nthtbeq is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_n4gsaf3izzepuhjldmm7dxgkui (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_n4gsaf3izzepuhjldmm7dxgkui rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_n4gsaf3izzepuhjldmm7dxgkui: the host's replica is left alone: its record no longer names this seed
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_n4gsaf3izzepuhjldmm7dxgkui is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_xf33mn37mcxvjwc77fc3nnqmjy (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_xf33mn37mcxvjwc77fc3nnqmjy rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_xf33mn37mcxvjwc77fc3nnqmjy rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_xf33mn37mcxvjwc77fc3nnqmjy is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_rpatjirawr7jd3wbuu7lylkgym (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_rpatjirawr7jd3wbuu7lylkgym rollback deferred: the host is not fenced and stopped yet (stop unproven)
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_wcjwtfi6chq7hergfs47niebra (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_wcjwtfi6chq7hergfs47niebra is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_ib7mec6kw6spnd5tmqei7xbqkm (the original route is journaled)
2026/10/20 20:03:16 provision: skipping record apps/bac/shop/instances/a.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_ib7mec6kw6spnd5tmqei7xbqkm left alone this pass: its record could not be read
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_vb2f4zg5lyqgy47bc5zkoeslpe (the original route is journaled)
2026/10/20 20:03:16 provision: skipping record apps/bac/shop/instances/a.shop.example.com.json: read failed: connection reset
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_vb2f4zg5lyqgy47bc5zkoeslpe left alone this pass: its record could not be read
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_lyaeprcguq7vfl6gj6uchjh7ti (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_lyaeprcguq7vfl6gj6uchjh7ti: close the import gate: constraint failed: injected (1811)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_lyaeprcguq7vfl6gj6uchjh7ti rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_lyaeprcguq7vfl6gj6uchjh7ti is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_xoofkw7vkfkhalmuewjoboelwe (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_xoofkw7vkfkhalmuewjoboelwe: close the import gate: constraint failed: injected (1811)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_xoofkw7vkfkhalmuewjoboelwe rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_xoofkw7vkfkhalmuewjoboelwe is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_vi6jgmf5sntd7e4kliwxcxzfpa (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_vi6jgmf5sntd7e4kliwxcxzfpa rollback deferred: the host is not fenced and stopped yet (injected failure at fence)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_vi6jgmf5sntd7e4kliwxcxzfpa rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_vi6jgmf5sntd7e4kliwxcxzfpa is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_kb2ulwfbgyw5nntozjl3amjpwa (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_kb2ulwfbgyw5nntozjl3amjpwa rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_kb2ulwfbgyw5nntozjl3amjpwa is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_evv5nvdhoiq34obvkk677hbfdq (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_evv5nvdhoiq34obvkk677hbfdq: retire its instance key: injected failure at retire-key
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_evv5nvdhoiq34obvkk677hbfdq rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_evv5nvdhoiq34obvkk677hbfdq is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_yzweexohxvaa25zzdmrbtmj4da (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_yzweexohxvaa25zzdmrbtmj4da rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_yzweexohxvaa25zzdmrbtmj4da is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_exvvc6msnfcyeknsha5nilrujq (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_exvvc6msnfcyeknsha5nilrujq: remove its local data: injected failure at remove-local
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_exvvc6msnfcyeknsha5nilrujq rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_exvvc6msnfcyeknsha5nilrujq is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_6beemxahp65unuiqdtnooxakii (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_6beemxahp65unuiqdtnooxakii rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_6beemxahp65unuiqdtnooxakii is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_qpo7qf5pw7i3ahw77bmgkaaeqa (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_qpo7qf5pw7i3ahw77bmgkaaeqa: remove its local data: injected failure at remove-local-done
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_qpo7qf5pw7i3ahw77bmgkaaeqa rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_qpo7qf5pw7i3ahw77bmgkaaeqa is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_d4ovhp34g4owdnl4y4aexx6sam (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_d4ovhp34g4owdnl4y4aexx6sam rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_d4ovhp34g4owdnl4y4aexx6sam is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_6us75rj3j62zjd646k6gfoxfgi (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_6us75rj3j62zjd646k6gfoxfgi: restore the original route: constraint failed: injected (1811)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_6us75rj3j62zjd646k6gfoxfgi rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_6us75rj3j62zjd646k6gfoxfgi is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_amjy75xj7n42dyb5t3h34fotva (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_amjy75xj7n42dyb5t3h34fotva: restore the original route: constraint failed: injected (1811)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_amjy75xj7n42dyb5t3h34fotva rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_amjy75xj7n42dyb5t3h34fotva is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_7l5cqugbrqaxsn5cnbpokje44i (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_7l5cqugbrqaxsn5cnbpokje44i is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_ozxwj2mici5mcbczcx5hedd2ga (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_ozxwj2mici5mcbczcx5hedd2ga rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_ozxwj2mici5mcbczcx5hedd2ga: delete its snapshot: injected failure at delete-snapshot
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_ozxwj2mici5mcbczcx5hedd2ga is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_qvt3cro4iqkf62xm6s2snan63e (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_qvt3cro4iqkf62xm6s2snan63e rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_qvt3cro4iqkf62xm6s2snan63e is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_zsezcqr4wfmp4y6wv77jv644ga (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_zsezcqr4wfmp4y6wv77jv644ga rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_zsezcqr4wfmp4y6wv77jv644ga: delete the host's replica: injected failure at delete-replica
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_zsezcqr4wfmp4y6wv77jv644ga is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_zhfjnmkvtfkeikg2qfvcmmxarq (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_zhfjnmkvtfkeikg2qfvcmmxarq rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_zhfjnmkvtfkeikg2qfvcmmxarq is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_aa5evhpnlkppktkmkv6dkum2ca (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_aa5evhpnlkppktkmkv6dkum2ca rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_aa5evhpnlkppktkmkv6dkum2ca: retire its journal row: constraint failed: injected (1811)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_aa5evhpnlkppktkmkv6dkum2ca is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_ycyhy2s5jinuwgyaykbpotjoua (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_ycyhy2s5jinuwgyaykbpotjoua rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_ycyhy2s5jinuwgyaykbpotjoua: retire its journal row: constraint failed: injected (1811)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_ycyhy2s5jinuwgyaykbpotjoua is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_cje5e23cr2ah6qib4octdbpiuu (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_cje5e23cr2ah6qib4octdbpiuu rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_cje5e23cr2ah6qib4octdbpiuu is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: mark import sd_cje5e23cr2ah6qib4octdbpiuu rolled back: injected failure at cas
2026/10/20 20:03:16 provision: a.shop.example.com: aborted seed sd_cje5e23cr2ah6qib4octdbpiuu rolled back (no box had swapped it)
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_s2cwla6hasyi4wtr4zh33bdhhy (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_s2cwla6hasyi4wtr4zh33bdhhy rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_s2cwla6hasyi4wtr4zh33bdhhy is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: aborted seed sd_s2cwla6hasyi4wtr4zh33bdhhy rolled back (no box had swapped it)
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_lz5gbk4stxxclxcvzmtkq2k2x4 (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_lz5gbk4stxxclxcvzmtkq2k2x4 rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_lz5gbk4stxxclxcvzmtkq2k2x4 rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_lz5gbk4stxxclxcvzmtkq2k2x4 rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_lz5gbk4stxxclxcvzmtkq2k2x4 is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_pxcfq6lgengct3fsnsoj2qe7im (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_pxcfq6lgengct3fsnsoj2qe7im rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_pxcfq6lgengct3fsnsoj2qe7im is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_sqcer5vkgxdofo6um4c4qra2de (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_sqcer5vkgxdofo6um4c4qra2de rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_sqcer5vkgxdofo6um4c4qra2de is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_fx2eyl4miydqp45n5bw4saorha (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_fx2eyl4miydqp45n5bw4saorha rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_fx2eyl4miydqp45n5bw4saorha is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_7ggu5vohj6unpxtwrwjurmmige (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_7ggu5vohj6unpxtwrwjurmmige rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_7ggu5vohj6unpxtwrwjurmmige is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_3q44for3ez3aqq4a4b5vzni3iy (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_3q44for3ez3aqq4a4b5vzni3iy rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_3q44for3ez3aqq4a4b5vzni3iy is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_7ukiy2oft6s42czc6hoezg5kri (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_7ukiy2oft6s42czc6hoezg5kri rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_7ukiy2oft6s42czc6hoezg5kri is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_3prmnksrhewubr7thhyz3oamhq (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_3prmnksrhewubr7thhyz3oamhq rolled back to its original route
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_3prmnksrhewubr7thhyz3oamhq is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_ii42stx54k5xacngzoiszlyyca (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_ii42stx54k5xacngzoiszlyyca has no route on this box: its local data is removed and no route is put back
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_ii42stx54k5xacngzoiszlyyca is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_3zzy2fuj7rlqzookoqzfkldnyy (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_o6i55limhrlkq2vhlzjdt66qu4 (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_doemajzeyzuqdz4jm7fxxalrhq (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_doemajzeyzuqdz4jm7fxxalrhq cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_wxcigetpewwqzjw3e4ocbzycli (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: import sd_wxcigetpewwqzjw3e4ocbzycli is not rolled back: the route changed under the fence, so nothing there is touched
2026/10/20 20:03:16 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 20:03:16 provision: a.shop.example.com: import ../not-a-seed is cleaned up and its journal row retired
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_n3w3f3vcu2rk5276fktbb2jsbi (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_6h26lmbptnnw7y55m5xe2ni7am (the original route is journaled)
2026/10/20 20:03:16 provision: a.shop.example.com: swapped for import sd_3o3cgdyoinr5juus2gfdldzbbi (the original route is journaled)
2026/10/20 20:03:17 provision: a.shop.example.com: swapped for import sd_eznxk3tr34z53algf6z4o7wrsi (the original route is journaled)
2026/10/20 20:03:17 provision: a.shop.example.com: swapped for import sd_ml37ji325sohaild4dxxbixzue (the original route is journaled)
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_ml37ji325sohaild4dxxbixzue rollback deferred: the host is not fenced and stopped yet (stop evidence unreadable)
2026/10/20 20:03:17 provision: a.shop.example.com: swapped for import sd_vwccu3o76qyebo7cvy63l3w67a (the original route is journaled)
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_vwccu3o76qyebo7cvy63l3w67a has no route on this box: its local data is removed and no route is put back
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_vwccu3o76qyebo7cvy63l3w67a is cleaned up and its journal row retired
2026/10/20 20:03:17 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 20:03:17 provision: a.shop.example.com: swapped for import sd_z3bak3zhv4pk262kpnhoqtrot4 (the original route is journaled)
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_z3bak3zhv4pk262kpnhoqtrot4: remove its local data: injected failure at remove-local
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_z3bak3zhv4pk262kpnhoqtrot4 is not rolled back: the route at the host is not the import's, so nothing there is touched
2026/10/20 20:03:17 provision: a.shop.example.com: swapped for import sd_mndfrahzyu42zhgbf2r55ixln4 (the original route is journaled)
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_mndfrahzyu42zhgbf2r55ixln4: a route appeared at the host, so its local database is left and the rollback waits
2026/10/20 20:03:17 provision: a.shop.example.com: swapped for import sd_w5uk4k2nfwr6hbgjkebcpvz77y (the original route is journaled)
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_w5uk4k2nfwr6hbgjkebcpvz77y rollback deferred: no fence generation: the generation source answered 0
2026/10/20 20:03:17 provision: a.shop.example.com: swapped for import sd_t442xr4csogzqb3gu24yjqmh2i (the original route is journaled)
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_t442xr4csogzqb3gu24yjqmh2i rollback deferred: no fence generation: registry busy
2026/10/20 20:03:17 provision: a.shop.example.com: swapped for import sd_7xcnls6y5w2wqz4alhkm7r4qmq (the original route is journaled)
2026/10/20 20:03:17 provision: a.shop.example.com: swapped for import sd_duiqbuvp4hxnukis6f4y5m2gy4 (the original route is journaled)
2026/10/20 20:03:17 provision: a.shop.example.com: swapped for import sd_u3zv4yjvghmekutp3hu524htzi (the original route is journaled)
2026/10/20 20:03:17 provision: a.shop.example.com: import deferred: the instance's env file could not be read: a symlink
2026/10/20 20:03:17 provision: a.shop.example.com: import deferred: this box cannot read the instance's env file
2026/10/20 20:03:17 provision: a.shop.example.com: swapped for import sd_fk4kz7bepztydwl7nxpfvzivga (the original route is journaled)
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_fk4kz7bepztydwl7nxpfvzivga rolled back to its original route
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_fk4kz7bepztydwl7nxpfvzivga is cleaned up and its journal row retired
2026/10/20 20:03:17 provision: a.shop.example.com: swapped for import sd_fdxgmfcrtukhvm44vdurpixvpm (the original route is journaled)
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_fdxgmfcrtukhvm44vdurpixvpm rolled back to its original route
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_fdxgmfcrtukhvm44vdurpixvpm is cleaned up and its journal row retired
2026/10/20 20:03:17 provision: a.shop.example.com: swapped for import sd_txz3rdpcuph2jcahcnjr6522kq (the original route is journaled)
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_txz3rdpcuph2jcahcnjr6522kq rolled back to its original route
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_txz3rdpcuph2jcahcnjr6522kq is cleaned up and its journal row retired
2026/10/20 20:03:17 provision: a.shop.example.com: swapped for import sd_24pxfseppa5soqrx5wusdezd7e (the original route is journaled)
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_24pxfseppa5soqrx5wusdezd7e: retire its instance key: the env file is a symlink
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_24pxfseppa5soqrx5wusdezd7e rolled back to its original route
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_24pxfseppa5soqrx5wusdezd7e is cleaned up and its journal row retired
2026/10/20 20:03:17 provision: a.shop.example.com: swapped for import sd_lahyxvwdo6thdur3evakx6vwde (the original route is journaled)
2026/10/20 20:03:17 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 20:03:17 provision: a.shop.example.com: swapped for import sd_62vundjmtnq7uhd3z2vsrzqn4i (the original route is journaled)
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_uq5iqtktp74l4escutx5it4dpe refused: there is no route at a.shop.example.com to replace
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_2zift5ki2rhkwjtjikvvuun3jm refused: the route's address is 127.0.0.1:9, not 127.0.0.1:8401
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_awr4gqjnl3vwcctldtuypzh7sq 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 20:03:17 provision: a.shop.example.com: import sd_5yf5co7e7uhaohnrxw7bo2hhn4 refused: the route's address is 127.0.0.1:9, not 127.0.0.1:8401
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_ww7r2qut5dqeqshkbb3yl2l7pi refused: the route belongs to app other
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_mory2ixmc5lnqb6gpdfxdpwu6m refused: the route is filed under another account
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_y33hsp4loq6jcb4h2gftc3dveq refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_shzcctstpuokwidi6osbofzjla refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_xi4bjglooy42uj4zxikk7unzdq refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_qy3m3lx5wbjx2miczdwbe5atcu refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_b3n65nwjgkdghdaxwuwodo5fri refused: the route is not an address route this import can take over (socket)
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_azhhrzb6vehosx2esbkq3z7nke refused: the route is not an address route this import can take over (no address)
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_k4u24fepjnftfxl5liohg7qxzu refused: the route is not an address route this import can take over (provisioned)
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_vhfnjebpccdosawikjejebkxxq refused: the route is not an address route this import can take over (kind static)
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_kqucs2xptwppsd7oxwdjemggzy refused: the route is not an address route this import can take over (backing)
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_l2uy536aon7w253dxc46p464ti refused: the route is not an address route this import can take over (tunnel)
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_szcj3e27uemzn3osmyz776pwsq refused: the route is not an address route this import can take over (caps)
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_cphzsi45b3xjjk3hiqjxrj7gfu refused: the route is not an address route this import can take over (platform)
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_qygckwab346vs6txx63sfeegny refused: the route is not an address route this import can take over (canary)
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_m5nv4syz2mji6hbgs24322vt44 refused: the route is not an address route this import can take over (kind sidecar)
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_7sb5aj6jpougwtmjccd3dvi5ay refused: the route is not an address route this import can take over (region)
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_akquiojauv53qxfsa72eznwh7q refused: the route is not an address route this import can take over (fleet_box)
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_766hqwjkjb6yqa3gffieafc3pi refused: the route is not an address route this import can take over (hibernate)
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_u2tfr47gdjlxznei2br4hccsem refused: the route is not an address route this import can take over (claim_owner)
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_os5vaiqt5mw5kzpzhdibk7xa5i refused: this box does not run instances nested
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_v2p24n3tyevr7dtx5uof3ebw3q refused: this box does not run instances nested
2026/10/20 20:03:17 provision: a.shop.example.com: import sd_zrqlmlkgn43fa23yjiniwqmpem refused: claim control is on for this box
2026/10/20 20:03:17 provision: a.shop.example.com: swapped for import sd_pj6tl3kx3svxcjanqsvyh272oe (the original route is journaled)
2026/10/20 20:03:17 provision: a.shop.example.com: swapped for import sd_qa5yplq3tujrx2priru2so5gne (the original route is journaled)
2026/10/20 20:03:17 provision: a.shop.example.com: import deferred: this box cannot read the legacy route assignments
2026/10/20 20:03:17 provision: a.shop.example.com: import deferred: the legacy route assignments could not be read: store down
2026/10/20 20:03:17 provision: a.shop.example.com: not swapping for import sd_hw6jtxfy5a2n3hfnmpwwi4pcce: its verify hash is not a sha256
2026/10/20 20:03:17 provision: a.shop.example.com: not swapping for import sd_kwhdzy2pzn2wux7ff7k7rtmaia: its verify hash is not a sha256
2026/10/20 20:03:17 provision: a.shop.example.com: not swapping for import sd_f3gydjee7yyknvybuqvfqqsq7a: its verify hash is not a sha256
2026/10/20 20:03:17 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 20:03:17 provision: A.shop.example.com/..: not swapping for import sd_gsitrhcmimgxpoxf6xgcrlafe4: its host or seed id is malformed (seeds: not a host)
2026/10/20 20:03:17 provision: a.shop.example.com: not swapping for import sd_tasa2r3kefkt4w2uop5evi4xie: its record does not describe a nested, hibernating instance
2026/10/20 20:03:17 provision: a.shop.example.com: not swapping for import sd_6zniejg2jh5ghszjllwyu4ozyu: its record does not describe a nested, hibernating instance
2026/10/20 20:03:17 provision: a.shop.example.com: not swapping for import sd_xie4zsldhjap6vkcp24z6ua2n4: its record does not describe a nested, hibernating instance
2026/10/20 20:03:17 provision: a.shop.example.com: not swapping for import sd_ko7gjpm6xjgkl2fchj3jaztnre: its record does not describe a nested, hibernating instance
2026/10/20 20:03:17 provision: a.shop.example.com: import deferred: the box's layout intent could not be read: store down
2026/10/20 20:03:17 provision: a.shop.example.com: swapped for import sd_k7gqenuf3sme74jfdheicahsvi (the original route is journaled)
2026/10/20 20:03:17 provision: a.shop.example.com: import deferred: the box's nested probe did not answer: ready probe timed out
2026/10/20 20:03:17 provision: a.shop.example.com: swapped for import sd_rdzccaxui23xzo5dx7h2xrfnie (the original route is journaled)
2026/10/20 20:03:17 provision: a.shop.example.com: swapped for import sd_yy5kjsvb6nn45u2okz2i4wy2ua (the original route is journaled)
2026/10/20 20:03:17 provision: a.shop.example.com: import deferred: the route is held by operation op_1
2026/10/20 20:03:17 provision: dry-run: would consider swapping a.shop.example.com for import sd_xtpv5opsggq32dxoxprxk65wuu
2026/10/20 20:03:18 provision: a.shop.example.com: import sd_efw6hftykxj7zqpo2fu4zp4o24 rolled back to its original route
2026/10/20 20:03:18 provision: a.shop.example.com: import sd_efw6hftykxj7zqpo2fu4zp4o24: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/20 20:03:18 provision: a.shop.example.com: import sd_efw6hftykxj7zqpo2fu4zp4o24 is cleaned up and its journal row retired
2026/10/20 20:03:18 provision: a.shop.example.com: import sd_4dp23m6zndwjdnzwijvxpr2wkq left alone: the import journal holds seed sd_z2zxpkfexwiosqzgyx5bub3kfa at swapped
2026/10/20 20:03:18 provision: a.shop.example.com: not minting import sd_vv6ohrl5dph3ozso2zcht6dywm: it is swapped but not committed, and only its swap makes its row
2026/10/20 20:03:18 provision: a.shop.example.com: not minting import sd_hvyl53cobnvvhxr2g67azgkyai: it is placed but not committed, and only its swap makes its row
2026/10/20 20:03:18 provision: a.shop.example.com: swapped for import sd_4pp4g53hwrsu75tc4jzbz2h5lm (the original route is journaled)
2026/10/20 20:03:18 provision: a.shop.example.com: not minting import sd_4pp4g53hwrsu75tc4jzbz2h5lm: it is swapped but not committed, and only its swap makes its row
2026/10/20 20:03:18 provision: a.shop.example.com: not minting import sd_4pp4g53hwrsu75tc4jzbz2h5lm: it is placed but not committed, and only its swap makes its row
2026/10/20 20:03:18 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 20:03:18 provision: removed retired sidecar route gone.eleven.bac.sidecar.internal (record gone)
2026/10/20 20:03:18 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 20:03:18 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 20:03:18 provision: converged sidecar bot.eleven.bac.sidecar.internal args ["sidecar","run"] -> ["worker","run"]
2026/10/20 20:03:18 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 20:03:18 provision: converged sidecar bot.eleven.bac.sidecar.internal ceilings 300/3600 -> 60/120
2026/10/20 20:03:18 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 20:03:18 provision: converged sidecar bot.eleven.bac.sidecar.internal channel stable -> canary/eleven
2026/10/20 20:03:18 provision: converged sidecar bot.eleven.bac.sidecar.internal environment "other" -> "relay"
2026/10/20 20:03:18 provision: converged sidecar bot.eleven.bac.sidecar.internal hibernate true -> false
2026/10/20 20:03:18 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: read failed: failStore: reads disabled under apps/bac/eleven/sidecars/
2026/10/20 20:03:18 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: malformed: invalid character 'n' looking for beginning of object key string
2026/10/20 20:03:18 provision: not removing sidecar bot.eleven.bac.sidecar.internal: its record exists but could not be read cleanly this pass
2026/10/20 20:03:18 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: empty channel
2026/10/20 20:03:18 provision: skipping sidecar record apps/bac/eleven/sidecars/held.json: empty channel
2026/10/20 20:03:18 provision: not removing sidecar held.eleven.bac.sidecar.internal: its record exists but could not be read cleanly this pass
2026/10/20 20:03:18 provision: removed retired sidecar route old.eleven.bac.sidecar.internal (record gone)
2026/10/20 20:03:18 provision: bac/eleven has sidecar records but no sidecars manifest — not minting
2026/10/20 20:03:18 provision: bac/eleven is in the trash — not minting sidecar routes for it
2026/10/20 20:03:18 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 20:03:18 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 20:03:18 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 20:03:18 provision: minted sidecar route hub.relay.bac.sidecar.internal (app "relay" acct "bac" args ["relay"])
2026/10/20 20:03:18 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 20:03:18 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 20:03:18 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 20:03:18 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 20:03:18 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 20:03:18 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 20:03:18 provision: removed retired sidecar route bot.eleven.bac.sidecar.internal (record gone)
2026/10/20 20:03:18 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 20:03:18 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 20:03:18 provision: skipping sidecar record apps/bac/relay/sidecars/hub.json: read failed: failStore: reads disabled under apps/bac/relay/sidecars/
2026/10/20 20:03:18 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 20:03:18 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 20:03:18 provision: dry-run: would mint sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" channel "stable" args ["sidecar","run"])
2026/10/20 20:03:18 provision: dry-run: would remove retired sidecar route gone.eleven.bac.sidecar.internal (record gone)
2026/10/20 20:03:18 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 20:03:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:18 provision: converged acme.go.tito.io update settings "{\"updates\":\"manual\",\"channel\":\"stable\"}" -> ""
2026/10/20 20:03:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:18 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/20 20:03:18 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/20 20:03:18 provision: acme.go.tito.io: not minted this pass: the app's update policy could not be read
2026/10/20 20:03:18 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 20:03:18 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/20 20:03:18 provision: acme.go.tito.io: not minted this pass: the app's update policy could not be read
2026/10/20 20:03:18 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	48.967s
ok  	github.com/carlosframework/platform/internal/publicrelease	0.019s
?   	github.com/carlosframework/platform/internal/regionname	[no test files]
ok  	github.com/carlosframework/platform/internal/registry	5.752s
ok  	github.com/carlosframework/platform/internal/relay	7.255s
ok  	github.com/carlosframework/platform/internal/release	26.603s
ok  	github.com/carlosframework/platform/internal/rollout	3.953s
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.063s
ok  	github.com/carlosframework/platform/internal/rootstate	0.028s
ok  	github.com/carlosframework/platform/internal/runs	0.592s
ok  	github.com/carlosframework/platform/internal/s3compat	0.006s
ok  	github.com/carlosframework/platform/internal/safefile	0.004s
ok  	github.com/carlosframework/platform/internal/schedule	2.703s
ok  	github.com/carlosframework/platform/internal/seeds	0.012s
ok  	github.com/carlosframework/platform/internal/sim/hostlife	12.327s
ok  	github.com/carlosframework/platform/internal/sim/litestreamfacts	4.534s
ok  	github.com/carlosframework/platform/internal/status	0.077s
ok  	github.com/carlosframework/platform/internal/steering	0.007s
ok  	github.com/carlosframework/platform/internal/stopevidence	0.329s
ok  	github.com/carlosframework/platform/internal/svcrole	0.003s
ok  	github.com/carlosframework/platform/internal/telemetry	0.005s
ok  	github.com/carlosframework/platform/internal/termfence	0.005s
ok  	github.com/carlosframework/platform/internal/tunnelclient	0.004s
ok  	github.com/carlosframework/platform/internal/unixdial	0.004s
ok  	github.com/carlosframework/platform/internal/updatewords	0.006s
ok  	github.com/carlosframework/platform/internal/usage	0.006s
ok  	github.com/carlosframework/platform/internal/version	0.003s
ok  	github.com/carlosframework/platform/internal/vet	1.661s
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/internal/console/claim_invariant_fixtures_test.go b/internal/console/claim_invariant_fixtures_test.go
index 392667d42..8c750d87c 100644
--- a/internal/console/claim_invariant_fixtures_test.go
+++ b/internal/console/claim_invariant_fixtures_test.go
@@ -1797,6 +1797,7 @@ var claimFixtures = map[string]claimFixture{
"worker StartGeoipJobs": claimNonApp("GeoIP orphan sweep, D1 expiry and feed status under control/geoip/: the platform database, no app"),
"worker StartHostReports": claimNonApp("this console's census report (status/consoles) and roster activation release"),
"worker StartInfraPass": claimNonApp("the deployment's infrastructure inventory snapshot"),
+ "worker StartPlanLimitsPass": claimNonApp("account plan rows and their limits records under accounts/<sqid>/limits.json; names no app"),
"worker StartClaimRecoveryPass": {door: &claimDoor{
apps: claimRefs("bab/titogo"),
setup: func(t *testing.T, cx *claimCase) { cx.crashedRestore(t) },
diff --git a/internal/console/claim_invariant_probes_worker_test.go b/internal/console/claim_invariant_probes_worker_test.go
index 6e01a384a..8c8b55fdb 100644
--- a/internal/console/claim_invariant_probes_worker_test.go
+++ b/internal/console/claim_invariant_probes_worker_test.go
@@ -20,6 +20,7 @@ import (
"github.com/carlosframework/platform/internal/infraview"
"github.com/carlosframework/platform/internal/metrics"
"github.com/carlosframework/platform/internal/moves"
+ "github.com/carlosframework/platform/internal/plans"
"github.com/carlosframework/platform/internal/provision"
"github.com/carlosframework/platform/internal/registry"
"github.com/carlosframework/platform/internal/release"
@@ -189,4 +190,18 @@ var claimWorkerProbes = map[string]claimProbe{
return ""
},
},
+ "worker StartPlanLimitsPass": {
+ setup: func(t *testing.T, cx *claimCase) { cx.srv.cfg.PlanCatalog = examplePlanCatalog(t) },
+ do: claimWorkerReply("StartPlanLimitsPass"),
+ effect: func(t *testing.T, cx *claimCase, r claimReply) string {
+ var rec plans.Record
+ if !cx.bucketJSON(plans.RecordKey("bab"), &rec) {
+ return "no limits record was published for bab"
+ }
+ if rec.Plan != "free" || rec.Limits.RunningThings != 3 {
+ return "the published limits record is not the default plan's"
+ }
+ return ""
+ },
+ },
}
diff --git a/internal/hostops/limits_classifier_test.go b/internal/hostops/limits_classifier_test.go
new file mode 100644
index 000000000..2e714c110
--- /dev/null
+++ b/internal/hostops/limits_classifier_test.go
@@ -0,0 +1,45 @@
+package hostops
+
+import (
+ "context"
+ "errors"
+ "testing"
+)
+
+// TestClassifyAccountLimitsRecordIsExact: the console's per-account limits
+// record (plans-caps-packs spec §7) is a reviewed non-app family. It is only
+// ever put; nothing deletes it, and nothing else under accounts/<sqid>/ rides
+// on its classification.
+func TestClassifyAccountLimitsRecordIsExact(t *testing.T) {
+ ctx := context.Background()
+ key := "accounts/bab/limits.json"
+ for _, c := range []struct {
+ name string
+ target MutationTarget
+ }{
+ {"first put", MutationTarget{Surface: "bucket", Method: "Put", Key: key, After: []byte(`{}`)}},
+ {"replacing put", MutationTarget{Surface: "bucket", Method: "Put", Key: key, ETag: "x", Before: []byte(`{}`), After: []byte(`{}`)}},
+ } {
+ got, err := ClassifyMutation(ctx, nil, nil, c.target)
+ if err != nil {
+ t.Errorf("%s: %v", c.name, err)
+ continue
+ }
+ if got.Family != "account-limits" || got.NonApp == "" || len(got.Scopes) != 0 || got.MailGate {
+ t.Errorf("%s: classified %+v, want non-app family account-limits with no scopes", c.name, got)
+ }
+ }
+ for _, c := range []struct {
+ name string
+ target MutationTarget
+ }{
+ {"a delete", MutationTarget{Surface: "bucket", Method: "Delete", Key: key}},
+ {"an invalid account", MutationTarget{Surface: "bucket", Method: "Put", Key: "accounts/BAB!/limits.json", After: []byte(`{}`)}},
+ {"a deeper key", MutationTarget{Surface: "bucket", Method: "Put", Key: "accounts/bab/x/limits.json", After: []byte(`{}`)}},
+ {"a lookalike name", MutationTarget{Surface: "bucket", Method: "Put", Key: "accounts/bab/limits.json.bak", After: []byte(`{}`)}},
+ } {
+ if got, err := ClassifyMutation(ctx, nil, nil, c.target); !errors.Is(err, ErrUnclassified) {
+ t.Errorf("%s: classified %+v, err %v; want ErrUnclassified", c.name, got, err)
+ }
+ }
+}
diff --git a/internal/hostops/mutation_classifier.go b/internal/hostops/mutation_classifier.go
index 0a5c12d29..430496ec5 100644
--- a/internal/hostops/mutation_classifier.go
+++ b/internal/hostops/mutation_classifier.go
@@ -141,6 +141,12 @@ func ClassifyMutation(ctx context.Context, raw release.Store, w *ControlWriter,
return c, err
case p[0] == "accounts" && len(p) == 3 && p[2] == "account.json" && controlname.ValidAccount(p[1]):
return Classification{Family: "account-manifest", NonApp: "account manifest; account deletion cascades are scoped by the SQL boundary"}, nil
+ case p[0] == "accounts" && len(p) == 3 && p[2] == "limits.json" && controlname.ValidAccount(p[1]):
+ // plans-caps-packs spec §7: the console publishes it; nothing deletes it.
+ if t.Method != "Put" {
+ return Classification{}, fmt.Errorf("%w: %s refuses deletes", ErrUnclassified, t.Key)
+ }
+ return Classification{Family: "account-limits", NonApp: "account limits record published from the plan catalog; no app state"}, nil
case t.Key == RelayAuthorityKey:
return classifyRelayAuthority(t)
case t.Key == RelayIssuerKey: