console: searchable, scrolling account switcher
The switcher's menu ran off the bottom of the screen for anyone in a few
dozen accounts. The list now scrolls inside the menu (at most 22rem or
60vh) and opens scrolled to the current account. Past seven accounts a
filter box sits above it: typing narrows the rows by name, Enter opens
the first row left, the arrow keys walk the rows, and closing the menu
clears it. The box stays hidden without JS, where it could not filter.
The menu is also sized max-content (13-20rem) rather than shrink-to-fit
against the narrow trigger, which had wrapped long names mid-word.
Copy ("Find an account", "No account matches that.") approved by Paul.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2 files changed,
+104
−2
internal/console/server_account_test.go+33 −0internal/console/templates/layout.html+71 −2
CI failed — run details
CI log
=== gate ===
cd launchctx && go vet ./... && go test ./... -count=1
ok amadan.net/carlos/platform.git/launchctx 0.011s
? amadan.net/carlos/platform.git/launchctx/controlname [no test files]
? amadan.net/carlos/platform.git/launchctx/wireid [no test files]
go vet ./...
gofmt -l .: clean
go test ./... -count=1 -timeout 30m
ok github.com/carlosframework/platform 325.198s
? github.com/carlosframework/platform/cmd/changelog [no test files]
ok github.com/carlosframework/platform/cmd/console 2.865s
ok github.com/carlosframework/platform/cmd/moveprobe 93.255s
ok github.com/carlosframework/platform/cmd/zddprobe 0.701s
ok github.com/carlosframework/platform/internal/activator 251.395s
ok github.com/carlosframework/platform/internal/agentsock 0.014s
ok github.com/carlosframework/platform/internal/alerting 0.003s
ok github.com/carlosframework/platform/internal/analytics 0.019s
ok github.com/carlosframework/platform/internal/appconfig 2.489s
ok github.com/carlosframework/platform/internal/apperr 0.070s
ok github.com/carlosframework/platform/internal/applog 0.123s
ok github.com/carlosframework/platform/internal/awsinv 0.003s
ok github.com/carlosframework/platform/internal/boxchoice 0.004s
ok github.com/carlosframework/platform/internal/boxid 0.960s
? 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.007s
ok github.com/carlosframework/platform/internal/caps 0.012s
ok github.com/carlosframework/platform/internal/certwarm 0.002s
ok github.com/carlosframework/platform/internal/cgroup 0.692s
ok github.com/carlosframework/platform/internal/changelog 0.325s
ok github.com/carlosframework/platform/internal/claimactivation 0.750s
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 412.320s
? github.com/carlosframework/platform/internal/controlname [no test files]
? github.com/carlosframework/platform/internal/controlsock [no test files]
ok github.com/carlosframework/platform/internal/dbdoor 6.429s
ok github.com/carlosframework/platform/internal/dbdoor/dbdoortest 0.009s
ok github.com/carlosframework/platform/internal/dbverify 0.004s
ok github.com/carlosframework/platform/internal/dnsrec 0.003s
ok github.com/carlosframework/platform/internal/docsite 0.005s
ok github.com/carlosframework/platform/internal/domains 2.403s
ok github.com/carlosframework/platform/internal/doorkey 0.007s
ok github.com/carlosframework/platform/internal/economics 0.003s
ok github.com/carlosframework/platform/internal/edge 45.131s
? github.com/carlosframework/platform/internal/edgeproof [no test files]
ok github.com/carlosframework/platform/internal/edgesfile 0.008s
ok github.com/carlosframework/platform/internal/fleetapi 0.134s
ok github.com/carlosframework/platform/internal/gate 1.655s
ok github.com/carlosframework/platform/internal/genselect 0.015s
ok github.com/carlosframework/platform/internal/geo 0.017s
ok github.com/carlosframework/platform/internal/geoip 0.031s
ok github.com/carlosframework/platform/internal/historyreadback 0.151s
ok github.com/carlosframework/platform/internal/host 190.916s
ok github.com/carlosframework/platform/internal/hostactors 6.487s
ok github.com/carlosframework/platform/internal/hostactors/awsmembership 0.014s
ok github.com/carlosframework/platform/internal/hostbox 2.588s
ok github.com/carlosframework/platform/internal/hostclaim 0.573s
ok github.com/carlosframework/platform/internal/hostenv 0.016s
ok github.com/carlosframework/platform/internal/hostevidence 0.014s
ok github.com/carlosframework/platform/internal/hostexec 4.998s
ok github.com/carlosframework/platform/internal/hostfence 0.031s
ok github.com/carlosframework/platform/internal/hostfiles 10.480s
ok github.com/carlosframework/platform/internal/hostfloor 0.015s
ok github.com/carlosframework/platform/internal/hostguard 1.004s
ok github.com/carlosframework/platform/internal/hostops 1.585s
? 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.014s
ok github.com/carlosframework/platform/internal/hostrelocate 0.474s
ok github.com/carlosframework/platform/internal/hostresolve 0.169s
ok github.com/carlosframework/platform/internal/hostwrite 0.013s
ok github.com/carlosframework/platform/internal/infraview 0.013s
ok github.com/carlosframework/platform/internal/instancectl 5.249s
ok github.com/carlosframework/platform/internal/instanceexec 2.761s
ok github.com/carlosframework/platform/internal/instancefs 0.017s
ok github.com/carlosframework/platform/internal/instancekey 0.015s
ok github.com/carlosframework/platform/internal/instanceupdates 0.020s
ok github.com/carlosframework/platform/internal/layout 1.543s
ok github.com/carlosframework/platform/internal/lbhealth 0.004s
ok github.com/carlosframework/platform/internal/lease 9.929s
ok github.com/carlosframework/platform/internal/lease/leasetest 0.362s
ok github.com/carlosframework/platform/internal/ledger 0.014s
ok github.com/carlosframework/platform/internal/mail 0.170s
ok github.com/carlosframework/platform/internal/maintenance 0.076s
ok github.com/carlosframework/platform/internal/maintenanceexec 5.524s
ok github.com/carlosframework/platform/internal/maintenanceguard 0.102s
ok github.com/carlosframework/platform/internal/metrics 0.004s
ok github.com/carlosframework/platform/internal/moves 21.228s
ok github.com/carlosframework/platform/internal/moves/archive 0.815s
ok github.com/carlosframework/platform/internal/objstore 0.185s
ok github.com/carlosframework/platform/internal/ops 0.184s
ok github.com/carlosframework/platform/internal/park 0.215s
ok github.com/carlosframework/platform/internal/privatefile 0.004s
2026/10/20 22:08:39 provision: listing apps/bab/blog/instances/: list refused — its records are unseen this pass
2026/10/20 22:08:39 provision: listing apps/bab/: listdirs refused — its records are unseen this pass
2026/10/20 22:08:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:39 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/20 22:08:39 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/20 22:08:39 provision: skipping record apps/bac/tito/instances/one.example.com.json: unreadable: read refused
2026/10/20 22:08:39 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/20 22:08:39 provision: an app's records could not be listed: they are skipped
2026/10/20 22:08:39 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 22:08:39 provision: remove retired instance route shop.example: provision: claim admission unavailable
2026/10/20 22:08:39 provision: remove retired instance route shop.example: provision: claim admission unavailable
2026/10/20 22:08:39 provision: remove retired sidecar route worker.sidecar.internal: provision: claim admission unavailable
2026/10/20 22:08:39 provision: remove retired sidecar route worker.sidecar.internal: provision: claim admission unavailable
2026/10/20 22:08:39 provision: claim install acme.go.tito.io: provision: claim admission unavailable
2026/10/20 22:08:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:39 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/20 22:08:39 provision: claim install bot.eleven.bac.sidecar.internal: provision: claim admission unavailable
2026/10/20 22:08:39 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 22:08:39 provision: claim install bot.eleven.bac.sidecar.internal: registry: claim row ownership changed or unknown
2026/10/20 22:08:39 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 22:08:39 provision: acme.go.tito.io: not minting this pass: the box's layout intent could not be read: no sealed config
2026/10/20 22:08:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:39 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 22:08:39 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 22:08:39 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 22:08:39 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 22:08:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:39 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 22:08:39 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 22:08:39 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 22:08:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:39 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/20 22:08:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:39 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/20 22:08:39 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 22:08:39 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 22:08:39 provision: claim install bot.eleven.bac.sidecar.internal: registry: claim row ownership changed or unknown
2026/10/20 22:08:39 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 22:08:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:39 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 22:08:39 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 22:08:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:39 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 22:08:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:39 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 22:08:39 provision: skipping record apps/bac/tito/instances/new.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 22:08:39 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 22:08:39 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 22:08:39 provision: skipping record apps/bac/tito/instances/new.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 22:08:40 provision: minted instance route ra.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route rb.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route rc.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route ri.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route rd.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route re.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route rf.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route rg.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route rh.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route rj.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route rk.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route rl.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route ra.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route rb.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route rc.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route rd.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: skipping record apps/bac/tito/instances/rb.go.tito.io.json: read failed: read refused
2026/10/20 22:08:40 provision: skipping record apps/bac/tito/instances/rb.go.tito.io.json: read failed: read refused
2026/10/20 22:08:40 provision: minted instance route re.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route x.appj.example (app "appj" acct "bac")
2026/10/20 22:08:40 provision: minted instance route x.appb.example (app "appb" acct "bac")
2026/10/20 22:08:40 provision: minted instance route x.appc.example (app "appc" acct "bac")
2026/10/20 22:08:40 provision: minted instance route x.appd.example (app "appd" acct "bac")
2026/10/20 22:08:40 provision: minted instance route x.appf.example (app "appf" acct "bac")
2026/10/20 22:08:40 provision: minted instance route x.appg.example (app "appg" acct "bac")
2026/10/20 22:08:40 provision: minted instance route x.apph.example (app "apph" acct "bac")
2026/10/20 22:08:40 provision: minted instance route x.appa.example (app "appa" acct "bac")
2026/10/20 22:08:40 provision: minted instance route x.appe.example (app "appe" acct "bac")
2026/10/20 22:08:40 provision: minted instance route x.appi.example (app "appi" acct "bac")
2026/10/20 22:08:40 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 22:08:40 provision: minted instance route r0005.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0048.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0117.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0120.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0029.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0069.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0024.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0014.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0093.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0019.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0012.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0015.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0100.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0125.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0036.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0101.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0026.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0067.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0098.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0118.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0001.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0003.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0031.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0049.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0053.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0103.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0010.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0013.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0039.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0042.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0046.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0057.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0073.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0096.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0097.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0128.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0008.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0022.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0080.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0020.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0034.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0062.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0070.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0016.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0058.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0066.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0077.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0088.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0095.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0050.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0068.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0071.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0027.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0047.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0090.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0114.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0025.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0007.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0041.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0059.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0126.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0017.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0092.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0043.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0084.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0099.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0116.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0056.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0082.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0091.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0055.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0038.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0052.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0065.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0109.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0028.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0035.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0044.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0105.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0119.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0002.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0074.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0075.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0076.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0081.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0089.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0037.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0051.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0122.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0124.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0021.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0061.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0063.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0083.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0102.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0106.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0023.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0004.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0030.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0032.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0054.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0079.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0112.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0018.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0045.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0064.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0072.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0115.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0127.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0000.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0009.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0107.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0111.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0011.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0060.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0108.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0113.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0006.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0085.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0086.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0087.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0110.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0123.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0040.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0121.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0033.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0078.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0094.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0129.go.tito.io (app "tito" acct "bac")
2026/10/20 22:08:40 provision: minted instance route r0104.go.tito.io (app "tito" acct "bac")
--- FAIL: TestPlan14RootReadCensus (4.59s)
plan14_root_reads_test.go:1017: root read census: 3 discrepancies
changed root read internal/console/templates/layout.html:external; review class, task, sites and digest
changed root source envelope internal/console/templates
changed legacy declaration internal/console/templates/layout.html:external
2026/10/20 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 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 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: minted service route svc.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: minted instance route whole.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: minted instance route console.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: minted service route ha.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: minted instance route shared.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: converged acme.go.tito.io channel stable -> edge
2026/10/20 22:09:11 provision: converged acme.go.tito.io channel edge -> canary/rehearsal
2026/10/20 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: empty channel
2026/10/20 22:09:11 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: converged acme.go.tito.io environment "" -> "staging"
2026/10/20 22:09:11 provision: converged acme.go.tito.io environment "staging" -> ""
2026/10/20 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: converged acme.go.tito.io steering "" -> "latency"
2026/10/20 22:09:11 provision: converged acme.go.tito.io steering "latency" -> ""
2026/10/20 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: converged acme.go.tito.io hibernate false -> true
2026/10/20 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: converged acme.go.tito.io hibernate true -> false (replication "daily" cleared: only a hibernating route's rung is read)
2026/10/20 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: converged acme.go.tito.io status-named false -> true
2026/10/20 22:09:11 provision: converged acme.go.tito.io status-named true -> false
2026/10/20 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: minted service route ha.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 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 22:09:11 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 22:09:11 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 22:09:11 provision: minted service route whole.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 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 22:09:11 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 22:09:11 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 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: minted service route whole.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/20 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: skipping accounts/bac/account.json: malformed account manifest: invalid character 'o' in literal null (expecting 'u')
2026/10/20 22:09:11 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/20 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: manifest bac/tito: read failed: provision: manifest bac/tito: invalid character 'o' in literal null (expecting 'u')
2026/10/20 22:09:11 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 22:09:11 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 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 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 22:09:11 provision: not removing acme$evil.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 22:09:11 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 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 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 22:09:11 provision: not removing bad-service.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 22:09:11 provision: skipping record apps/bac/tito/instances/no-channel.go.tito.io.json: empty channel
2026/10/20 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: skipping record apps/bac/tito/instances/no-channel.go.tito.io.json: empty channel
2026/10/20 22:09:11 provision: not removing no-channel.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 22:09:11 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 22:09:11 provision: removed retired instance route ghost.go.tito.io (record gone)
2026/10/20 22:09:11 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 22:09:11 provision: minted instance route dup.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 22:09:11 provision: removed retired instance route acme.go.tito.io (app in the trash)
2026/10/20 22:09:11 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 22:09:11 provision: removed retired static route site.go.tito.io (app in the trash)
2026/10/20 22:09:11 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 22:09:11 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 22:09:11 provision: removed retired instance route acme.go.tito.io (app in the trash)
2026/10/20 22:09:11 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 22:09:11 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 22:09:11 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 22:09:11 provision: converged acme.go.tito.io channel stable -> edge
2026/10/20 22:09:11 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 22:09:11 provision: converged acme.go.tito.io channel canary/rehearsal -> edge
2026/10/20 22:09:11 provision: converged acme.go.tito.io environment "staging" -> ""
2026/10/20 22:09:11 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 22:09:11 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 22:09:11 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 22:09:11 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 22:09:11 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 22:09:11 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 22:09:11 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 22:09:11 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 22:09:11 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/20 22:09:11 provision: dry-run: would mint instance route acme.go.tito.io (app "tito" acct "bac" channel "stable")
2026/10/20 22:09:11 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 22:09:11 provision: dry-run: would converge adopt.go.tito.io channel stable -> edge
2026/10/20 22:09:11 provision: dry-run: would converge adopt.go.tito.io environment "" -> "staging"
2026/10/20 22:09:11 provision: dry-run: would converge owned.go.tito.io channel stable -> edge
2026/10/20 22:09:11 provision: dry-run: would converge owned.go.tito.io environment "" -> "staging"
2026/10/20 22:09:11 provision: dry-run: would converge owned.go.tito.io hibernate false -> true
2026/10/20 22:09:11 provision: dry-run: would converge owned.go.tito.io seed
2026/10/20 22:09:11 provision: dry-run: would remove retired instance route gone.go.tito.io (record gone)
2026/10/20 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: adopted existing route adopt.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 22:09:11 provision: converged adopt.go.tito.io channel stable -> edge
2026/10/20 22:09:11 provision: converged adopt.go.tito.io environment "" -> "staging"
2026/10/20 22:09:11 provision: converged owned.go.tito.io channel stable -> edge
2026/10/20 22:09:11 provision: converged owned.go.tito.io environment "" -> "staging"
2026/10/20 22:09:11 provision: converged owned.go.tito.io hibernate false -> true
2026/10/20 22:09:11 provision: removed retired instance route gone.go.tito.io (record gone)
2026/10/20 22:09:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:11 provision: adopted existing route story.carlosframework.com (app "story" acct "bad") — this record now owns its channel and environment
2026/10/20 22:09:12 provision: story.carlosframework.com exists but is not the route this record describes (kind "instance"/"static") — leaving it alone
2026/10/20 22:09:12 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:12 provision: minted service route pub.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:12 provision: minted service route pubs.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:12 provision: minted service route priv.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:12 provision: minted instance route unit.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:12 provision: minted instance route exec.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:12 provision: minted service route loop.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:12 provision: minted service route named.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:12 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:12 provision: minted static route pisite.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:12 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:12 provision: removed retired static route site.go.tito.io (record gone)
2026/10/20 22:09:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:12 provision: minted instance route acme-uk.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:12 provision: converged acme.go.tito.io replicas "ie,uk" -> "uk"
2026/10/20 22:09:12 provision: converged acme.go.tito.io replicas "uk" -> ""
2026/10/20 22:09:12 provision: minted instance route acme-uk.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:12 provision: converged acme-uk.go.tito.io replica mark true -> false
2026/10/20 22:09:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:12 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:12 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 22:09:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:12 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:12 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:12 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:12 provision: acme.go.tito.io: not minting this pass: the box's layout intent could not be read: store down
2026/10/20 22:09:12 provision: router.go.tito.io: not minting this pass: the box's layout intent could not be read: store down
2026/10/20 22:09:12 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 22:09:12 provision: converged acme.go.tito.io channel stable -> edge
2026/10/20 22:09:12 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/20 22:09:12 provision: not removing acme.go.tito.io (record gone): participant of a running operation
2026/10/20 22:09:12 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/20 22:09:12 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/20 22:09:12 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 22:09:12 provision: held acme.go.tito.io landing by mv_acme (was ready)
2026/10/20 22:09:12 provision: acme.go.tito.io: held restoring by rb_other, not by mv_acme; leaving it
2026/10/20 22:09:12 provision: acme.go.tito.io: the row is not this pass's (app "other" acct ""); not holding it for mv_acme
2026/10/20 22:09:12 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 22:09:12 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 22:09:12 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 22:09:12 provision: held acme.go.tito.io landing by mv_acme (was ready)
2026/10/20 22:09:12 provision: minted instance route acme.example.com (app "shop" acct "bac")
2026/10/20 22:09:12 provision: minted instance route plain.example.com (app "shop" acct "bac")
2026/10/20 22:09:12 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 22:09:12 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 22:09:12 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 22:09:12 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 22:09:12 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 22:09:12 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 22:09:12 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 22:09:12 provision: listing apps/bac/shop/instances/: list refused — its records are unseen this pass
2026/10/20 22:09:13 provision: a.shop.example.com: swapped for import sd_mi4c2cfkeeckc2aafcccx57yqu (the original route is journaled)
2026/10/20 22:09:13 provision: a.shop.example.com: import sd_mi4c2cfkeeckc2aafcccx57yqu committed: its gate is cleared and its journal row dropped
2026/10/20 22:09:13 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 22:09:13 provision: a.shop.example.com: import sd_ukp6q5xiqmavv7qhtaoxi6m57y rolled back to its original route
2026/10/20 22:09:13 provision: a.shop.example.com: import sd_ukp6q5xiqmavv7qhtaoxi6m57y: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/20 22:09:13 provision: a.shop.example.com: import sd_ukp6q5xiqmavv7qhtaoxi6m57y is cleaned up and its journal row retired
2026/10/20 22:09:13 provision: a.shop.example.com: import sd_5ycbs53rmgktpqeob5b4abfbce rolled back to its original route
2026/10/20 22:09:13 provision: a.shop.example.com: import sd_5ycbs53rmgktpqeob5b4abfbce: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/20 22:09:13 provision: a.shop.example.com: import sd_5ycbs53rmgktpqeob5b4abfbce is cleaned up and its journal row retired
2026/10/20 22:09:13 provision: dry-run: would redo a.shop.example.com's swap record CAS for import sd_axt6hifhlpbfu7wehnjg2vagdi
2026/10/20 22:09:13 provision: dry-run: would clear a.shop.example.com's import gate
2026/10/20 22:09:13 provision: dry-run: would converge a.shop.example.com seed source
2026/10/20 22:09:13 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 22:09:13 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 22:09:13 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 22:09:13 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 22:09:13 provision: a.shop.example.com: import sd_iy2yt5wuzkattmk3mder5aot2q cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/20 22:09:13 provision: a.shop.example.com: import sd_jpwobn7xeqq6ztp45d7vm3dtxa cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/20 22:09:13 provision: a.shop.example.com: import sd_xq6foov2uw6hlxugrdwcoffkqq is journaled, but this box cannot act on imports; its row is left alone
2026/10/20 22:09:13 provision: a.shop.example.com: import sd_36gri2norbh5wpkkyj5fsdbupq is journaled, but this box cannot act on imports; its row is left alone
2026/10/20 22:09:13 provision: a.shop.example.com: import sd_zv4ayyl7ricmgft554lnpxwgli is journaled, but this box cannot act on imports; its row is left alone
2026/10/20 22:09:13 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 22:09:13 provision: b.shop.example.com: import sd_po4pmuzwnwv5yteabyeubw7aii left alone this pass: the import journal could not be read
2026/10/20 22:09:13 provision: c.shop.example.com: import sd_peqsgnh43acvpj2bx6j4ijnujm left alone this pass: the import journal could not be read
2026/10/20 22:09:13 provision: a.shop.example.com: import sd_oxz6b3vc3tubu5mnavshoijqtm committed: its gate is cleared and its journal row dropped
2026/10/20 22:09:13 provision: a.shop.example.com: not converging import sd_c2l2vwn3pbrfmtnr37lqh7koc4: it is swapped but not committed, and the row on this box has no import gate
2026/10/20 22:09:13 provision: a.shop.example.com: not converging import sd_ajtod6aifagrliit4yuoaqj6cm: it is swapped but not committed, and the row on this box has no import gate
2026/10/20 22:09:13 provision: a.shop.example.com: not converging import sd_mrfyczz3geco32lmcmq66agfra: it is placed but not committed, and the row on this box has no import gate
2026/10/20 22:09:13 provision: a.shop.example.com: not converging import sd_kqp3rxdvjvja42o2bk6yfmc32i: it is placed but not committed, and the row on this box has no import gate
2026/10/20 22:09:13 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 22:09:13 provision: converge seed source on a.shop.example.com: constraint failed: seed_source is read-only here (1811)
2026/10/20 22:09:13 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 22:09:13 provision: a.shop.example.com: import sd_jzpzwaeeogussdva66kqgifg3y committed: its gate is cleared and its journal row dropped
2026/10/20 22:09:13 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 22:09:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:13 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 22:09:13 provision: acme.go.tito.io: not minting a seeded instance: this box does not mint nested (<nil>)
2026/10/20 22:09:13 provision: acme.go.tito.io: not minting a seeded instance: claim control is on for this box
2026/10/20 22:09:13 provision: acme.go.tito.io: aborted seed sd_7yppgwkbzczyhizs662soyo55i: this box cannot read seed markers, and places no seed; nothing local is removed
2026/10/20 22:09:13 provision: acme.go.tito.io: aborted seed sd_7yppgwkbzczyhizs662soyo55i rolled back (no box had swapped it)
2026/10/20 22:09:13 provision: acme.go.tito.io: not minting a seeded instance: its record does not describe a hibernating instance
2026/10/20 22:09:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:13 provision: removed instance route acme.go.tito.io (its seed sd_fu2svr2cf2mjuym6cov3ocdc3a was aborted); the next pass rolls it back
2026/10/20 22:09:13 provision: acme.go.tito.io: aborted seed sd_fu2svr2cf2mjuym6cov3ocdc3a: this box cannot read seed markers, and places no seed; nothing local is removed
2026/10/20 22:09:13 provision: acme.go.tito.io: aborted seed sd_fu2svr2cf2mjuym6cov3ocdc3a rolled back (no box had swapped it)
2026/10/20 22:09:13 provision: acme.go.tito.io: aborted seed sd_h77zupnasbitkuog7dud2j2jyu has a row this pass may not remove; leaving the seed aborted
2026/10/20 22:09:13 provision: acme.go.tito.io: aborted seed sd_u4ee4axh5wnsjxwbekhbo7tgry rolled back (no box had swapped it)
2026/10/20 22:09:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:13 provision: removed instance route acme.go.tito.io (its seed sd_vio4tizxb6wlteojfrorzsa6tq was aborted); the next pass rolls it back
2026/10/20 22:09:13 provision: acme.go.tito.io: aborted seed sd_vio4tizxb6wlteojfrorzsa6tq has no route on this box: its local data is removed
2026/10/20 22:09:13 provision: acme.go.tito.io: aborted seed sd_vio4tizxb6wlteojfrorzsa6tq rolled back (no box had swapped it)
2026/10/20 22:09:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:13 provision: a.shop.example.com: swapped for import sd_g77jeao6uwawkseohnvhxdqqzu (the original route is journaled)
2026/10/20 22:09:13 provision: a.shop.example.com: import sd_g77jeao6uwawkseohnvhxdqqzu rolled back to its original route
2026/10/20 22:09:13 provision: a.shop.example.com: import sd_g77jeao6uwawkseohnvhxdqqzu is cleaned up and its journal row retired
2026/10/20 22:09:13 provision: a.shop.example.com: swapped for import sd_clxrh4x6qun57ullwt2eypecxm (the original route is journaled)
2026/10/20 22:09:13 provision: a.shop.example.com: import sd_clxrh4x6qun57ullwt2eypecxm rolled back to its original route
2026/10/20 22:09:13 provision: a.shop.example.com: import sd_clxrh4x6qun57ullwt2eypecxm is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_yhlvjrqw735cx5uq5n7f3q4xxa (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_yhlvjrqw735cx5uq5n7f3q4xxa rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_yhlvjrqw735cx5uq5n7f3q4xxa: the host's replica is left alone: its record no longer names this seed
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_yhlvjrqw735cx5uq5n7f3q4xxa is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_ln2wyc7vzqvkf4sguwb5yykmaa (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_ln2wyc7vzqvkf4sguwb5yykmaa rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_ln2wyc7vzqvkf4sguwb5yykmaa rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_ln2wyc7vzqvkf4sguwb5yykmaa is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_lckbgnvy6penfohmvqci36spri (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_lckbgnvy6penfohmvqci36spri rollback deferred: the host is not fenced and stopped yet (stop unproven)
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_khqxapvnkccl5mkrx62zieahgu (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_khqxapvnkccl5mkrx62zieahgu is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_jh7otvrnso7fn3ohilk6qmtk2y (the original route is journaled)
2026/10/20 22:09:14 provision: skipping record apps/bac/shop/instances/a.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_jh7otvrnso7fn3ohilk6qmtk2y left alone this pass: its record could not be read
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_yuy4b3zfckus5mx74xytilzbmm (the original route is journaled)
2026/10/20 22:09:14 provision: skipping record apps/bac/shop/instances/a.shop.example.com.json: read failed: connection reset
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_yuy4b3zfckus5mx74xytilzbmm left alone this pass: its record could not be read
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_ctxdjwndhemtnhsukrtuldefeq (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_ctxdjwndhemtnhsukrtuldefeq: close the import gate: constraint failed: injected (1811)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_ctxdjwndhemtnhsukrtuldefeq rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_ctxdjwndhemtnhsukrtuldefeq is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_gduz5noovsanjnqlfsy7fm2uke (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_gduz5noovsanjnqlfsy7fm2uke: close the import gate: constraint failed: injected (1811)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_gduz5noovsanjnqlfsy7fm2uke rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_gduz5noovsanjnqlfsy7fm2uke is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_5wcexzgehmqeobtpha7hakklva (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_5wcexzgehmqeobtpha7hakklva rollback deferred: the host is not fenced and stopped yet (injected failure at fence)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_5wcexzgehmqeobtpha7hakklva rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_5wcexzgehmqeobtpha7hakklva is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_ojjkgx3zsxbr3i3dyn4kmvnj5m (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_ojjkgx3zsxbr3i3dyn4kmvnj5m rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_ojjkgx3zsxbr3i3dyn4kmvnj5m is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_wvwjzx3htykrpkvbj3rywtojpq (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_wvwjzx3htykrpkvbj3rywtojpq: retire its instance key: injected failure at retire-key
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_wvwjzx3htykrpkvbj3rywtojpq rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_wvwjzx3htykrpkvbj3rywtojpq is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_7y3ky24m7ywlb4ywqu7kodc4fa (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_7y3ky24m7ywlb4ywqu7kodc4fa rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_7y3ky24m7ywlb4ywqu7kodc4fa is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_u4tsav7yhx5wffug5zpmrbkch4 (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_u4tsav7yhx5wffug5zpmrbkch4: remove its local data: injected failure at remove-local
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_u4tsav7yhx5wffug5zpmrbkch4 rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_u4tsav7yhx5wffug5zpmrbkch4 is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_k73lwilvl26gvrkyw6iuc4nmni (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_k73lwilvl26gvrkyw6iuc4nmni rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_k73lwilvl26gvrkyw6iuc4nmni is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_5wqjtoedraxz7n4p3hjvqzbz2e (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_5wqjtoedraxz7n4p3hjvqzbz2e: remove its local data: injected failure at remove-local-done
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_5wqjtoedraxz7n4p3hjvqzbz2e rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_5wqjtoedraxz7n4p3hjvqzbz2e is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_r4ydofun4dbslzja6yemqya2xy (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_r4ydofun4dbslzja6yemqya2xy rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_r4ydofun4dbslzja6yemqya2xy is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_h7uvmrawb2yc2dr5cc5cy2yj64 (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_h7uvmrawb2yc2dr5cc5cy2yj64: restore the original route: constraint failed: injected (1811)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_h7uvmrawb2yc2dr5cc5cy2yj64 rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_h7uvmrawb2yc2dr5cc5cy2yj64 is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_krl2fwcnojli6aj4majt2lovum (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_krl2fwcnojli6aj4majt2lovum: restore the original route: constraint failed: injected (1811)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_krl2fwcnojli6aj4majt2lovum rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_krl2fwcnojli6aj4majt2lovum is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_66rsah4ydiwtmxlh6jx52igczm (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_66rsah4ydiwtmxlh6jx52igczm is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_yi3svnoqgqufop7xdq5qgvhsuu (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_yi3svnoqgqufop7xdq5qgvhsuu rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_yi3svnoqgqufop7xdq5qgvhsuu: delete its snapshot: injected failure at delete-snapshot
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_yi3svnoqgqufop7xdq5qgvhsuu is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_qrwehdtv6k4srvsjd47q7dgijy (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_qrwehdtv6k4srvsjd47q7dgijy rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_qrwehdtv6k4srvsjd47q7dgijy is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_k5raffk3gdup2pawmyi7c3xjny (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_k5raffk3gdup2pawmyi7c3xjny rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_k5raffk3gdup2pawmyi7c3xjny: delete the host's replica: injected failure at delete-replica
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_k5raffk3gdup2pawmyi7c3xjny is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_ko6wevxux72ilmpotjkpcnuliu (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_ko6wevxux72ilmpotjkpcnuliu rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_ko6wevxux72ilmpotjkpcnuliu is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_kivk2yme2ivfeg73ymgqsjkdoq (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_kivk2yme2ivfeg73ymgqsjkdoq rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_kivk2yme2ivfeg73ymgqsjkdoq: retire its journal row: constraint failed: injected (1811)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_kivk2yme2ivfeg73ymgqsjkdoq is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_vbevkyjixsnmm3hzvqubqb6zzq (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_vbevkyjixsnmm3hzvqubqb6zzq rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_vbevkyjixsnmm3hzvqubqb6zzq: retire its journal row: constraint failed: injected (1811)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_vbevkyjixsnmm3hzvqubqb6zzq is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_h54jfj33sxzecseb2ebmscdsfm (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_h54jfj33sxzecseb2ebmscdsfm rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_h54jfj33sxzecseb2ebmscdsfm is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: mark import sd_h54jfj33sxzecseb2ebmscdsfm rolled back: injected failure at cas
2026/10/20 22:09:14 provision: a.shop.example.com: aborted seed sd_h54jfj33sxzecseb2ebmscdsfm rolled back (no box had swapped it)
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_clehxwxk47svkhtsbjouq7u42i (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_clehxwxk47svkhtsbjouq7u42i rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_clehxwxk47svkhtsbjouq7u42i is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: aborted seed sd_clehxwxk47svkhtsbjouq7u42i rolled back (no box had swapped it)
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_ky4ypuirxmml6am7hzlhxmm6ye (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_ky4ypuirxmml6am7hzlhxmm6ye rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_ky4ypuirxmml6am7hzlhxmm6ye rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_ky4ypuirxmml6am7hzlhxmm6ye rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_ky4ypuirxmml6am7hzlhxmm6ye is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_pts2ynutna2pghmm4civ7fdzjm (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_pts2ynutna2pghmm4civ7fdzjm rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_pts2ynutna2pghmm4civ7fdzjm is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_it25ok4fcvdbzeoqdu4usacloe (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_it25ok4fcvdbzeoqdu4usacloe rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_it25ok4fcvdbzeoqdu4usacloe is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_mcinhs7sytddwtnxtu6ezodasu (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_mcinhs7sytddwtnxtu6ezodasu rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_mcinhs7sytddwtnxtu6ezodasu is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_esyipx3mqnjostrh2n2z7jeqpm (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_esyipx3mqnjostrh2n2z7jeqpm rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_esyipx3mqnjostrh2n2z7jeqpm is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_oi2ugdibs3obrg76bnncz6comi (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_oi2ugdibs3obrg76bnncz6comi rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_oi2ugdibs3obrg76bnncz6comi is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_fl6q5gufg2shmbnllpq3j7oefy (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_fl6q5gufg2shmbnllpq3j7oefy rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_fl6q5gufg2shmbnllpq3j7oefy is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_solnxkiosk3viuzf7dgfp7blnm (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_solnxkiosk3viuzf7dgfp7blnm rolled back to its original route
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_solnxkiosk3viuzf7dgfp7blnm is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_euf6tjj3p4ez7mehgne3oilt4a (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_euf6tjj3p4ez7mehgne3oilt4a has no route on this box: its local data is removed and no route is put back
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_euf6tjj3p4ez7mehgne3oilt4a is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_hpqm7abvkw3b5a5tudvw25ijwi (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_6k5fervo2og337d5sy3ioejqfa (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_hqia6k7vnppwftufsdhawrb7di (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_hqia6k7vnppwftufsdhawrb7di cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_ao67ekkf5oifetkjfmgkmptigu (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_ao67ekkf5oifetkjfmgkmptigu is not rolled back: the route changed under the fence, so nothing there is touched
2026/10/20 22:09:14 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 22:09:14 provision: a.shop.example.com: import ../not-a-seed is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_xpi6itmzl4zmyv5ejrxvt37eqa (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_weipi6fcf7dc7c4ehvru3a2i4i (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_frv3gowj76wfavj3koydtw2rfq (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_spo6u25hskvy6ebifwitrb5f4y (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_jcfoay4h2imilhshjqstheiidm (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_jcfoay4h2imilhshjqstheiidm rollback deferred: the host is not fenced and stopped yet (stop evidence unreadable)
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_jeg4mkucizglnfu3b6jkiglvlu (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_jeg4mkucizglnfu3b6jkiglvlu has no route on this box: its local data is removed and no route is put back
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_jeg4mkucizglnfu3b6jkiglvlu is cleaned up and its journal row retired
2026/10/20 22:09:14 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_wdrnrxayrzo3bewkgjfsm6mt5m (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_wdrnrxayrzo3bewkgjfsm6mt5m: remove its local data: injected failure at remove-local
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_wdrnrxayrzo3bewkgjfsm6mt5m is not rolled back: the route at the host is not the import's, so nothing there is touched
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_k6nec4wx6bwcsfp7piwb7fmlzi (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_k6nec4wx6bwcsfp7piwb7fmlzi: a route appeared at the host, so its local database is left and the rollback waits
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_e3ethijrxnmd7k5ta65ghkmwpy (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_e3ethijrxnmd7k5ta65ghkmwpy rollback deferred: no fence generation: registry busy
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_5ilx52xk6awzaelhe6ik3srkmq (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: import sd_5ilx52xk6awzaelhe6ik3srkmq rollback deferred: no fence generation: the generation source answered 0
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_fcrqox4zyr5dkppp3ewgkobepm (the original route is journaled)
2026/10/20 22:09:14 provision: a.shop.example.com: swapped for import sd_ivkjqkq3wrnkjakbar5vxfcwee (the original route is journaled)
2026/10/20 22:09:15 provision: a.shop.example.com: swapped for import sd_4a5z75uem3vvt4kj4mkqpvgrhe (the original route is journaled)
2026/10/20 22:09:15 provision: a.shop.example.com: import deferred: this box cannot read the instance's env file
2026/10/20 22:09:15 provision: a.shop.example.com: import deferred: the instance's env file could not be read: a symlink
2026/10/20 22:09:15 provision: a.shop.example.com: swapped for import sd_wpbcb4sxyka5alj5lwra6m3r3a (the original route is journaled)
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_wpbcb4sxyka5alj5lwra6m3r3a rolled back to its original route
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_wpbcb4sxyka5alj5lwra6m3r3a is cleaned up and its journal row retired
2026/10/20 22:09:15 provision: a.shop.example.com: swapped for import sd_nxze3u4yl3j3inxdqxqlhfpnuy (the original route is journaled)
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_nxze3u4yl3j3inxdqxqlhfpnuy rolled back to its original route
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_nxze3u4yl3j3inxdqxqlhfpnuy is cleaned up and its journal row retired
2026/10/20 22:09:15 provision: a.shop.example.com: swapped for import sd_we7xlbzgqbxmespr7b22qsmsmm (the original route is journaled)
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_we7xlbzgqbxmespr7b22qsmsmm rolled back to its original route
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_we7xlbzgqbxmespr7b22qsmsmm is cleaned up and its journal row retired
2026/10/20 22:09:15 provision: a.shop.example.com: swapped for import sd_3n6ltrti2ok7mthmmfewbohnxu (the original route is journaled)
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_3n6ltrti2ok7mthmmfewbohnxu: retire its instance key: the env file is a symlink
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_3n6ltrti2ok7mthmmfewbohnxu rolled back to its original route
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_3n6ltrti2ok7mthmmfewbohnxu is cleaned up and its journal row retired
2026/10/20 22:09:15 provision: a.shop.example.com: swapped for import sd_7i45r7xrnqdtuohxvkqty4goze (the original route is journaled)
2026/10/20 22:09: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 22:09:15 provision: a.shop.example.com: swapped for import sd_4jdthqqm4es3halfjnc73v3nxm (the original route is journaled)
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_zh3rilck5pdjdfropaaeobzkq4 refused: there is no route at a.shop.example.com to replace
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_jkwbhrkxi6qsagryx6wals47e4 refused: the route's address is 127.0.0.1:9, not 127.0.0.1:8401
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_iay3mudsla5zbf3aga4q7n62tu 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 22:09:15 provision: a.shop.example.com: import sd_qcbbmc6jykpcot6lw352uhuyj4 refused: the route's address is 127.0.0.1:9, not 127.0.0.1:8401
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_ptf3nf4ov2xqrxyamuofks43km refused: the route belongs to app other
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_jvbkmpoxjn6zlr2rfcciokmi4a refused: the route is filed under another account
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_cpwqk2j4adg2imke3nsgf7r6eu refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_3hn6stwo5izeuwb3or55nrul3e refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_dbee5osxqb22qog5mx2pqopzc4 refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_bb23az3ir6dlxtxd7yguztabrq refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_ss2fz3kpqdrxhcnb3q7ovfzu2m refused: the route is not an address route this import can take over (socket)
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_4z6y75s5k5invrokrxk6o52jve refused: the route is not an address route this import can take over (no address)
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_eacl5s4ulalj6mr75obhi73dhe refused: the route is not an address route this import can take over (provisioned)
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_dch62eo4l6uxostm6ffuaymsz4 refused: the route is not an address route this import can take over (kind static)
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_gs6z43ufakv2z7oww23qnuohau refused: the route is not an address route this import can take over (backing)
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_j5sctqdv376iwsbrtw3zcc7swi refused: the route is not an address route this import can take over (tunnel)
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_uavcqbcinbplizpyevxslkzraq refused: the route is not an address route this import can take over (caps)
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_amkbiflxghe34iih4axqsyc47q refused: the route is not an address route this import can take over (platform)
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_6emics7v723avd33xekyy4xijm refused: the route is not an address route this import can take over (canary)
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_c7ic23pf56tsjp474esyx3ni3i refused: the route is not an address route this import can take over (kind sidecar)
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_lkc5eyjfiwzcya6rsnlhia7olu refused: the route is not an address route this import can take over (region)
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_hpu3idcv6nfwrdbvn3xykxlyjm refused: the route is not an address route this import can take over (fleet_box)
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_nq6ez5wpwojocinwvgkafn6m5e refused: the route is not an address route this import can take over (hibernate)
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_uso5hjndqv2d7khkff6zzfsfb4 refused: the route is not an address route this import can take over (claim_owner)
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_2id55wtokff5p2md6bxijm4e5i refused: this box does not run instances nested
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_ppky5zdhgc2sn2r23se7qevoee refused: this box does not run instances nested
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_26b3wnjgdgqxl52kmjmm5753sa refused: claim control is on for this box
2026/10/20 22:09:15 provision: a.shop.example.com: swapped for import sd_dsqe4q4fj5p2klcgylpyxpzppe (the original route is journaled)
2026/10/20 22:09:15 provision: a.shop.example.com: swapped for import sd_23pkz7bkz65r642bslnezqpv3e (the original route is journaled)
2026/10/20 22:09:15 provision: a.shop.example.com: import deferred: this box cannot read the legacy route assignments
2026/10/20 22:09:15 provision: a.shop.example.com: import deferred: the legacy route assignments could not be read: store down
2026/10/20 22:09:15 provision: a.shop.example.com: not swapping for import sd_xqikcs4oznhagtgghesy42xzhi: its verify hash is not a sha256
2026/10/20 22:09:15 provision: a.shop.example.com: not swapping for import sd_rsaoar46pwocs4pegbg2xwkxgy: its verify hash is not a sha256
2026/10/20 22:09:15 provision: a.shop.example.com: not swapping for import sd_evuyonnjum2kw2xofcqlxhmsia: its verify hash is not a sha256
2026/10/20 22:09:15 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 22:09:15 provision: A.shop.example.com/..: not swapping for import sd_7f7n64twwyng5os6xb44sojnpm: its host or seed id is malformed (seeds: not a host)
2026/10/20 22:09:15 provision: a.shop.example.com: not swapping for import sd_nesmhncrk7cuq7fgtzhpbws63u: its record does not describe a nested, hibernating instance
2026/10/20 22:09:15 provision: a.shop.example.com: not swapping for import sd_6pextirbma454xxksdunwz3d4i: its record does not describe a nested, hibernating instance
2026/10/20 22:09:15 provision: a.shop.example.com: not swapping for import sd_jpkeq2mf5bhmld5lxx56ielmbi: its record does not describe a nested, hibernating instance
2026/10/20 22:09:15 provision: a.shop.example.com: not swapping for import sd_s7pbc6ih3pd5hkvl7dygxgl6me: its record does not describe a nested, hibernating instance
2026/10/20 22:09:15 provision: a.shop.example.com: import deferred: the box's layout intent could not be read: store down
2026/10/20 22:09:15 provision: a.shop.example.com: swapped for import sd_537r7xr2usvld5tvun3awmyzme (the original route is journaled)
2026/10/20 22:09:15 provision: a.shop.example.com: import deferred: the box's nested probe did not answer: ready probe timed out
2026/10/20 22:09:15 provision: a.shop.example.com: swapped for import sd_en6vscfprim6wnigmhtroawsym (the original route is journaled)
2026/10/20 22:09:15 provision: a.shop.example.com: swapped for import sd_5t4mpumoryn47wvsutudtzvdka (the original route is journaled)
2026/10/20 22:09:15 provision: a.shop.example.com: import deferred: the route is held by operation op_1
2026/10/20 22:09:15 provision: dry-run: would consider swapping a.shop.example.com for import sd_a7uc3ju42rujaelgbma2daxqsi
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_glsnnejhllsjh2tze7ytgv2kpy rolled back to its original route
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_glsnnejhllsjh2tze7ytgv2kpy: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_glsnnejhllsjh2tze7ytgv2kpy is cleaned up and its journal row retired
2026/10/20 22:09:15 provision: a.shop.example.com: import sd_z7urrb3i3h3qba4csctq7v622y left alone: the import journal holds seed sd_gidczsykzdv2l4bg5wfak5quji at swapped
2026/10/20 22:09:15 provision: a.shop.example.com: not minting import sd_pr6s4oq4az5wsse5k43hwkftn4: it is swapped but not committed, and only its swap makes its row
2026/10/20 22:09:15 provision: a.shop.example.com: not minting import sd_zd6y3mwtgezytsirry6wrttcwe: it is placed but not committed, and only its swap makes its row
2026/10/20 22:09:15 provision: a.shop.example.com: swapped for import sd_yneizrowjy7bmimowtxlchlmtu (the original route is journaled)
2026/10/20 22:09:15 provision: a.shop.example.com: not minting import sd_yneizrowjy7bmimowtxlchlmtu: it is swapped but not committed, and only its swap makes its row
2026/10/20 22:09:15 provision: a.shop.example.com: not minting import sd_yneizrowjy7bmimowtxlchlmtu: it is placed but not committed, and only its swap makes its row
2026/10/20 22:09:15 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 22:09:15 provision: removed retired sidecar route gone.eleven.bac.sidecar.internal (record gone)
2026/10/20 22:09:15 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 22:09:15 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 22:09:15 provision: converged sidecar bot.eleven.bac.sidecar.internal args ["sidecar","run"] -> ["worker","run"]
2026/10/20 22:09:15 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 22:09:15 provision: converged sidecar bot.eleven.bac.sidecar.internal ceilings 300/3600 -> 60/120
2026/10/20 22:09:15 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 22:09:15 provision: converged sidecar bot.eleven.bac.sidecar.internal channel stable -> canary/eleven
2026/10/20 22:09:15 provision: converged sidecar bot.eleven.bac.sidecar.internal environment "other" -> "relay"
2026/10/20 22:09:15 provision: converged sidecar bot.eleven.bac.sidecar.internal hibernate true -> false
2026/10/20 22:09:15 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: read failed: failStore: reads disabled under apps/bac/eleven/sidecars/
2026/10/20 22:09:16 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: malformed: invalid character 'n' looking for beginning of object key string
2026/10/20 22:09:16 provision: not removing sidecar bot.eleven.bac.sidecar.internal: its record exists but could not be read cleanly this pass
2026/10/20 22:09:16 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: empty channel
2026/10/20 22:09:16 provision: skipping sidecar record apps/bac/eleven/sidecars/held.json: empty channel
2026/10/20 22:09:16 provision: not removing sidecar held.eleven.bac.sidecar.internal: its record exists but could not be read cleanly this pass
2026/10/20 22:09:16 provision: removed retired sidecar route old.eleven.bac.sidecar.internal (record gone)
2026/10/20 22:09:16 provision: bac/eleven has sidecar records but no sidecars manifest — not minting
2026/10/20 22:09:16 provision: bac/eleven is in the trash — not minting sidecar routes for it
2026/10/20 22:09:16 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 22:09:16 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 22:09:16 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 22:09:16 provision: minted sidecar route hub.relay.bac.sidecar.internal (app "relay" acct "bac" args ["relay"])
2026/10/20 22:09:16 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 22:09:16 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 22:09:16 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 22:09:16 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 22:09:16 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 22:09:16 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 22:09:16 provision: removed retired sidecar route bot.eleven.bac.sidecar.internal (record gone)
2026/10/20 22:09:16 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 22:09:16 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 22:09:16 provision: skipping sidecar record apps/bac/relay/sidecars/hub.json: read failed: failStore: reads disabled under apps/bac/relay/sidecars/
2026/10/20 22:09:16 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 22:09:16 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 22:09:16 provision: dry-run: would mint sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" channel "stable" args ["sidecar","run"])
2026/10/20 22:09:16 provision: dry-run: would remove retired sidecar route gone.eleven.bac.sidecar.internal (record gone)
2026/10/20 22:09:16 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 22:09:16 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:16 provision: converged acme.go.tito.io update settings "{\"updates\":\"manual\",\"channel\":\"stable\"}" -> ""
2026/10/20 22:09:16 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:16 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:16 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/20 22:09:16 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/20 22:09:16 provision: acme.go.tito.io: not minted this pass: the app's update policy could not be read
2026/10/20 22:09:16 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 22:09:16 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/20 22:09:16 provision: acme.go.tito.io: not minted this pass: the app's update policy could not be read
2026/10/20 22:09:16 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 36.977s
ok github.com/carlosframework/platform/internal/publicrelease 0.011s
? github.com/carlosframework/platform/internal/regionname [no test files]
ok github.com/carlosframework/platform/internal/registry 5.474s
ok github.com/carlosframework/platform/internal/relay 7.241s
ok github.com/carlosframework/platform/internal/release 23.630s
ok github.com/carlosframework/platform/internal/rollout 3.901s
ok github.com/carlosframework/platform/internal/rolloutwords 0.004s
ok github.com/carlosframework/platform/internal/rootaws 0.007s
ok github.com/carlosframework/platform/internal/rootparticipation 0.058s
ok github.com/carlosframework/platform/internal/rootstate 0.026s
ok github.com/carlosframework/platform/internal/runs 0.576s
ok github.com/carlosframework/platform/internal/s3compat 0.005s
ok github.com/carlosframework/platform/internal/safefile 0.004s
ok github.com/carlosframework/platform/internal/schedule 2.575s
ok github.com/carlosframework/platform/internal/seeds 0.011s
ok github.com/carlosframework/platform/internal/sim/hostlife 9.560s
ok github.com/carlosframework/platform/internal/sim/litestreamfacts 3.706s
ok github.com/carlosframework/platform/internal/status 0.059s
ok github.com/carlosframework/platform/internal/steering 0.006s
ok github.com/carlosframework/platform/internal/stopevidence 0.230s
ok github.com/carlosframework/platform/internal/svcrole 0.002s
ok github.com/carlosframework/platform/internal/telemetry 0.004s
ok github.com/carlosframework/platform/internal/termfence 0.004s
ok github.com/carlosframework/platform/internal/tunnelclient 0.004s
ok github.com/carlosframework/platform/internal/unixdial 0.002s
ok github.com/carlosframework/platform/internal/updatewords 0.004s
ok github.com/carlosframework/platform/internal/usage 0.005s
ok github.com/carlosframework/platform/internal/version 0.002s
ok github.com/carlosframework/platform/internal/vet 1.574s
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/server_account_test.go b/internal/console/server_account_test.go| index bdca9efb9..d6452f89a 100644 |
| --- a/internal/console/server_account_test.go |
| +++ b/internal/console/server_account_test.go |
| @@ -1,6 +1,7 @@ |
| package console |
| import ( |
| + "fmt" |
| "net/http" |
| "net/url" |
| "strings" |
| @@ -394,6 +395,38 @@ func TestSwitcherListsOnlyMyAccounts(t *testing.T) { |
| } |
| } |
| +// The switcher's filter box appears once the list is long enough to need it, |
| +// and not before: a short list is quicker to read than to search. |
| +func TestSwitcherFilterOnlyForLongLists(t *testing.T) { |
| + fx := newConsoleFixture(t) |
| + c := newBrowser(t) |
| + signUp(t, fx, c, "code-1") |
| + accts, err := fx.st.AccountsFor("paul@keymail.dev") |
| + if err != nil { |
| + t.Fatal(err) |
| + } |
| + for n := len(accts); n < 7; n++ { |
| + id := testAccountID() |
| + if err := fx.st.CreateAccount(id, accountSqid(id), fmt.Sprintf("short%d", n), "paul@keymail.dev", time.Now()); err != nil { |
| + t.Fatal(err) |
| + } |
| + } |
| + _, _, body := get(t, c, fx.u("/")) |
| + if strings.Contains(header(t, body), "switcher-find") { |
| + t.Errorf("seven accounts rendered the filter box:\n%s", header(t, body)) |
| + } |
| + |
| + id := testAccountID() |
| + if err := fx.st.CreateAccount(id, accountSqid(id), "eighth", "paul@keymail.dev", time.Now()); err != nil { |
| + t.Fatal(err) |
| + } |
| + _, _, body = get(t, c, fx.u("/")) |
| + h := header(t, body) |
| + if !strings.Contains(h, `class="switcher-find"`) || !strings.Contains(h, `class="switcher-none" hidden`) { |
| + t.Errorf("eight accounts rendered no filter box:\n%s", h) |
| + } |
| +} |
| + |
| // header returns everything between <header> and </header> — the chrome, on |
| // its own, so a switcher assertion cannot be satisfied by the page body |
| // happening to contain an account name. |
diff --git a/internal/console/templates/layout.html b/internal/console/templates/layout.html| index 69a2b123c..cd4ef06c9 100644 |
| --- a/internal/console/templates/layout.html |
| +++ b/internal/console/templates/layout.html |
| @@ -98,12 +98,25 @@ |
| header .switcher[open] > summary > .icon { transform: rotate(180deg); } |
| header .switcher-menu { |
| position: absolute; z-index: 20; top: calc(100% + 0.6rem); left: -0.5rem; |
| - min-width: 13rem; max-width: 20rem; |
| + /* max-content, not shrink-to-fit: the menu's containing block is the |
| + narrow trigger, so shrink-to-fit pinned it at min-width and wrapped |
| + any name longer than that mid-word. */ |
| + width: max-content; min-width: 13rem; max-width: 20rem; |
| background: var(--bg); border: 1px solid var(--rule); border-radius: 0.6rem; |
| padding: 0.35rem; font-size: 0.9rem; |
| box-shadow: 0 0.4rem 1.5rem rgba(0, 0, 0, 0.14); |
| } |
| - header .switcher-menu ul { list-style: none; margin: 0; padding: 0; } |
| + /* Someone in dozens of accounts gets a list that scrolls inside the menu |
| + instead of running off the bottom of the screen. */ |
| + header .switcher-menu ul { |
| + list-style: none; margin: 0; padding: 0; |
| + max-height: min(22rem, 60vh); overflow-y: auto; overscroll-behavior: contain; |
| + } |
| + /* The filter box only renders past a handful of accounts, and stays |
| + hidden until the script at the foot shows it: with JS off it could not |
| + filter anything. */ |
| + header .switcher-find { display: block; width: 100%; margin: 0 0 0.35rem; } |
| + header .switcher-none { padding: 0.35rem 0.55rem; color: var(--muted); } |
| header .switcher-menu a, header .switcher-menu .current { |
| display: flex; align-items: baseline; gap: 0.5rem; |
| padding: 0.35rem 0.55rem; border-radius: 0.4rem; |
| @@ -545,6 +558,8 @@ |
| {{icon "chevron-down"}} |
| </summary> |
| <div class="switcher-menu"> |
| + {{if gt (len .Accounts) 7}}<input type="search" class="switcher-find" placeholder="Find an account" aria-label="Find an account" autocomplete="off" spellcheck="false" hidden> |
| + <p class="switcher-none" hidden>No account matches that.</p>{{end}} |
| <ul> |
| {{range .Accounts}}<li>{{if eq .Sqid $.Account.Sqid}} |
| <span class="current" aria-current="true"><span class="mark">{{icon "check"}}</span>{{.Name}}</span> |
| @@ -585,6 +600,9 @@ |
| // This adds the two behaviours a menu is expected to have and the element |
| // does not — Escape closes it (returning focus to the trigger), and a click |
| // anywhere else closes it. With JS off, the dropdown is unchanged. |
| +// |
| +// For a long list it also adds the filter box: typing narrows the rows by |
| +// name, Enter opens the first row left, and the arrow keys walk the rows. |
| (function () { |
| var d = document.getElementById("switcher"); |
| if (!d) return; |
| @@ -594,6 +612,57 @@ |
| document.addEventListener("click", function (e) { |
| if (d.open && !d.contains(e.target)) d.open = false; |
| }); |
| + |
| + var find = d.querySelector(".switcher-find"); |
| + var none = d.querySelector(".switcher-none"); |
| + var list = d.querySelector(".switcher-menu ul"); |
| + if (!list) return; |
| + var rows = Array.prototype.slice.call(list.children); |
| + if (find) find.hidden = false; |
| + |
| + function shown() { |
| + return rows.filter(function (li) { return !li.hidden; }) |
| + .map(function (li) { return li.querySelector("a"); }) |
| + .filter(Boolean); |
| + } |
| + function filter() { |
| + var q = find.value.trim().toLowerCase(), any = false; |
| + rows.forEach(function (li) { |
| + li.hidden = q !== "" && li.textContent.toLowerCase().indexOf(q) < 0; |
| + if (!li.hidden) any = true; |
| + }); |
| + none.hidden = any; |
| + list.hidden = !any; |
| + } |
| + if (find) { |
| + find.addEventListener("input", filter); |
| + find.addEventListener("keydown", function (e) { |
| + var links = shown(); |
| + if (e.key === "Enter" && links.length) { e.preventDefault(); links[0].click(); } |
| + if (e.key === "ArrowDown" && links.length) { e.preventDefault(); links[0].focus(); } |
| + }); |
| + } |
| + list.addEventListener("keydown", function (e) { |
| + if (e.key !== "ArrowDown" && e.key !== "ArrowUp") return; |
| + var links = shown(), i = links.indexOf(document.activeElement); |
| + if (i < 0) return; |
| + e.preventDefault(); |
| + if (e.key === "ArrowDown") { if (i + 1 < links.length) links[i + 1].focus(); } |
| + else if (i > 0) links[i - 1].focus(); |
| + else if (find) find.focus(); |
| + }); |
| + d.addEventListener("toggle", function () { |
| + if (!d.open) { |
| + if (find && find.value) { find.value = ""; filter(); } |
| + return; |
| + } |
| + // Open on the account you are in, wherever it sits in a long list. |
| + var cur = list.querySelector("[aria-current]"); |
| + if (cur) list.scrollTop = cur.parentNode.offsetTop - list.offsetTop - list.clientHeight / 2; |
| + // Type straight away with a keyboard; a phone does not get its |
| + // on-screen keyboard thrown up just for opening the menu. |
| + if (find && window.matchMedia("(pointer: fine)").matches) find.focus(); |
| + }); |
| })(); |
| </script> |
| </body> |