carlos / platform Public

harness: evidence bundle and the signer IAM review; defect 3 shows as the one implicitDeny (step 11)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude agent, operated by paul@keymail.dev f21481313fa6f03d8e58da5a42805b794e903720 parent c94c994
4 files changed, +450 −0
  • harness/RUNLOG.md +63 −0
  • harness/checks/iam-review-signer.txt +54 −0
  • harness/checks/signer-actions.tsv +283 −0
  • harness/evidence.sh +50 −0

CI failed — run details

CI log
=== gate ===
go: downloading github.com/aws/aws-sdk-go-v2 v1.44.0
go: downloading github.com/aws/aws-sdk-go-v2/service/route53 v1.64.1
go: downloading github.com/aws/aws-sdk-go-v2/config v1.32.6
go: downloading github.com/aws/aws-sdk-go-v2/service/sns v1.43.0
go: downloading github.com/aws/aws-sdk-go-v2/service/s3 v1.105.0
go: downloading modernc.org/sqlite v1.55.0
go: downloading github.com/superfly/ltx v0.5.1
go: downloading github.com/aws/aws-sdk-go-v2/service/ec2 v1.324.0
go: downloading github.com/benbjohnson/litestream v0.5.14
go: downloading github.com/aws/aws-sdk-go-v2/service/autoscaling v1.74.0
go: downloading github.com/aws/smithy-go v1.28.1
go: downloading golang.org/x/crypto v0.53.0
go: downloading github.com/aws/aws-sdk-go-v2/service/ssm v1.74.0
go: downloading golang.org/x/sys v0.46.0
go: downloading github.com/oschwald/maxminddb-golang v1.13.1
go: downloading github.com/aws/aws-sdk-go-v2/service/acm v1.45.0
go: downloading github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.68.0
go: downloading github.com/aws/aws-sdk-go-v2/service/iam v1.58.2
go: downloading github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.37.0
go: downloading github.com/aws/aws-sdk-go-v2/service/sts v1.45.6
go: downloading github.com/aws/aws-sdk-go-v2/credentials v1.19.6
go: downloading github.com/klauspost/compress v1.18.0
go: downloading github.com/pion/logging v0.2.4
go: downloading github.com/pion/stun/v3 v3.0.1
go: downloading github.com/pion/turn/v4 v4.1.4
go: downloading golang.org/x/net v0.56.0
go: downloading github.com/aws/aws-sdk-go-v2/service/sesv2 v1.66.6
go: downloading github.com/aws/aws-sdk-go-v2/service/costexplorer v1.67.5
go: downloading github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.16
go: downloading github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4
go: downloading github.com/aws/aws-sdk-go-v2/service/signin v1.0.4
go: downloading github.com/aws/aws-sdk-go-v2/service/sso v1.30.8
go: downloading github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.12
go: downloading github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.40
go: downloading github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.38
go: downloading github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.19
go: downloading github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.40
go: downloading github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.14
go: downloading github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.23
go: downloading github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.31
go: downloading github.com/pierrec/lz4/v4 v4.1.22
go: downloading github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.40
go: downloading github.com/pion/dtls/v3 v3.0.7
go: downloading github.com/pion/transport/v3 v3.0.8
go: downloading github.com/pion/randutil v0.1.0
go: downloading github.com/pion/transport/v4 v4.0.1
go: downloading github.com/prometheus/client_golang v1.17.0
go: downloading golang.org/x/sync v0.21.0
go: downloading github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.20.18
go: downloading github.com/lmittmann/tint v1.1.3
go: downloading github.com/mattn/go-isatty v0.0.20
go: downloading github.com/beorn7/perks v1.0.1
go: downloading google.golang.org/protobuf v1.36.10
go: downloading github.com/prometheus/procfs v0.12.0
go: downloading github.com/prometheus/common v0.45.0
go: downloading github.com/prometheus/client_model v0.5.0
go: downloading github.com/cespare/xxhash/v2 v2.3.0
go: downloading github.com/wlynxg/anet v0.0.5
go: downloading github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0
go: downloading golang.org/x/text v0.38.0
go: downloading modernc.org/libc v1.74.1
go: downloading modernc.org/memory v1.11.0
go: downloading github.com/google/uuid v1.6.0
go: downloading modernc.org/mathutil v1.7.1
go: downloading github.com/dustin/go-humanize v1.0.1
go: downloading github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec
cd launchctx && go vet ./... && go test ./... -count=1
ok  	amadan.net/carlos/platform.git/launchctx	0.012s
?   	amadan.net/carlos/platform.git/launchctx/controlname	[no test files]
?   	amadan.net/carlos/platform.git/launchctx/wireid	[no test files]
go vet ./...
go: downloading golang.org/x/tools v0.47.0
go: downloading golang.org/x/mod v0.37.0
gofmt -l .: clean
go test ./... -count=1 -timeout 30m
ok  	github.com/carlosframework/platform	315.121s
?   	github.com/carlosframework/platform/cmd/changelog	[no test files]
ok  	github.com/carlosframework/platform/cmd/console	2.758s
ok  	github.com/carlosframework/platform/cmd/moveprobe	92.271s
ok  	github.com/carlosframework/platform/cmd/zddprobe	0.710s
ok  	github.com/carlosframework/platform/internal/activator	251.426s
ok  	github.com/carlosframework/platform/internal/agentsock	0.015s
ok  	github.com/carlosframework/platform/internal/alerting	0.006s
ok  	github.com/carlosframework/platform/internal/analytics	0.019s
ok  	github.com/carlosframework/platform/internal/appconfig	2.451s
ok  	github.com/carlosframework/platform/internal/apperr	0.096s
ok  	github.com/carlosframework/platform/internal/applog	0.148s
ok  	github.com/carlosframework/platform/internal/awsinv	0.003s
ok  	github.com/carlosframework/platform/internal/boxchoice	0.005s
ok  	github.com/carlosframework/platform/internal/boxid	0.827s
?   	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.009s
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.697s
ok  	github.com/carlosframework/platform/internal/changelog	0.322s
ok  	github.com/carlosframework/platform/internal/claimactivation	0.811s
ok  	github.com/carlosframework/platform/internal/clamd	0.057s
?   	github.com/carlosframework/platform/internal/cliflag	[no test files]
ok  	github.com/carlosframework/platform/internal/console	409.031s
?   	github.com/carlosframework/platform/internal/controlname	[no test files]
?   	github.com/carlosframework/platform/internal/controlsock	[no test files]
ok  	github.com/carlosframework/platform/internal/dbdoor	5.649s
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.004s
ok  	github.com/carlosframework/platform/internal/docsite	0.005s
ok  	github.com/carlosframework/platform/internal/domains	2.350s
ok  	github.com/carlosframework/platform/internal/doorkey	0.008s
ok  	github.com/carlosframework/platform/internal/economics	0.003s
ok  	github.com/carlosframework/platform/internal/edge	45.456s
?   	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.133s
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.016s
ok  	github.com/carlosframework/platform/internal/geoip	0.030s
ok  	github.com/carlosframework/platform/internal/historyreadback	0.154s
ok  	github.com/carlosframework/platform/internal/host	185.304s
ok  	github.com/carlosframework/platform/internal/hostactors	5.954s
ok  	github.com/carlosframework/platform/internal/hostactors/awsmembership	0.008s
ok  	github.com/carlosframework/platform/internal/hostbox	2.797s
ok  	github.com/carlosframework/platform/internal/hostclaim	0.676s
ok  	github.com/carlosframework/platform/internal/hostenv	0.004s
ok  	github.com/carlosframework/platform/internal/hostevidence	0.008s
ok  	github.com/carlosframework/platform/internal/hostexec	5.137s
ok  	github.com/carlosframework/platform/internal/hostfence	0.046s
ok  	github.com/carlosframework/platform/internal/hostfiles	10.762s
ok  	github.com/carlosframework/platform/internal/hostfloor	0.016s
ok  	github.com/carlosframework/platform/internal/hostguard	0.993s
ok  	github.com/carlosframework/platform/internal/hostops	1.688s
?   	github.com/carlosframework/platform/internal/hostops/fencerelease	[no test files]
ok  	github.com/carlosframework/platform/internal/hostops/internal/fencerelease	0.004s
ok  	github.com/carlosframework/platform/internal/hostquarantine	0.005s
ok  	github.com/carlosframework/platform/internal/hostrelocate	0.547s
ok  	github.com/carlosframework/platform/internal/hostresolve	0.175s
ok  	github.com/carlosframework/platform/internal/hostwrite	0.003s
ok  	github.com/carlosframework/platform/internal/infraview	0.002s
ok  	github.com/carlosframework/platform/internal/instancectl	5.267s
ok  	github.com/carlosframework/platform/internal/instanceexec	2.756s
ok  	github.com/carlosframework/platform/internal/instancefs	0.006s
ok  	github.com/carlosframework/platform/internal/instancekey	0.002s
ok  	github.com/carlosframework/platform/internal/instanceupdates	0.008s
ok  	github.com/carlosframework/platform/internal/layout	1.611s
ok  	github.com/carlosframework/platform/internal/lbhealth	0.003s
ok  	github.com/carlosframework/platform/internal/lease	9.873s
ok  	github.com/carlosframework/platform/internal/lease/leasetest	0.008s
ok  	github.com/carlosframework/platform/internal/ledger	0.013s
ok  	github.com/carlosframework/platform/internal/mail	0.207s
ok  	github.com/carlosframework/platform/internal/maintenance	0.090s
ok  	github.com/carlosframework/platform/internal/maintenanceexec	5.732s
ok  	github.com/carlosframework/platform/internal/maintenanceguard	0.068s
ok  	github.com/carlosframework/platform/internal/metrics	0.006s
ok  	github.com/carlosframework/platform/internal/moves	21.721s
ok  	github.com/carlosframework/platform/internal/moves/archive	0.865s
ok  	github.com/carlosframework/platform/internal/objstore	0.277s
ok  	github.com/carlosframework/platform/internal/ops	0.181s
ok  	github.com/carlosframework/platform/internal/park	0.317s
ok  	github.com/carlosframework/platform/internal/privatefile	0.003s
2026/10/20 01:58:00 provision: listing apps/bab/blog/instances/: list refused — its records are unseen this pass
2026/10/20 01:58:00 provision: listing apps/bab/: listdirs refused — its records are unseen this pass
2026/10/20 01:58:00 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/20 01:58:00 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/20 01:58:00 provision: skipping record apps/bac/tito/instances/one.example.com.json: unreadable: read refused
2026/10/20 01:58:00 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/20 01:58:00 provision: an app's records could not be listed: they are skipped
2026/10/20 01:58:00 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 01:58:00 provision: remove retired instance route shop.example: provision: claim admission unavailable
2026/10/20 01:58:00 provision: remove retired instance route shop.example: provision: claim admission unavailable
2026/10/20 01:58:00 provision: remove retired sidecar route worker.sidecar.internal: provision: claim admission unavailable
2026/10/20 01:58:00 provision: remove retired sidecar route worker.sidecar.internal: provision: claim admission unavailable
2026/10/20 01:58:00 provision: claim install acme.go.tito.io: provision: claim admission unavailable
2026/10/20 01:58:00 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/20 01:58:00 provision: claim install bot.eleven.bac.sidecar.internal: provision: claim admission unavailable
2026/10/20 01:58:00 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 01:58:00 provision: claim install bot.eleven.bac.sidecar.internal: registry: claim row ownership changed or unknown
2026/10/20 01:58:00 provision: refusing to mint route acme.go.tito.io (app "tito" acct "bac"): this box declares CARLOS_INBOUND=none (no-inbound) and cannot serve routed instance traffic
2026/10/20 01:58:00 provision: acme.go.tito.io: not minting this pass: the box's layout intent could not be read: no sealed config
2026/10/20 01:58:00 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: REFUSING to mint sidecar bot.eleven.bac.sidecar.internal: bot.eleven.bac.sidecar.internal-sidecar.env is staged on this box — the legacy file co-spawn and a native sidecar row are two mechanisms for one host; remove the file to migrate this host onto sidecar records
2026/10/20 01:58:00 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 01:58:00 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 01:58:00 provision: refusing to mint route acme.go.tito.io (app "tito" acct "bac"): this box declares CARLOS_INBOUND=none (no-inbound) and cannot serve routed instance traffic
2026/10/20 01:58:00 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: REFUSING to mint sidecar bot.eleven.bac.sidecar.internal: bot.eleven.bac.sidecar.internal-sidecar.env is staged on this box — the legacy file co-spawn and a native sidecar row are two mechanisms for one host; remove the file to migrate this host onto sidecar records
2026/10/20 01:58:00 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 01:58:00 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 01:58:00 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/20 01:58:00 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/20 01:58:00 provision: bot.eleven.bac.sidecar.internal exists but is not a sidecar row this pass owns (kind "sidecar" provisioned false app "eleven" acct "bac") — leaving it alone
2026/10/20 01:58:00 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 01:58:00 provision: claim install bot.eleven.bac.sidecar.internal: registry: claim row ownership changed or unknown
2026/10/20 01:58:00 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 01:58:00 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 01:58:00 provision: bot.eleven.bac.sidecar.internal exists but is not a sidecar row this pass owns (kind "sidecar" provisioned false app "eleven" acct "bac") — leaving it alone
2026/10/20 01:58:00 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 01:58:00 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 01:58:00 provision: skipping record apps/bac/tito/instances/new.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 01:58:00 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 01:58:00 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 01:58:00 provision: skipping record apps/bac/tito/instances/new.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 01:58:00 provision: minted instance route rk.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: minted instance route ra.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: minted instance route rb.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: minted instance route rf.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: minted instance route rh.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: minted instance route rj.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: minted instance route rl.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: minted instance route rc.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: minted instance route rd.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: minted instance route re.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: minted instance route rg.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: minted instance route ri.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: minted instance route rb.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: minted instance route rc.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: minted instance route rd.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: minted instance route ra.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:00 provision: skipping record apps/bac/tito/instances/rb.go.tito.io.json: read failed: read refused
2026/10/20 01:58:00 provision: skipping record apps/bac/tito/instances/rb.go.tito.io.json: read failed: read refused
2026/10/20 01:58:00 provision: minted instance route re.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route x.apph.example (app "apph" acct "bac")
2026/10/20 01:58:01 provision: minted instance route x.appa.example (app "appa" acct "bac")
2026/10/20 01:58:01 provision: minted instance route x.appb.example (app "appb" acct "bac")
2026/10/20 01:58:01 provision: minted instance route x.appc.example (app "appc" acct "bac")
2026/10/20 01:58:01 provision: minted instance route x.appe.example (app "appe" acct "bac")
2026/10/20 01:58:01 provision: minted instance route x.appf.example (app "appf" acct "bac")
2026/10/20 01:58:01 provision: minted instance route x.appg.example (app "appg" acct "bac")
2026/10/20 01:58:01 provision: minted instance route x.appi.example (app "appi" acct "bac")
2026/10/20 01:58:01 provision: minted instance route x.appj.example (app "appj" acct "bac")
2026/10/20 01:58:01 provision: minted instance route x.appd.example (app "appd" acct "bac")
2026/10/20 01:58:01 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 01:58:01 provision: minted instance route r0013.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0084.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0018.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0025.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0058.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0082.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0108.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0111.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0119.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0005.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0048.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0073.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0089.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0117.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0129.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0028.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0070.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0076.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0001.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0038.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0124.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0027.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0008.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0043.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0056.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0087.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0096.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0099.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0116.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0052.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0051.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0101.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0024.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0037.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0039.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0044.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0069.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0074.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0079.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0123.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0030.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0031.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0075.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0113.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0049.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0003.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0015.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0017.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0036.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0112.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0115.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0022.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0026.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0000.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0057.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0054.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0064.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0066.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0090.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0103.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0106.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0006.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0023.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0121.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0021.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0081.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0085.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0009.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0014.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0041.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0047.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0093.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0098.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0120.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0128.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0059.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0071.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0114.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0102.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0055.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0007.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0032.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0086.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0077.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0080.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0050.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0020.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0034.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0035.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0061.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0097.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0011.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0053.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0060.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0062.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0063.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0095.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0019.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0067.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0072.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0092.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0105.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0122.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0029.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0042.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0010.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0040.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0045.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0088.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0125.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0068.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0104.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0110.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0046.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0004.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0065.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0078.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0109.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0094.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0107.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0118.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0002.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0100.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0126.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0012.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0016.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0033.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0083.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0091.go.tito.io (app "tito" acct "bac")
2026/10/20 01:58:01 provision: minted instance route r0127.go.tito.io (app "tito" acct "bac")
--- FAIL: TestPlan14RootReadCensus (4.63s)
    plan14_root_reads_test.go:940: root read census: 77 discrepancies
        changed root read internal/hostfence/writer.go:OpenRootFenceStore; review class, task, sites and digest
        changed root source envelope harness
        changed root source envelope harness/boxes
        changed root source envelope harness/boxes/shims
        changed root source envelope harness/checks
        changed root source envelope harness/console
        changed root source envelope harness/infra
        changed root source envelope harness/infra-copies/747f699/dev
        changed root source envelope harness/infra-copies/a0b3f5a/dev
        changed root source envelope harness/infra-copies/a0b3f5a/scripts
        changed root source envelope harness/infra-copies/pr47
        changed root source envelope harness/operator
        changed root source envelope harness/release
        changed root source envelope harness/scenarios/cohort1
        changed root source envelope harness/scenarios/cohort1/blocks
        changed root source envelope internal/host
        changed root source envelope internal/hostfence
        changed root source envelope internal/publicrelease
        changed root source envelope internal/s3compat
        unclassified root read harness/boxes/boxes-up.sh:external file:external@0
        unclassified root read harness/boxes/dmi-shim.sh:external file:external@0
        unclassified root read harness/boxes/layout-probe.sh:external file:external@0
        unclassified root read harness/boxes/shims/systemd-zram-setup@.service:external file:external@0
        unclassified root read harness/checks/check2.sh:external file:external@0
        unclassified root read harness/checks/check5.sh:external file:external@0
        unclassified root read harness/checks/check6.sh:external file:external@0
        unclassified root read harness/checks/check6b.sh:external file:external@0
        unclassified root read harness/checks/check7.sh:external file:external@0
        unclassified root read harness/checks/check8.sh:external file:external@0
        unclassified root read harness/checks/fix5.sh:external file:external@0
        unclassified root read harness/checks/run6b.sh:external file:external@0
        unclassified root read harness/checks/snap-base.sh:external file:external@0
        unclassified root read harness/checks/snap-boot.sh:external file:external@0
        unclassified root read harness/checks/ssmsmoke.sh:external file:external@0
        unclassified root read harness/console/console-ext4.sh:external file:external@0
        unclassified root read harness/console/console-setup.sh:external file:external@0
        unclassified root read harness/console/signin.sh:external file:external@0
        unclassified root read harness/console/system-update.sh:external file:external@0
        unclassified root read harness/donor-user-data.sh:external file:external@0
        unclassified root read harness/evidence.sh:external file:external@0
        unclassified root read harness/host-setup.sh:external file:external@0
        unclassified root read harness/host-user-data.sh:external file:external@0
        unclassified root read harness/infra-copies/747f699/dev/host-init.sh:external file:external@0
        unclassified root read harness/infra-copies/a0b3f5a/dev/host-init.sh:external file:external@0
        unclassified root read harness/infra-copies/a0b3f5a/scripts/bootstrap-box.sh:external file:external@0
        unclassified root read harness/infra-copies/a0b3f5a/scripts/ship-app.sh:external file:external@0
        unclassified root read harness/infra-copies/a0b3f5a/scripts/update-platform-binary.sh:external file:external@0
        unclassified root read harness/infra-copies/pr47/probe.sh:external file:external@0
        unclassified root read harness/infra-copies/pr47/remediation.sh:external file:external@0
        unclassified root read harness/infra/infra-setup.sh:external file:external@0
        unclassified root read harness/operator/operator-setup.sh:external file:external@0
        unclassified root read harness/release/release-setup.sh:external file:external@0
        unclassified root read harness/release/step7-operator.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/50-publish-record.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/51-open-signer.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/51-roster-resume.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/51-roster.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/61-sign.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/61a-install-channel.box.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/62-guard-arm.box.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/63-run.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/63-sophie.box.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/7-console-report.box.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/7-evidence-key.box.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/7-run.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/7-runtime.box.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/74-run.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/7a-leo.box.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/7a-run.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/p9.box.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/blocks/reports.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/box-helpers.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/signer-helpers.sh:external file:external@0
        unclassified root read harness/scenarios/cohort1/ssm.sh:external file:external@0
        unclassified root read harness/snapshot.sh:external file:external@0
        unclassified root read internal/s3compat/harness.go:readHarnessFile file:ReadFile@189,file:Stat@55
        changed reclassified declaration internal/hostfence/writer.go:OpenRootFenceStore
2026/10/20 01:59:24 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:24 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:24 provision: refusing to mint route acme.go.tito.io (app "tito" acct "bac"): this box declares CARLOS_INBOUND=none (no-inbound) and cannot serve routed instance traffic
2026/10/20 01:59:24 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:24 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:24 provision: minted service route svc.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:24 provision: minted instance route whole.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:24 provision: minted instance route console.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:24 provision: minted service route ha.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:24 provision: minted instance route shared.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: converged acme.go.tito.io channel stable -> edge
2026/10/20 01:59:25 provision: converged acme.go.tito.io channel edge -> canary/rehearsal
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: empty channel
2026/10/20 01:59:25 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: converged acme.go.tito.io environment "" -> "staging"
2026/10/20 01:59:25 provision: converged acme.go.tito.io environment "staging" -> ""
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: converged acme.go.tito.io steering "" -> "latency"
2026/10/20 01:59:25 provision: converged acme.go.tito.io steering "latency" -> ""
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: converged acme.go.tito.io hibernate false -> true
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: converged acme.go.tito.io hibernate true -> false (replication "daily" cleared: only a hibernating route's rung is read)
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: converged acme.go.tito.io status-named false -> true
2026/10/20 01:59:25 provision: converged acme.go.tito.io status-named true -> false
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: minted service route ha.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: converged ha.go.tito.io upstreams addr "" -> "", addrs "127.0.0.1:7001,127.0.0.1:7002" -> "127.0.0.1:7001,127.0.0.1:7003" (probe "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}" -> "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}")
2026/10/20 01:59:25 provision: converged ha.go.tito.io upstreams addr "" -> "", addrs "127.0.0.1:7001,127.0.0.1:7003" -> "127.0.0.1:7003,127.0.0.1:7001" (probe "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}" -> "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}")
2026/10/20 01:59:25 provision: converged ha.go.tito.io upstreams addr "" -> "", addrs "127.0.0.1:7003,127.0.0.1:7001" -> "127.0.0.1:7003,127.0.0.1:7001" (probe "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}" -> "{\"path\":\"/healthz\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}")
2026/10/20 01:59:25 provision: minted service route whole.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: converged whole.go.tito.io upstreams addr "127.0.0.1:9443" -> "", addrs "" -> "127.0.0.1:9443,127.0.0.1:9444" (probe "" -> "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}")
2026/10/20 01:59:25 provision: converged whole.go.tito.io upstreams addr "" -> "", addrs "127.0.0.1:9443,127.0.0.1:9444" -> "" (probe "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}" -> "")
2026/10/20 01:59:25 provision: whole.go.tito.io: record describes a different route SHAPE than the row (kind "instance"/"service" unit ""/"" socket "/run/carlos/whole.go.tito.io.sock"/"" db "/data/whole.go.tito.io.db"/"") — not converged in place; `carlos remove whole.go.tito.io` purges this route's capability grants (registry.Delete's contract, not a bug) before the next pass re-mints it, so treat that as a last resort, not a routine fix
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: minted service route whole.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: skipping accounts/bac/account.json: malformed account manifest: invalid character 'o' in literal null (expecting 'u')
2026/10/20 01:59:25 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: manifest bac/tito: read failed: provision: manifest bac/tito: invalid character 'o' in literal null (expecting 'u')
2026/10/20 01:59:25 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: disagrees with its own path (host="wrong-host.go.tito.io" account="bac" app="tito")
2026/10/20 01:59:25 provision: skipping record apps/bac/tito/instances/acme$evil.go.tito.io.json: host "acme$evil.go.tito.io" is not a hostname
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: skipping record apps/bac/tito/instances/acme$evil.go.tito.io.json: host "acme$evil.go.tito.io" is not a hostname
2026/10/20 01:59:25 provision: not removing acme$evil.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 01:59:25 provision: skipping record apps/bac/tito/instances/bad-service.go.tito.io.json: invalid shape: kind service with no addr: the platform only proxies to a service, so the record must name the upstream it proxies to
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: skipping record apps/bac/tito/instances/bad-service.go.tito.io.json: invalid shape: kind service with no addr: the platform only proxies to a service, so the record must name the upstream it proxies to
2026/10/20 01:59:25 provision: not removing bad-service.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 01:59:25 provision: skipping record apps/bac/tito/instances/no-channel.go.tito.io.json: empty channel
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: skipping record apps/bac/tito/instances/no-channel.go.tito.io.json: empty channel
2026/10/20 01:59:25 provision: not removing no-channel.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 01:59:25 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 01:59:25 provision: removed retired instance route ghost.go.tito.io (record gone)
2026/10/20 01:59:25 provision: duplicate host dup.go.tito.io: keeping apps/bac/tito/instances/dup.go.tito.io.json, skipping apps/bad/tito/instances/dup.go.tito.io.json
2026/10/20 01:59:25 provision: minted instance route dup.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 01:59:25 provision: removed retired instance route acme.go.tito.io (app in the trash)
2026/10/20 01:59:25 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 01:59:25 provision: removed retired static route site.go.tito.io (app in the trash)
2026/10/20 01:59:25 provision: trash marker for bac/tito unreadable: release: malformed trash marker for bac/tito: invalid character 'n' looking for beginning of object key string — not minting for this app
2026/10/20 01:59:25 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 01:59:25 provision: removed retired instance route acme.go.tito.io (app in the trash)
2026/10/20 01:59:25 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 01:59:25 provision: trash marker for bac/tito unreadable: release: malformed trash marker for bac/tito: invalid character 'n' looking for beginning of object key string — not minting for this app
2026/10/20 01:59:25 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 01:59:25 provision: converged acme.go.tito.io channel stable -> edge
2026/10/20 01:59:25 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 01:59:25 provision: converged acme.go.tito.io channel canary/rehearsal -> edge
2026/10/20 01:59:25 provision: converged acme.go.tito.io environment "staging" -> ""
2026/10/20 01:59:25 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 01:59:25 provision: acme.go.tito.io exists but is not the route this record describes (backing "unit" (box-scoped, not expressible in a record)) — leaving it alone
2026/10/20 01:59:25 provision: acme.go.tito.io exists but is not the route this record describes (tunnel "pi-fleet" (box-scoped, not expressible in a record)) — leaving it alone
2026/10/20 01:59:25 provision: acme.go.tito.io exists but is not the route this record describes (caps "port:25" (box-scoped, not expressible in a record)) — leaving it alone
2026/10/20 01:59:25 provision: acme.go.tito.io exists but is not the route this record describes (platform (owned by the domains reconcile pass)) — leaving it alone
2026/10/20 01:59:25 provision: acme.go.tito.io exists but is not the route this record describes (canary (owned by the domains reconcile pass)) — leaving it alone
2026/10/20 01:59:25 provision: acme.go.tito.io exists but is not the route this record describes (db "/data/other.db"/"/data/acme.go.tito.io.db") — leaving it alone
2026/10/20 01:59:25 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 01:59:25 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/20 01:59:25 provision: dry-run: would mint instance route acme.go.tito.io (app "tito" acct "bac" channel "stable")
2026/10/20 01:59:25 provision: dry-run: would adopt existing route adopt.go.tito.io (app "tito" acct "bac") — this record would own its channel and environment
2026/10/20 01:59:25 provision: dry-run: would converge adopt.go.tito.io channel stable -> edge
2026/10/20 01:59:25 provision: dry-run: would converge adopt.go.tito.io environment "" -> "staging"
2026/10/20 01:59:25 provision: dry-run: would converge owned.go.tito.io channel stable -> edge
2026/10/20 01:59:25 provision: dry-run: would converge owned.go.tito.io environment "" -> "staging"
2026/10/20 01:59:25 provision: dry-run: would converge owned.go.tito.io hibernate false -> true
2026/10/20 01:59:25 provision: dry-run: would converge owned.go.tito.io seed
2026/10/20 01:59:25 provision: dry-run: would remove retired instance route gone.go.tito.io (record gone)
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: adopted existing route adopt.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 01:59:25 provision: converged adopt.go.tito.io channel stable -> edge
2026/10/20 01:59:25 provision: converged adopt.go.tito.io environment "" -> "staging"
2026/10/20 01:59:25 provision: converged owned.go.tito.io channel stable -> edge
2026/10/20 01:59:25 provision: converged owned.go.tito.io environment "" -> "staging"
2026/10/20 01:59:25 provision: converged owned.go.tito.io hibernate false -> true
2026/10/20 01:59:25 provision: removed retired instance route gone.go.tito.io (record gone)
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: adopted existing route story.carlosframework.com (app "story" acct "bad") — this record now owns its channel and environment
2026/10/20 01:59:25 provision: story.carlosframework.com exists but is not the route this record describes (kind "instance"/"static") — leaving it alone
2026/10/20 01:59:25 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: minted service route pub.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: minted service route pubs.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: minted service route priv.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: minted instance route unit.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: minted instance route exec.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: minted service route loop.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: minted service route named.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: minted static route pisite.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: removed retired static route site.go.tito.io (record gone)
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: minted instance route acme-uk.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:26 provision: converged acme.go.tito.io replicas "ie,uk" -> "uk"
2026/10/20 01:59:26 provision: converged acme.go.tito.io replicas "uk" -> ""
2026/10/20 01:59:26 provision: minted instance route acme-uk.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:26 provision: converged acme-uk.go.tito.io replica mark true -> false
2026/10/20 01:59:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:26 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:26 provision: acme.go.tito.io: row is on the nested layout (db "/data/instances/acme.go.tito.io/acme.go.tito.io.db" socket "/run/carlos/instances/acme.go.tito.io/app.sock"); the record's shared paths are not drift
2026/10/20 01:59:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:26 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:26 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:26 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:26 provision: acme.go.tito.io: not minting this pass: the box's layout intent could not be read: store down
2026/10/20 01:59:26 provision: router.go.tito.io: not minting this pass: the box's layout intent could not be read: store down
2026/10/20 01:59:26 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 01:59:26 provision: converged acme.go.tito.io channel stable -> edge
2026/10/20 01:59:26 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/20 01:59:26 provision: not removing acme.go.tito.io (record gone): participant of a running operation
2026/10/20 01:59:26 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/20 01:59:26 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/20 01:59:26 provision: refusing to mint held route acme.go.tito.io (app "tito" acct "bac"): this box declares CARLOS_INBOUND=none (no-inbound) and cannot serve routed instance traffic
2026/10/20 01:59:26 provision: held acme.go.tito.io landing by mv_acme (was ready)
2026/10/20 01:59:26 provision: acme.go.tito.io: held restoring by rb_other, not by mv_acme; leaving it
2026/10/20 01:59:26 provision: acme.go.tito.io: the row is not this pass's (app "other" acct ""); not holding it for mv_acme
2026/10/20 01:59:26 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 01:59:26 provision: dry-run: would mint instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac" channel "stable")
2026/10/20 01:59:26 provision: acme.go.tito.io: not held landing by mv_acme: the row's hold changed under this pass; the next pass judges it afresh
2026/10/20 01:59:26 provision: held acme.go.tito.io landing by mv_acme (was ready)
2026/10/20 01:59:26 provision: minted instance route acme.example.com (app "shop" acct "bac")
2026/10/20 01:59:26 provision: minted instance route plain.example.com (app "shop" acct "bac")
2026/10/20 01:59:26 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 01:59:26 provision: skipping record apps/bac/shop/instances/liar.shop.example.com.json: disagrees with its own path (host="other.shop.example.com" account="bac" app="shop")
2026/10/20 01:59:26 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 01:59:26 provision: skipping record apps/bac/shop/instances/liar.shop.example.com.json: disagrees with its own path (host="other.shop.example.com" account="bac" app="shop")
2026/10/20 01:59:26 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 01:59:26 provision: skipping record apps/bac/shop/instances/liar.shop.example.com.json: disagrees with its own path (host="other.shop.example.com" account="bac" app="shop")
2026/10/20 01:59:26 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 01:59:26 provision: listing apps/bac/shop/instances/: list refused — its records are unseen this pass
2026/10/20 01:59:26 provision: a.shop.example.com: swapped for import sd_ar6g52ekr4jdkgedskzenvlkdu (the original route is journaled)
2026/10/20 01:59:26 provision: a.shop.example.com: import sd_ar6g52ekr4jdkgedskzenvlkdu committed: its gate is cleared and its journal row dropped
2026/10/20 01:59:26 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_byse6cmrhzhhgxe52mmhvaxfhm rolled back to its original route
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_byse6cmrhzhhgxe52mmhvaxfhm: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_byse6cmrhzhhgxe52mmhvaxfhm is cleaned up and its journal row retired
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_gpsotzolu6v6y76lpu3z5lot4i rolled back to its original route
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_gpsotzolu6v6y76lpu3z5lot4i: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_gpsotzolu6v6y76lpu3z5lot4i is cleaned up and its journal row retired
2026/10/20 01:59:27 provision: dry-run: would redo a.shop.example.com's swap record CAS for import sd_w6uunnoyeolgwrpkpxqxl4hih4
2026/10/20 01:59:27 provision: dry-run: would clear a.shop.example.com's import gate
2026/10/20 01:59:27 provision: dry-run: would converge a.shop.example.com seed source
2026/10/20 01:59:27 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/20 01:59:27 provision: a.shop.example.com: the import's record apps/bac/shop/instances/a.shop.example.com.json is not one this pass can use (connection reset)
2026/10/20 01:59:27 provision: a.shop.example.com: the import's record apps/bac/shop/instances/a.shop.example.com.json is not one this pass can use (provision: invalid maintenance projection or protected fields)
2026/10/20 01:59:27 provision: a.shop.example.com: the import's record apps/bac/shop/instances/a.shop.example.com.json is not one this pass can use (the record under apps/bac/shop/instances/a.shop.example.com.json is apps/bac/shop/instances/b.shop.example.com.json's)
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_tsep36rq4hq3dv3ewr3zy5kcom cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_shpammn3m33cnl37ppkp5nztmq cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_xttqi6m74kutykij5yskhd774i is journaled, but this box cannot act on imports; its row is left alone
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_f5xgbfghzdffzutdnmjcuxvjka is journaled, but this box cannot act on imports; its row is left alone
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_xjhedv27yu3qqdgpybhyuq3mra is journaled, but this box cannot act on imports; its row is left alone
2026/10/20 01:59:27 provision: the import journal could not be read: registry: import journal a.shop.example.com: original row: unexpected end of JSON input (no import is acted on and no route is removed this pass)
2026/10/20 01:59:27 provision: b.shop.example.com: import sd_h6bvkrh7jkis4uhce6cggkdniy left alone this pass: the import journal could not be read
2026/10/20 01:59:27 provision: c.shop.example.com: import sd_i2vgaly3xe2krrvwade3pndrje left alone this pass: the import journal could not be read
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_wsy5ru7ve2h34eyyfze5wksw64 committed: its gate is cleared and its journal row dropped
2026/10/20 01:59:27 provision: a.shop.example.com: not converging import sd_6xredv7yjs4jev4bnbzwucdxhu: it is swapped but not committed, and the row on this box has no import gate
2026/10/20 01:59:27 provision: a.shop.example.com: not converging import sd_gw3w5imcffpxks255dlhxrobpm: it is swapped but not committed, and the row on this box has no import gate
2026/10/20 01:59:27 provision: a.shop.example.com: not converging import sd_glz63g4okesisvlwvxnwd6v7z4: it is placed but not committed, and the row on this box has no import gate
2026/10/20 01:59:27 provision: a.shop.example.com: not converging import sd_iwegwu6nabygznn27ti6rj6ywi: it is placed but not committed, and the row on this box has no import gate
2026/10/20 01:59:27 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/20 01:59:27 provision: converge seed source on a.shop.example.com: constraint failed: seed_source is read-only here (1811)
2026/10/20 01:59:27 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_k27mhmtnxakfq4zv4cp4xb6smu committed: its gate is cleared and its journal row dropped
2026/10/20 01:59:27 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/20 01:59:27 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:27 provision: acme.go.tito.io: row is on the nested layout (db "/data/instances/acme.go.tito.io/acme.go.tito.io.db" socket "/run/carlos/instances/acme.go.tito.io/app.sock"); the record's shared paths are not drift
2026/10/20 01:59:27 provision: acme.go.tito.io: not minting a seeded instance: this box does not mint nested (<nil>)
2026/10/20 01:59:27 provision: acme.go.tito.io: not minting a seeded instance: claim control is on for this box
2026/10/20 01:59:27 provision: acme.go.tito.io: aborted seed sd_6sjpm6sj4di26zp6iwl5fenvou: this box cannot read seed markers, and places no seed; nothing local is removed
2026/10/20 01:59:27 provision: acme.go.tito.io: aborted seed sd_6sjpm6sj4di26zp6iwl5fenvou rolled back (no box had swapped it)
2026/10/20 01:59:27 provision: acme.go.tito.io: not minting a seeded instance: its record does not describe a hibernating instance
2026/10/20 01:59:27 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:27 provision: removed instance route acme.go.tito.io (its seed sd_zan62zoa62jcvquck26ux2smga was aborted); the next pass rolls it back
2026/10/20 01:59:27 provision: acme.go.tito.io: aborted seed sd_zan62zoa62jcvquck26ux2smga: this box cannot read seed markers, and places no seed; nothing local is removed
2026/10/20 01:59:27 provision: acme.go.tito.io: aborted seed sd_zan62zoa62jcvquck26ux2smga rolled back (no box had swapped it)
2026/10/20 01:59:27 provision: acme.go.tito.io: aborted seed sd_u6pqd7onv52rp2llgyuwf6og6q has a row this pass may not remove; leaving the seed aborted
2026/10/20 01:59:27 provision: acme.go.tito.io: aborted seed sd_vbvfdjyqdu7574a3s4qrdryfre rolled back (no box had swapped it)
2026/10/20 01:59:27 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:27 provision: removed instance route acme.go.tito.io (its seed sd_z5rhhwll2pfrgbswbsml4e2gcq was aborted); the next pass rolls it back
2026/10/20 01:59:27 provision: acme.go.tito.io: aborted seed sd_z5rhhwll2pfrgbswbsml4e2gcq has no route on this box: its local data is removed
2026/10/20 01:59:27 provision: acme.go.tito.io: aborted seed sd_z5rhhwll2pfrgbswbsml4e2gcq rolled back (no box had swapped it)
2026/10/20 01:59:27 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:27 provision: a.shop.example.com: swapped for import sd_l7mtirzzfgpeagk4mkw3eggjvi (the original route is journaled)
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_l7mtirzzfgpeagk4mkw3eggjvi rolled back to its original route
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_l7mtirzzfgpeagk4mkw3eggjvi is cleaned up and its journal row retired
2026/10/20 01:59:27 provision: a.shop.example.com: swapped for import sd_qwhbiyucq6i7ybkh2a62my2vy4 (the original route is journaled)
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_qwhbiyucq6i7ybkh2a62my2vy4 rolled back to its original route
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_qwhbiyucq6i7ybkh2a62my2vy4 is cleaned up and its journal row retired
2026/10/20 01:59:27 provision: a.shop.example.com: swapped for import sd_jzx5sjr2zfipqmr4olmu6cbo3m (the original route is journaled)
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_jzx5sjr2zfipqmr4olmu6cbo3m rolled back to its original route
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_jzx5sjr2zfipqmr4olmu6cbo3m: the host's replica is left alone: its record no longer names this seed
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_jzx5sjr2zfipqmr4olmu6cbo3m is cleaned up and its journal row retired
2026/10/20 01:59:27 provision: a.shop.example.com: swapped for import sd_z6rrjdzjwjlh7hty7p2e2f2vuy (the original route is journaled)
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_z6rrjdzjwjlh7hty7p2e2f2vuy rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_z6rrjdzjwjlh7hty7p2e2f2vuy rolled back to its original route
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_z6rrjdzjwjlh7hty7p2e2f2vuy is cleaned up and its journal row retired
2026/10/20 01:59:27 provision: a.shop.example.com: swapped for import sd_jg7got4aigwhssywmlrvp4wax4 (the original route is journaled)
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_jg7got4aigwhssywmlrvp4wax4 rollback deferred: the host is not fenced and stopped yet (stop unproven)
2026/10/20 01:59:27 provision: a.shop.example.com: swapped for import sd_g4gxzbwsv3cxofrodn4zt5xp3i (the original route is journaled)
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_g4gxzbwsv3cxofrodn4zt5xp3i is cleaned up and its journal row retired
2026/10/20 01:59:27 provision: a.shop.example.com: swapped for import sd_pecmcaberpo3tz75mhnv34njt4 (the original route is journaled)
2026/10/20 01:59:27 provision: skipping record apps/bac/shop/instances/a.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_pecmcaberpo3tz75mhnv34njt4 left alone this pass: its record could not be read
2026/10/20 01:59:27 provision: a.shop.example.com: swapped for import sd_snomzo5smaeefo7iqcujbwlvwm (the original route is journaled)
2026/10/20 01:59:27 provision: skipping record apps/bac/shop/instances/a.shop.example.com.json: read failed: connection reset
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_snomzo5smaeefo7iqcujbwlvwm left alone this pass: its record could not be read
2026/10/20 01:59:27 provision: a.shop.example.com: swapped for import sd_xfyy4saj7pmx2bkzq6af4wh5jy (the original route is journaled)
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_xfyy4saj7pmx2bkzq6af4wh5jy: close the import gate: constraint failed: injected (1811)
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_xfyy4saj7pmx2bkzq6af4wh5jy rolled back to its original route
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_xfyy4saj7pmx2bkzq6af4wh5jy is cleaned up and its journal row retired
2026/10/20 01:59:27 provision: a.shop.example.com: swapped for import sd_ou6bdwzj6a6wry7fkg4zip7ya4 (the original route is journaled)
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_ou6bdwzj6a6wry7fkg4zip7ya4: close the import gate: constraint failed: injected (1811)
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_ou6bdwzj6a6wry7fkg4zip7ya4 rolled back to its original route
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_ou6bdwzj6a6wry7fkg4zip7ya4 is cleaned up and its journal row retired
2026/10/20 01:59:27 provision: a.shop.example.com: swapped for import sd_jyi5lpp3qf7fg7xvvux4jn7hm4 (the original route is journaled)
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_jyi5lpp3qf7fg7xvvux4jn7hm4 rollback deferred: the host is not fenced and stopped yet (injected failure at fence)
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_jyi5lpp3qf7fg7xvvux4jn7hm4 rolled back to its original route
2026/10/20 01:59:27 provision: a.shop.example.com: import sd_jyi5lpp3qf7fg7xvvux4jn7hm4 is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_bgwmavxnhxbf65jbmupsyralxu (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_bgwmavxnhxbf65jbmupsyralxu rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_bgwmavxnhxbf65jbmupsyralxu is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_k3mefbehmzaer3uzozxgrpzjbe (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_k3mefbehmzaer3uzozxgrpzjbe: retire its instance key: injected failure at retire-key
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_k3mefbehmzaer3uzozxgrpzjbe rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_k3mefbehmzaer3uzozxgrpzjbe is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_uqqezbwbexjkxtf6l37yxqbgke (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_uqqezbwbexjkxtf6l37yxqbgke rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_uqqezbwbexjkxtf6l37yxqbgke is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_qvycrjpfamoq2e274zxxvnxr7y (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_qvycrjpfamoq2e274zxxvnxr7y: remove its local data: injected failure at remove-local
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_qvycrjpfamoq2e274zxxvnxr7y rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_qvycrjpfamoq2e274zxxvnxr7y is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_sqrmsdc63p6u7n73ralxl2etga (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_sqrmsdc63p6u7n73ralxl2etga rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_sqrmsdc63p6u7n73ralxl2etga is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_z77zn377c2hdkckaunc5oia2sq (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_z77zn377c2hdkckaunc5oia2sq: remove its local data: injected failure at remove-local-done
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_z77zn377c2hdkckaunc5oia2sq rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_z77zn377c2hdkckaunc5oia2sq is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_ciqrcmztl4ephfg2xgfoafonsi (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_ciqrcmztl4ephfg2xgfoafonsi rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_ciqrcmztl4ephfg2xgfoafonsi is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_j35nvrpauzv6ny44d4i2tnzqga (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_j35nvrpauzv6ny44d4i2tnzqga: restore the original route: constraint failed: injected (1811)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_j35nvrpauzv6ny44d4i2tnzqga rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_j35nvrpauzv6ny44d4i2tnzqga is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_53gq7p2aahk2uay3poxzdizofy (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_53gq7p2aahk2uay3poxzdizofy: restore the original route: constraint failed: injected (1811)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_53gq7p2aahk2uay3poxzdizofy rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_53gq7p2aahk2uay3poxzdizofy is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_pr5ctt52pfbzbjsaanfqr73kg4 (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_pr5ctt52pfbzbjsaanfqr73kg4 is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_2arhuh7czbqkuplre2aavk45ui (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_2arhuh7czbqkuplre2aavk45ui rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_2arhuh7czbqkuplre2aavk45ui: delete its snapshot: injected failure at delete-snapshot
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_2arhuh7czbqkuplre2aavk45ui is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_xe7bw2lbwq6e5t4gkjk5uciyf4 (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_xe7bw2lbwq6e5t4gkjk5uciyf4 rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_xe7bw2lbwq6e5t4gkjk5uciyf4 is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_ofk7gxa2yp5mzgowlstopy3dta (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_ofk7gxa2yp5mzgowlstopy3dta rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_ofk7gxa2yp5mzgowlstopy3dta: delete the host's replica: injected failure at delete-replica
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_ofk7gxa2yp5mzgowlstopy3dta is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_etdj5vmp23drmdodq6uyxs3yfm (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_etdj5vmp23drmdodq6uyxs3yfm rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_etdj5vmp23drmdodq6uyxs3yfm is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_mc5rpx52dm2f5z6hldqws6qoeq (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_mc5rpx52dm2f5z6hldqws6qoeq rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_mc5rpx52dm2f5z6hldqws6qoeq: retire its journal row: constraint failed: injected (1811)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_mc5rpx52dm2f5z6hldqws6qoeq is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_t3pf5ou4h3owabhr3svkpaib3a (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_t3pf5ou4h3owabhr3svkpaib3a rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_t3pf5ou4h3owabhr3svkpaib3a: retire its journal row: constraint failed: injected (1811)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_t3pf5ou4h3owabhr3svkpaib3a is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_on7owuvbj24cvmqqmat6qvqf4i (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_on7owuvbj24cvmqqmat6qvqf4i rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_on7owuvbj24cvmqqmat6qvqf4i is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: a.shop.example.com: mark import sd_on7owuvbj24cvmqqmat6qvqf4i rolled back: injected failure at cas
2026/10/20 01:59:28 provision: a.shop.example.com: aborted seed sd_on7owuvbj24cvmqqmat6qvqf4i rolled back (no box had swapped it)
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_b5mppivvhzjo6avdnn7zul37se (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_b5mppivvhzjo6avdnn7zul37se rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_b5mppivvhzjo6avdnn7zul37se is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: a.shop.example.com: aborted seed sd_b5mppivvhzjo6avdnn7zul37se rolled back (no box had swapped it)
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_ausxvndcuzddpemqo4ysy4y7em (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_ausxvndcuzddpemqo4ysy4y7em rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_ausxvndcuzddpemqo4ysy4y7em rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_ausxvndcuzddpemqo4ysy4y7em rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_ausxvndcuzddpemqo4ysy4y7em is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_xyd4koesvfdlfhlbcpgukmib4e (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_xyd4koesvfdlfhlbcpgukmib4e rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_xyd4koesvfdlfhlbcpgukmib4e is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_zyfipo2bpocjgut6cwtt3dvjmq (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_zyfipo2bpocjgut6cwtt3dvjmq rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_zyfipo2bpocjgut6cwtt3dvjmq is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_qns4wesd4wcubyl5wth2ckhwfy (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_qns4wesd4wcubyl5wth2ckhwfy rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_qns4wesd4wcubyl5wth2ckhwfy is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_2dq2m5tiegcre2oxvuft3okzjq (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_2dq2m5tiegcre2oxvuft3okzjq rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_2dq2m5tiegcre2oxvuft3okzjq is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_2e6jmqjhnp5uut2yrnmmzio5bu (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_2e6jmqjhnp5uut2yrnmmzio5bu rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_2e6jmqjhnp5uut2yrnmmzio5bu is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_5nxtesiwbtcgsygecb2mlnctve (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_5nxtesiwbtcgsygecb2mlnctve rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_5nxtesiwbtcgsygecb2mlnctve is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_jedm6ixztgzwh3becfcaj4ycle (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_jedm6ixztgzwh3becfcaj4ycle rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_jedm6ixztgzwh3becfcaj4ycle is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_mwutht35kvjehxnflckw5tzcau (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_mwutht35kvjehxnflckw5tzcau has no route on this box: its local data is removed and no route is put back
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_mwutht35kvjehxnflckw5tzcau is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_lgw4hpzhvfjuh3ygx2naby6ycy (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_pwc2efzu6sxgmdkzd7nwqbw3hq (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_x5iys3kbgefrntajru6orwicjy (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_x5iys3kbgefrntajru6orwicjy cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_i4kec23t67k3catrtcyupv65ly (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_i4kec23t67k3catrtcyupv65ly is not rolled back: the route changed under the fence, so nothing there is touched
2026/10/20 01:59:28 provision: a.shop.example.com: import "../not-a-seed" names no snapshot and no replica; only its journal row is cleaned up
2026/10/20 01:59:28 provision: a.shop.example.com: import ../not-a-seed is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_lp46sc4euszfdlr7s23r2tpyhu (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_nsor2eyuskcgzekgszeofcn2yq (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_b5alaxlzaf4miedqpm2tczqwrm (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_onqokrfmmlvobrhvy5bq4z2vau (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_7l7ndsizmopy4265j3fj3c6gyy (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_7l7ndsizmopy4265j3fj3c6gyy rollback deferred: the host is not fenced and stopped yet (stop evidence unreadable)
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_scw7elmwgs4l7dwigssx7zvoh4 (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_scw7elmwgs4l7dwigssx7zvoh4 has no route on this box: its local data is removed and no route is put back
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_scw7elmwgs4l7dwigssx7zvoh4 is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_76yw6otb3uhnkuktwdg66wubnm (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_76yw6otb3uhnkuktwdg66wubnm: remove its local data: injected failure at remove-local
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_76yw6otb3uhnkuktwdg66wubnm is not rolled back: the route at the host is not the import's, so nothing there is touched
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_yboa6klmkdxpqhoc5adld64hea (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_yboa6klmkdxpqhoc5adld64hea: a route appeared at the host, so its local database is left and the rollback waits
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_72s2zeiztc4xtfjwg4i4n6lpri (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_72s2zeiztc4xtfjwg4i4n6lpri rollback deferred: no fence generation: registry busy
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_2uo7hazsg5yh4veasu7rxzktna (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_2uo7hazsg5yh4veasu7rxzktna rollback deferred: no fence generation: the generation source answered 0
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_fxili5t4rnlrzpixrerng3t4oe (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_ku3n7mumhk4n5dheld7bhjixni (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_52af6nmccg46dam6hahvxppaeq (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import deferred: this box cannot read the instance's env file
2026/10/20 01:59:28 provision: a.shop.example.com: import deferred: the instance's env file could not be read: a symlink
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_xmtphan4fu733uqwxt36pt73la (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_xmtphan4fu733uqwxt36pt73la rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_xmtphan4fu733uqwxt36pt73la is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_6ncsk5x5bl64pcwngylk3uvigy (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_6ncsk5x5bl64pcwngylk3uvigy rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_6ncsk5x5bl64pcwngylk3uvigy is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_jl7qbzh43ctmvdzzgdikhlybhi (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_jl7qbzh43ctmvdzzgdikhlybhi rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_jl7qbzh43ctmvdzzgdikhlybhi is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_dwnvksa47cfpmcnjq6o4aj3v6y (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_dwnvksa47cfpmcnjq6o4aj3v6y: retire its instance key: the env file is a symlink
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_dwnvksa47cfpmcnjq6o4aj3v6y rolled back to its original route
2026/10/20 01:59:28 provision: a.shop.example.com: import sd_dwnvksa47cfpmcnjq6o4aj3v6y is cleaned up and its journal row retired
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_dmwhwvwdwe224hcy2jp2owu55q (the original route is journaled)
2026/10/20 01:59:28 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/20 01:59:28 provision: a.shop.example.com: swapped for import sd_yypnwyps4ykqzykcqbhxrjhiyu (the original route is journaled)
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_bhelr6l7qyaesjvsqkb6rlijfu refused: there is no route at a.shop.example.com to replace
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_6nlmvehmmheo26in42cporv4iq refused: the route's address is 127.0.0.1:9, not 127.0.0.1:8401
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_lwqn47odbefe6x2vu3bjv764dq refused: the route's address is 127.0.0.1:8401,127.0.0.1:8402, not 127.0.0.1:8401
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_o2ihkc3ga3hpetyvpt73y54vea refused: the route's address is 127.0.0.1:9, not 127.0.0.1:8401
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_jgihe6ekxvxt5hvpxu7udy6ura refused: the route belongs to app other
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_u37mcetz7mjscguzrucy7ccyuq refused: the route is filed under another account
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_hccfd4nlgyphgzkh7yhc6dpyzu refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_upfz4fl365ncxvh6mnv522yzgq refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_gwc4l4lxjnf7qlsipu6cjuq2z4 refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_frpadzdee3pbpyezxp5apx2tki refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_fvwz6zm2j2tzv7hx374qm3dwte refused: the route is not an address route this import can take over (socket)
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_33hhaqyx5xbk6zlxjxt3rbkiyi refused: the route is not an address route this import can take over (no address)
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_43npajch6uxsoufqzlmcpdglui refused: the route is not an address route this import can take over (provisioned)
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_3yxjsfbxndg634vyj7dsark45e refused: the route is not an address route this import can take over (kind static)
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_kgt45t6q3glggf55isqzko4aem refused: the route is not an address route this import can take over (backing)
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_jljoryhfn5vcttpi2apj3f6otm refused: the route is not an address route this import can take over (tunnel)
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_ozeiywyr4v2d2qi75xhjzymyzm refused: the route is not an address route this import can take over (caps)
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_whbz6z2l4zoycawewan4i5lytq refused: the route is not an address route this import can take over (platform)
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_tb2vq7pf7hju62fulxxjtc2iwu refused: the route is not an address route this import can take over (canary)
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_anzxqc4uszu4plwhxwfljyes2i refused: the route is not an address route this import can take over (kind sidecar)
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_cude33b67x3qtoc4qayheq36oy refused: the route is not an address route this import can take over (region)
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_pyeuspa7cwfa3gswnxaplmxu2u refused: the route is not an address route this import can take over (fleet_box)
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_ewu35fpapjz7lxgjx7jihruf5a refused: the route is not an address route this import can take over (hibernate)
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_qeuvjd5pcww6dcx23rgqqntnfa refused: the route is not an address route this import can take over (claim_owner)
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_j63s2uhsxfpdyooa7q3si6m3z4 refused: this box does not run instances nested
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_n2oi5zfqc56ms7sogp4xc2ml5i refused: this box does not run instances nested
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_uywwqj6tymvndpf5bbzz4cx5wy refused: claim control is on for this box
2026/10/20 01:59:29 provision: a.shop.example.com: swapped for import sd_qfao5b4mhuwqlpyubbrmi2y47y (the original route is journaled)
2026/10/20 01:59:29 provision: a.shop.example.com: swapped for import sd_psmgmttsol5w6conz3frqvrbzi (the original route is journaled)
2026/10/20 01:59:29 provision: a.shop.example.com: import deferred: this box cannot read the legacy route assignments
2026/10/20 01:59:29 provision: a.shop.example.com: import deferred: the legacy route assignments could not be read: store down
2026/10/20 01:59:29 provision: a.shop.example.com: not swapping for import sd_5vmxzivy2cu6gk5u4exyctlyne: its verify hash is not a sha256
2026/10/20 01:59:29 provision: a.shop.example.com: not swapping for import sd_orsv2urw7ocpv5bc2goonij5dm: its verify hash is not a sha256
2026/10/20 01:59:29 provision: a.shop.example.com: not swapping for import sd_yxkncedqkza7pmjpkyrqp7dbg4: its verify hash is not a sha256
2026/10/20 01:59:29 provision: a.shop.example.com: not swapping for import sd_../../x: its host or seed id is malformed (seeds: not a seed id)
2026/10/20 01:59:29 provision: A.shop.example.com/..: not swapping for import sd_pblbq2pv2acgfwfwpmdzxzxlmq: its host or seed id is malformed (seeds: not a host)
2026/10/20 01:59:29 provision: a.shop.example.com: not swapping for import sd_ub22ckgddoachtwgcbdjvwvdam: its record does not describe a nested, hibernating instance
2026/10/20 01:59:29 provision: a.shop.example.com: not swapping for import sd_4nzwoe4ltwrwcsigcuyeyrz7wq: its record does not describe a nested, hibernating instance
2026/10/20 01:59:29 provision: a.shop.example.com: not swapping for import sd_q27x5y4fedbz3met6xqfznrvla: its record does not describe a nested, hibernating instance
2026/10/20 01:59:29 provision: a.shop.example.com: not swapping for import sd_mvfvr4i4wjrway67eatfc76hyi: its record does not describe a nested, hibernating instance
2026/10/20 01:59:29 provision: a.shop.example.com: import deferred: the box's layout intent could not be read: store down
2026/10/20 01:59:29 provision: a.shop.example.com: swapped for import sd_6pu3lrpqq2gpi2uyjnvhbkbqva (the original route is journaled)
2026/10/20 01:59:29 provision: a.shop.example.com: import deferred: the box's nested probe did not answer: ready probe timed out
2026/10/20 01:59:29 provision: a.shop.example.com: swapped for import sd_ypxq3etq2ywr223ayrr5nq53wq (the original route is journaled)
2026/10/20 01:59:29 provision: a.shop.example.com: swapped for import sd_fdefrxqdfw2v4cn4xjolhdh5dy (the original route is journaled)
2026/10/20 01:59:29 provision: a.shop.example.com: import deferred: the route is held by operation op_1
2026/10/20 01:59:29 provision: dry-run: would consider swapping a.shop.example.com for import sd_ta63jyyeb5zzzp6vque6ri5mdu
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_lvfhfnpxbzeoih7oqtoj65367y rolled back to its original route
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_lvfhfnpxbzeoih7oqtoj65367y: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_lvfhfnpxbzeoih7oqtoj65367y is cleaned up and its journal row retired
2026/10/20 01:59:29 provision: a.shop.example.com: import sd_45tmszs6jftagzpdma6uf4ukjq left alone: the import journal holds seed sd_cf23vysdjn4vfjfjvt3rkprpva at swapped
2026/10/20 01:59:29 provision: a.shop.example.com: not minting import sd_mmsypnf7z466nae5v53naaoidi: it is swapped but not committed, and only its swap makes its row
2026/10/20 01:59:29 provision: a.shop.example.com: not minting import sd_o2vxaq3diq7l65wpdugqep45hq: it is placed but not committed, and only its swap makes its row
2026/10/20 01:59:29 provision: a.shop.example.com: swapped for import sd_b3ahvj7d34hb3nwbz6dnjtt75u (the original route is journaled)
2026/10/20 01:59:29 provision: a.shop.example.com: not minting import sd_b3ahvj7d34hb3nwbz6dnjtt75u: it is swapped but not committed, and only its swap makes its row
2026/10/20 01:59:29 provision: a.shop.example.com: not minting import sd_b3ahvj7d34hb3nwbz6dnjtt75u: it is placed but not committed, and only its swap makes its row
2026/10/20 01:59:29 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 01:59:29 provision: removed retired sidecar route gone.eleven.bac.sidecar.internal (record gone)
2026/10/20 01:59:29 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 01:59:29 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 01:59:29 provision: converged sidecar bot.eleven.bac.sidecar.internal args ["sidecar","run"] -> ["worker","run"]
2026/10/20 01:59:29 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 01:59:29 provision: converged sidecar bot.eleven.bac.sidecar.internal ceilings 300/3600 -> 60/120
2026/10/20 01:59:29 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 01:59:29 provision: converged sidecar bot.eleven.bac.sidecar.internal channel stable -> canary/eleven
2026/10/20 01:59:29 provision: converged sidecar bot.eleven.bac.sidecar.internal environment "other" -> "relay"
2026/10/20 01:59:29 provision: converged sidecar bot.eleven.bac.sidecar.internal hibernate true -> false
2026/10/20 01:59:29 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: read failed: failStore: reads disabled under apps/bac/eleven/sidecars/
2026/10/20 01:59:29 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: malformed: invalid character 'n' looking for beginning of object key string
2026/10/20 01:59:29 provision: not removing sidecar bot.eleven.bac.sidecar.internal: its record exists but could not be read cleanly this pass
2026/10/20 01:59:29 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: empty channel
2026/10/20 01:59:29 provision: skipping sidecar record apps/bac/eleven/sidecars/held.json: empty channel
2026/10/20 01:59:29 provision: not removing sidecar held.eleven.bac.sidecar.internal: its record exists but could not be read cleanly this pass
2026/10/20 01:59:29 provision: removed retired sidecar route old.eleven.bac.sidecar.internal (record gone)
2026/10/20 01:59:29 provision: bac/eleven has sidecar records but no sidecars manifest — not minting
2026/10/20 01:59:29 provision: bac/eleven is in the trash — not minting sidecar routes for it
2026/10/20 01:59:29 provision: sidecar bot.eleven.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/20 01:59:29 provision: sidecar hub.relay.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/20 01:59:29 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 01:59:29 provision: minted sidecar route hub.relay.bac.sidecar.internal (app "relay" acct "bac" args ["relay"])
2026/10/20 01:59:29 provision: sidecar bot.eleven.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/20 01:59:29 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 01:59:29 provision: sidecar bot.eleven.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/20 01:59:29 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 01:59:29 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 01:59:29 provision: sidecar bot.eleven.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/20 01:59:29 provision: removed retired sidecar route bot.eleven.bac.sidecar.internal (record gone)
2026/10/20 01:59:29 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 01:59:30 provision: sidecar bot.eleven.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/20 01:59:30 provision: skipping sidecar record apps/bac/relay/sidecars/hub.json: read failed: failStore: reads disabled under apps/bac/relay/sidecars/
2026/10/20 01:59:30 provision: REFUSING to mint sidecar bot.eleven.bac.sidecar.internal: bot.eleven.bac.sidecar.internal-sidecar.env is staged on this box — the legacy file co-spawn and a native sidecar row are two mechanisms for one host; remove the file to migrate this host onto sidecar records
2026/10/20 01:59:30 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 01:59:30 provision: dry-run: would mint sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" channel "stable" args ["sidecar","run"])
2026/10/20 01:59:30 provision: dry-run: would remove retired sidecar route gone.eleven.bac.sidecar.internal (record gone)
2026/10/20 01:59:30 provision: bot.eleven.bac.sidecar.internal exists but is not a sidecar row this pass owns (kind "sidecar" provisioned false app "eleven" acct "bac") — leaving it alone
2026/10/20 01:59:30 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:30 provision: converged acme.go.tito.io update settings "{\"updates\":\"manual\",\"channel\":\"stable\"}" -> ""
2026/10/20 01:59:30 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:30 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:30 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/20 01:59:30 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/20 01:59:30 provision: acme.go.tito.io: not minted this pass: the app's update policy could not be read
2026/10/20 01:59:30 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 01:59:30 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/20 01:59:30 provision: acme.go.tito.io: not minted this pass: the app's update policy could not be read
2026/10/20 01:59:30 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	90.074s
ok  	github.com/carlosframework/platform/internal/publicrelease	0.009s
?   	github.com/carlosframework/platform/internal/regionname	[no test files]
ok  	github.com/carlosframework/platform/internal/registry	5.862s
ok  	github.com/carlosframework/platform/internal/relay	7.263s
ok  	github.com/carlosframework/platform/internal/release	26.830s
ok  	github.com/carlosframework/platform/internal/rollout	3.705s
ok  	github.com/carlosframework/platform/internal/rolloutwords	0.006s
ok  	github.com/carlosframework/platform/internal/rootaws	0.008s
ok  	github.com/carlosframework/platform/internal/rootparticipation	0.062s
ok  	github.com/carlosframework/platform/internal/rootstate	0.035s
ok  	github.com/carlosframework/platform/internal/runs	0.571s
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.489s
ok  	github.com/carlosframework/platform/internal/seeds	0.012s
ok  	github.com/carlosframework/platform/internal/sim/hostlife	11.837s
ok  	github.com/carlosframework/platform/internal/sim/litestreamfacts	3.553s
ok  	github.com/carlosframework/platform/internal/status	0.062s
ok  	github.com/carlosframework/platform/internal/steering	0.005s
ok  	github.com/carlosframework/platform/internal/stopevidence	0.277s
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.006s
ok  	github.com/carlosframework/platform/internal/updatewords	0.007s
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.570s
FAIL
make: *** [Makefile:18: test] Error 1

amadan: step gate failed: exit status 2

amadan: job failed at step gate — its output is above, not at the tail of this log
diff --git a/harness/RUNLOG.md b/harness/RUNLOG.md
index 1ea673086..9c2036bc3 100644
--- a/harness/RUNLOG.md
+++ b/harness/RUNLOG.md
@@ -690,3 +690,66 @@ restart: `status=203/EXEC`, `Failed to execute /opt/carlos/system/guard/carlos:
console `/healthz` 000. Restored `s7` (01:51:47Z): `755`, console 200.
**Step 10: GREEN** (01:52Z). Defects reproduced: 1 (step 9), 2 (effect replay; the fix holds), 4.
+
+## Step 11: evidence bundle and the hand IAM review of the signer
+
+`harness/evidence.sh cohort1-s7` (on host, 01:53Z) -> `s3://carlos-harness-640012953448/evidence/cohort1-s7.tgz`
+(3.2 MB, sha256 `87f6cd85...`) and `cohort1-s7.signer-actions.tsv`. Contents: SSM and IMDS stand-in
+logs, every SSM command transcript (`ssm-commands.tgz`), the Keymail log, the MinIO audit log, the
+deployment bucket listing with versions, each container's journal (JSON), owner/mode listings of
+`/data`, `/opt/carlos`, `/etc/carlos` and `/etc/systemd/system`, `systemctl --failed`, and `SHIMS.txt`.
+`/run` is excluded by path; a grep for key material (`CARLOS_RELEASE_KEY=`, `BEGIN PRIVATE KEY`,
+`"secret_key"`) over the bundle and its archives found none. The audit log is as of `s7`.
+
+**The signer's actions**: 282 audit entries with access key `harness-signer` (the signer's MinIO user,
+standing for `carlos-claim-signer`), summarised by API, status and object in
+`harness/checks/signer-actions.tsv`. Each was mapped to IAM (GetObject/HeadObject -> `s3:GetObject`, plus
+`s3:ListBucket` with `s3:prefix` = the key for every 404; PutObject -> `s3:PutObject`; ListObjectsV2 ->
+`s3:ListBucket` with its prefix; the release-key read -> `ssm:GetParameter`), the harness bucket mapped
+back to `carlos-dev-640012953448`, and simulated with `aws iam simulate-custom-policy` (read-only, no
+resource touched) against `signing-host.md`'s inline policy `claim-signer` at `a06f17ea` (its
+`WriteIdentity` key moved to the harness tag v0.28.5), twice: as it is now, and as it was before the
+fifth session's widening (`ReadControl` without `status/consoles/dev-console.json`).
+Full table: `harness/checks/iam-review-signer.txt`. Result:
+
+```
+53 distinct (action, resource, prefix) checks: all "allowed" under the current policy.
+Under the pre-widening policy exactly one differs:
+s3:GetObject status/consoles/dev-console.json 200 allowed implicitDeny <-- differs
+ read twice, at 01:43:08.985Z and 01:43:09.132Z: publish-floor's dry run and apply (census.go:349's console report)
+```
+
+**Defect 3: yes, it would have shown up**, before any real session: the hand review flags exactly the
+read the fourth session was refused, from the phase that was refused, and nothing else. MinIO itself
+allowed it (its users have broad policies), so this needs the review, not the run. Also confirmed: every
+404 the signer met is under a `ListForNotFound` prefix, so S3 would answer 404 rather than 403; the
+signer also lists `control/edges/` and `control/hosts/`, which `ListForNotFound`'s `control/*` covers.
+
+**Step 11: GREEN** (01:55Z).
+
+## Summary, steps 7 to 11
+
+| Defect | Reproduced? | Where |
+|---|---|---|
+| 1 `/opt/carlos` carlos-owned | **yes**: `hostfloor: authenticated floor required` on main's host-init; passes after platform-infrastructure#47's remediation | step 9, 6.2 |
+| 2 `umask 077` makes guard dirs 0700, console 203/EXEC | **fix verified** on 96db0efe (6.3 under `umask 077` gives 755); **effect** reproduced by hand (`chmod 0700` -> `203/EXEC ... Permission denied`); pre-#317 code path not rebuilt | step 10 |
+| 3 signer policy lacks `status/consoles/dev-console.json` | **yes, by the hand IAM review** (pre-widening policy: the one `implicitDeny`, from publish-floor); MinIO alone would not show it | step 11 |
+| 4 `console-report` one second after a restart refused | **yes**: refused at the restart's second, accepted 13 s later once the console's report moved | step 10, 7.4 |
+
+**Not exercised (MinIO)**: every `release.DeleteIfMatch` conflict path: claims handover
+(`internal/domains/claims.go:537`), the hostops record, purge and mutation writers
+(`hostops/record.go:121`, `operations.go:331`, `purge.go:131`, `purge_control.go:402,433`,
+`mutation_boundary.go:188`), `mail/claim_gate.go:140`, and the litestream lease release. MinIO ignores
+If-Match on DELETE (step 3), so in the harness each of these deletes unconditionally and never meets
+`ErrCASConflict`.
+
+**Findings for platform**:
+- `sqlFilesystemSupported` (`internal/console/claim_sql_identity_linux.go`) lists btrfs, but on
+ `6.12.96+deb13-cloud-arm64` btrfs answers `FS_IOC_GETFSUUID` with ENOTTY: a btrfs-hosted console
+ cannot turn claims on.
+- The agent's first adoption of the console (`try-restart console.service` as `carlos`) was refused by
+ polkit; dev must have a rule or a root path for it that is in no repository.
+
+Snapshots on every container: `base`, `boot`, `pre62`, `s7` (`s7` also on `hdir/sophie-console`).
+The host is left at `s7`. No `pre-window` snapshot was taken: the window (8.1 onward) is not in this
+phase's scope; take it with `harness/snapshot.sh create pre-window` right before 8.1.
diff --git a/harness/checks/iam-review-signer.txt b/harness/checks/iam-review-signer.txt
new file mode 100644
index 000000000..260740ceb
--- /dev/null
+++ b/harness/checks/iam-review-signer.txt
@@ -0,0 +1,54 @@
+action resource (claim-signer run ids folded) harness current pre-widening
+s3:GetObject claim-signer/<run-id>/carlos-linux-arm64 206 allowed allowed
+s3:GetObject claim-signer/<run-id>/release.pub 200 allowed allowed
+s3:GetObject claim-signer/<run-id>/SHA256SUMS.txt 200 allowed allowed
+s3:GetObject claim-signer/<run-id>/SHA256SUMS.txt.sig 200 allowed allowed
+s3:GetObject claim-signer/<run-id>/floor.json 200 allowed allowed
+s3:GetObject claim-signer/<run-id>/regions.json 200 allowed allowed
+s3:GetObject claim-signer/<run-id>/leo.json 200 allowed allowed
+s3:GetObject claim-signer/<run-id>/sophie.json 200 allowed allowed
+s3:GetObject claim-signer/<run-id>/console.json 200 allowed allowed
+s3:GetObject claim-signer/<run-id>/signer-helpers.sh 200 allowed allowed
+s3:GetObject control/host-actors.json 200 allowed allowed
+s3:ListBucket <bucket> prefix=control/host-actors.json 404 allowed allowed
+s3:PutObject control/host-actors.json 200 allowed allowed
+s3:GetObject control/boxes/kathleen-juggling.json 200 allowed allowed
+s3:GetObject control/host-actor-invitations/kathleen-juggling.json 200 allowed allowed
+s3:ListBucket <bucket> prefix=control/host-actor-invitations/kathleen-juggling.json 404 allowed allowed
+s3:PutObject control/host-actor-invitations/kathleen-juggling.json 200 allowed allowed
+s3:ListBucket <bucket> prefix=control/hosts/ 200 allowed allowed
+s3:ListBucket <bucket> prefix=control/edges/ 200 allowed allowed
+s3:GetObject control/edges/ada-letterpress.json 200 allowed allowed
+s3:GetObject control/edges/kathleen-juggling.json 200 allowed allowed
+s3:GetObject control/boxes/ada-letterpress.json 200 allowed allowed
+s3:GetObject control/host-actor-invitations/ada-letterpress.json 200 allowed allowed
+s3:ListBucket <bucket> prefix=control/host-actor-invitations/ada-letterpress.json 404 allowed allowed
+s3:PutObject control/host-actor-invitations/ada-letterpress.json 200 allowed allowed
+s3:GetObject control/host-console-invitations/dev-console.json 200 allowed allowed
+s3:ListBucket <bucket> prefix=control/host-console-invitations/dev-console.json 404 allowed allowed
+s3:PutObject control/host-console-invitations/dev-console.json 200 allowed allowed
+s3:PutObject claim-signer/<run-id>/out/inspect.json 200 allowed allowed
+s3:PutObject claim-signer/<run-id>/out/roster.json 200 allowed allowed
+s3:PutObject claim-signer/<run-id>/out/kathleen-juggling-enrollment.json 200 allowed allowed
+s3:PutObject claim-signer/<run-id>/out/ada-letterpress-enrollment.json 200 allowed allowed
+s3:GetObject control/moves-protocol.json 200 allowed allowed
+s3:ListBucket <bucket> prefix=control/moves-protocol.json 404 allowed allowed
+s3:GetObject control/moves-protocol-auth.json 200 allowed allowed
+s3:ListBucket <bucket> prefix=control/moves-protocol-auth.json 404 allowed allowed
+s3:GetObject apps/bab/console/channels/canary/console.json 200 allowed allowed
+s3:GetObject apps/bab/console/releases/1b635e61/manifest.json 200 allowed allowed
+s3:GetObject apps/bab/console/releases/1b635e61/linux-arm64 200 allowed allowed
+s3:GetObject control/system/router/releases/v0.28.5.json 200 allowed allowed
+s3:ListBucket <bucket> prefix=control/system/router/releases/v0.28.5.json 404 allowed allowed
+s3:PutObject control/system/router/releases/v0.28.5.json 200 allowed allowed
+s3:PutObject claim-signer/<run-id>/out/policy.v0.28.5.json 200 allowed allowed
+s3:PutObject claim-signer/<run-id>/out/identity.v0.28.5.json 200 allowed allowed
+s3:GetObject status/boxes/ada-letterpress.json 200 allowed allowed
+s3:GetObject status/boxes/kathleen-juggling.json 200 allowed allowed
+s3:GetObject status/consoles/dev-console.json 200 allowed implicitDeny <-- differs
+s3:PutObject control/moves-protocol-auth.json 200 allowed allowed
+s3:PutObject control/moves-protocol.json 200 allowed allowed
+s3:GetObject claim-signer/<run-id>/in/key-proof.json 200 allowed allowed
+s3:GetObject control/box-fences/2e0246b20131d71a87a95fd7d2b9e840.json 404 allowed allowed
+s3:ListBucket <bucket> prefix=control/box-fences/2e0246b20131d71a87a95fd7d2b9e840.json 404 allowed allowed
+ssm:GetParameter param/carlos/release-key stand-in allowed allowed
diff --git a/harness/checks/signer-actions.tsv b/harness/checks/signer-actions.tsv
new file mode 100644
index 000000000..d9553499e
--- /dev/null
+++ b/harness/checks/signer-actions.tsv
@@ -0,0 +1,283 @@
+time api status bucket object
+2026-10-20T01:32:16.915821742Z HeadObject 200 harness-deployment claim-signer/cohort1-20261020T013207Z/carlos-linux-arm64
+2026-10-20T01:32:16.962851591Z GetObject 206 harness-deployment claim-signer/cohort1-20261020T013207Z/carlos-linux-arm64
+2026-10-20T01:32:16.963430553Z GetObject 206 harness-deployment claim-signer/cohort1-20261020T013207Z/carlos-linux-arm64
+2026-10-20T01:32:16.963707612Z GetObject 206 harness-deployment claim-signer/cohort1-20261020T013207Z/carlos-linux-arm64
+2026-10-20T01:32:16.964932662Z GetObject 206 harness-deployment claim-signer/cohort1-20261020T013207Z/carlos-linux-arm64
+2026-10-20T01:32:16.966022165Z GetObject 206 harness-deployment claim-signer/cohort1-20261020T013207Z/carlos-linux-arm64
+2026-10-20T01:32:16.968638851Z GetObject 206 harness-deployment claim-signer/cohort1-20261020T013207Z/carlos-linux-arm64
+2026-10-20T01:32:17.875446676Z HeadObject 200 harness-deployment claim-signer/cohort1-20261020T013207Z/release.pub
+2026-10-20T01:32:17.881746207Z GetObject 200 harness-deployment claim-signer/cohort1-20261020T013207Z/release.pub
+2026-10-20T01:32:18.706350512Z HeadObject 200 harness-deployment claim-signer/cohort1-20261020T013207Z/SHA256SUMS.txt
+2026-10-20T01:32:18.712548785Z GetObject 200 harness-deployment claim-signer/cohort1-20261020T013207Z/SHA256SUMS.txt
+2026-10-20T01:32:19.526911168Z HeadObject 200 harness-deployment claim-signer/cohort1-20261020T013207Z/SHA256SUMS.txt.sig
+2026-10-20T01:32:19.533059563Z GetObject 200 harness-deployment claim-signer/cohort1-20261020T013207Z/SHA256SUMS.txt.sig
+2026-10-20T01:32:20.366857883Z HeadObject 200 harness-deployment claim-signer/cohort1-20261020T013207Z/floor.json
+2026-10-20T01:32:20.37293057Z GetObject 200 harness-deployment claim-signer/cohort1-20261020T013207Z/floor.json
+2026-10-20T01:32:21.183878231Z HeadObject 200 harness-deployment claim-signer/cohort1-20261020T013207Z/regions.json
+2026-10-20T01:32:21.190319258Z GetObject 200 harness-deployment claim-signer/cohort1-20261020T013207Z/regions.json
+2026-10-20T01:32:21.995272363Z HeadObject 200 harness-deployment claim-signer/cohort1-20261020T013207Z/leo.json
+2026-10-20T01:32:22.001440213Z GetObject 200 harness-deployment claim-signer/cohort1-20261020T013207Z/leo.json
+2026-10-20T01:32:22.812151488Z HeadObject 200 harness-deployment claim-signer/cohort1-20261020T013207Z/sophie.json
+2026-10-20T01:32:22.818381614Z GetObject 200 harness-deployment claim-signer/cohort1-20261020T013207Z/sophie.json
+2026-10-20T01:32:23.635655585Z HeadObject 200 harness-deployment claim-signer/cohort1-20261020T013207Z/console.json
+2026-10-20T01:32:23.643252953Z GetObject 200 harness-deployment claim-signer/cohort1-20261020T013207Z/console.json
+2026-10-20T01:32:24.471532324Z HeadObject 200 harness-deployment claim-signer/cohort1-20261020T013207Z/signer-helpers.sh
+2026-10-20T01:32:24.477696916Z GetObject 200 harness-deployment claim-signer/cohort1-20261020T013207Z/signer-helpers.sh
+2026-10-20T01:32:39.859365995Z GetObject 404 harness-deployment control/host-actors.json
+2026-10-20T01:32:39.860830016Z GetObject 404 harness-deployment control/host-actors.json
+2026-10-20T01:32:39.863043294Z GetObject 404 harness-deployment control/host-actors.json
+2026-10-20T01:32:39.971376543Z GetObject 404 harness-deployment control/host-actors.json
+2026-10-20T01:32:39.972848531Z GetObject 404 harness-deployment control/host-actors.json
+2026-10-20T01:32:39.978464455Z PutObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:39.97972079Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:39.981367135Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:40.091790908Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:40.095318023Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:40.212065312Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:40.215035847Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:40.343777557Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:40.34659036Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:40.347921796Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:40.455729293Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:40.459007952Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:40.464582415Z PutObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:40.465812495Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:40.467242777Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:40.571746918Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:40.574675296Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:40.691791802Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:40.694583961Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:40.811738096Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:40.815288587Z GetObject 200 harness-deployment control/boxes/kathleen-juggling.json
+2026-10-20T01:32:40.816452714Z GetObject 404 harness-deployment control/host-actor-invitations/kathleen-juggling.json
+2026-10-20T01:32:40.81804973Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:40.819220619Z GetObject 404 harness-deployment control/host-actor-invitations/kathleen-juggling.json
+2026-10-20T01:32:40.820850496Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:40.927750092Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:40.931240448Z GetObject 200 harness-deployment control/boxes/kathleen-juggling.json
+2026-10-20T01:32:40.932457088Z GetObject 404 harness-deployment control/host-actor-invitations/kathleen-juggling.json
+2026-10-20T01:32:40.934441307Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:40.938677179Z PutObject 200 harness-deployment control/host-actor-invitations/kathleen-juggling.json
+2026-10-20T01:32:40.939953946Z GetObject 200 harness-deployment control/host-actor-invitations/kathleen-juggling.json
+2026-10-20T01:32:40.941525772Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:41.043784701Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:41.046948851Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:41.15980862Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:41.162612085Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:41.279701943Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:41.282519545Z GetObject 200 harness-deployment control/boxes/kathleen-juggling.json
+2026-10-20T01:32:41.283998483Z ListObjectsV2 200 harness-deployment
+2026-10-20T01:32:41.285895212Z ListObjectsV2 200 harness-deployment
+2026-10-20T01:32:41.287069432Z GetObject 200 harness-deployment control/edges/ada-letterpress.json
+2026-10-20T01:32:41.28821267Z GetObject 200 harness-deployment control/edges/kathleen-juggling.json
+2026-10-20T01:32:41.289370808Z GetObject 200 harness-deployment control/host-actor-invitations/kathleen-juggling.json
+2026-10-20T01:32:41.291092844Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:41.292685191Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:41.399760063Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:41.402456855Z GetObject 200 harness-deployment control/boxes/kathleen-juggling.json
+2026-10-20T01:32:41.403835667Z ListObjectsV2 200 harness-deployment
+2026-10-20T01:32:41.404985477Z ListObjectsV2 200 harness-deployment
+2026-10-20T01:32:41.406506293Z GetObject 200 harness-deployment control/edges/ada-letterpress.json
+2026-10-20T01:32:41.40756108Z GetObject 200 harness-deployment control/edges/kathleen-juggling.json
+2026-10-20T01:32:41.409293274Z GetObject 200 harness-deployment control/host-actor-invitations/kathleen-juggling.json
+2026-10-20T01:32:41.410856428Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:41.416740574Z PutObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:41.417826229Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:41.419225208Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:41.523869976Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:41.528554556Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:41.643752205Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:41.646506047Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:41.763855838Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:41.766905118Z GetObject 200 harness-deployment control/boxes/ada-letterpress.json
+2026-10-20T01:32:41.768090291Z GetObject 404 harness-deployment control/host-actor-invitations/ada-letterpress.json
+2026-10-20T01:32:41.769674655Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:41.77083569Z GetObject 404 harness-deployment control/host-actor-invitations/ada-letterpress.json
+2026-10-20T01:32:41.772438089Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:41.879731074Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:41.882493088Z GetObject 200 harness-deployment control/boxes/ada-letterpress.json
+2026-10-20T01:32:41.883660842Z GetObject 404 harness-deployment control/host-actor-invitations/ada-letterpress.json
+2026-10-20T01:32:41.885252853Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:41.889465013Z PutObject 200 harness-deployment control/host-actor-invitations/ada-letterpress.json
+2026-10-20T01:32:41.891121589Z GetObject 200 harness-deployment control/host-actor-invitations/ada-letterpress.json
+2026-10-20T01:32:41.892855941Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:41.997024169Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:41.999887097Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:42.112221409Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:42.116802655Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:42.249236173Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:42.253007288Z GetObject 200 harness-deployment control/boxes/ada-letterpress.json
+2026-10-20T01:32:42.254845499Z ListObjectsV2 200 harness-deployment
+2026-10-20T01:32:42.256777337Z ListObjectsV2 200 harness-deployment
+2026-10-20T01:32:42.258323056Z GetObject 200 harness-deployment control/edges/ada-letterpress.json
+2026-10-20T01:32:42.260167552Z GetObject 200 harness-deployment control/host-actor-invitations/ada-letterpress.json
+2026-10-20T01:32:42.262858214Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:42.264762558Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:42.379821658Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:42.382798881Z GetObject 200 harness-deployment control/boxes/ada-letterpress.json
+2026-10-20T01:32:42.385404064Z ListObjectsV2 200 harness-deployment
+2026-10-20T01:32:42.386756259Z ListObjectsV2 200 harness-deployment
+2026-10-20T01:32:42.388721065Z GetObject 200 harness-deployment control/edges/ada-letterpress.json
+2026-10-20T01:32:42.390233421Z GetObject 200 harness-deployment control/host-actor-invitations/ada-letterpress.json
+2026-10-20T01:32:42.392191663Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:42.397490586Z PutObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:42.399183494Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:42.401070599Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:42.507768828Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:42.5106939Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:42.619864005Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:42.622741751Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:42.743827739Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:42.746816129Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:42.863723942Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:42.866464483Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:42.868196258Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:42.869610105Z GetObject 404 harness-deployment control/host-console-invitations/dev-console.json
+2026-10-20T01:32:42.871102729Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:42.979776636Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:42.983325765Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:42.984980504Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:42.989553701Z PutObject 200 harness-deployment control/host-console-invitations/dev-console.json
+2026-10-20T01:32:42.990752306Z GetObject 200 harness-deployment control/host-console-invitations/dev-console.json
+2026-10-20T01:32:42.992327891Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:43.095839145Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:43.098870365Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:43.207876748Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:43.210821627Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:43.331915361Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:43.334724357Z GetObject 200 harness-deployment control/host-console-invitations/dev-console.json
+2026-10-20T01:32:43.336566243Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:43.338022092Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:43.447662469Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:43.450447071Z GetObject 200 harness-deployment control/host-console-invitations/dev-console.json
+2026-10-20T01:32:43.454912446Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:43.460738073Z PutObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:43.462030002Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:43.463474586Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:43.571728413Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:43.574778234Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:43.687791397Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:32:43.690835893Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:33:08.051762522Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:33:08.054906119Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:33:08.740771325Z PutObject 200 harness-deployment claim-signer/cohort1-20261020T013207Z/out/inspect.json
+2026-10-20T01:33:09.560417198Z PutObject 200 harness-deployment claim-signer/cohort1-20261020T013207Z/out/roster.json
+2026-10-20T01:33:10.38800568Z PutObject 200 harness-deployment claim-signer/cohort1-20261020T013207Z/out/kathleen-juggling-enrollment.json
+2026-10-20T01:33:11.212055941Z PutObject 200 harness-deployment claim-signer/cohort1-20261020T013207Z/out/ada-letterpress-enrollment.json
+2026-10-20T01:33:41.86393012Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:33:41.86713007Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:33:41.987854506Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:33:41.991294608Z GetObject 404 harness-deployment control/moves-protocol.json
+2026-10-20T01:33:41.993047414Z GetObject 404 harness-deployment control/moves-protocol-auth.json
+2026-10-20T01:33:41.995545169Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:33:42.120624814Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:33:42.12612509Z GetObject 404 harness-deployment control/moves-protocol.json
+2026-10-20T01:33:42.128311186Z GetObject 404 harness-deployment control/moves-protocol-auth.json
+2026-10-20T01:33:42.131708729Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:33:42.256487053Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:33:42.260272004Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:33:42.399997255Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:33:42.403157361Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:33:42.523894992Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:33:42.528187317Z GetObject 200 harness-deployment apps/bab/console/channels/canary/console.json
+2026-10-20T01:33:42.529806421Z GetObject 200 harness-deployment apps/bab/console/releases/1b635e61/manifest.json
+2026-10-20T01:33:42.580560579Z GetObject 200 harness-deployment apps/bab/console/releases/1b635e61/linux-arm64
+2026-10-20T01:33:42.637497932Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:33:42.639186911Z GetObject 404 harness-deployment control/system/router/releases/v0.28.5.json
+2026-10-20T01:33:42.641132099Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:33:42.75573926Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:33:42.758882939Z GetObject 200 harness-deployment apps/bab/console/channels/canary/console.json
+2026-10-20T01:33:42.760493453Z GetObject 200 harness-deployment apps/bab/console/releases/1b635e61/manifest.json
+2026-10-20T01:33:42.806488757Z GetObject 200 harness-deployment apps/bab/console/releases/1b635e61/linux-arm64
+2026-10-20T01:33:42.864013154Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:33:42.872602497Z PutObject 200 harness-deployment control/system/router/releases/v0.28.5.json
+2026-10-20T01:33:42.873881216Z GetObject 200 harness-deployment control/system/router/releases/v0.28.5.json
+2026-10-20T01:33:42.875564878Z GetObject 200 harness-deployment control/system/router/releases/v0.28.5.json
+2026-10-20T01:33:42.87710478Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:33:42.995684778Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:33:42.998533634Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:33:43.686860883Z PutObject 200 harness-deployment claim-signer/cohort1-20261020T013207Z/out/policy.v0.28.5.json
+2026-10-20T01:33:44.500442318Z PutObject 200 harness-deployment claim-signer/cohort1-20261020T013207Z/out/identity.v0.28.5.json
+2026-10-20T01:43:08.839772174Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:08.842852837Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:08.967722918Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:08.970687504Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:08.972612142Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:08.974152892Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:08.976040772Z GetObject 200 harness-deployment status/boxes/ada-letterpress.json
+2026-10-20T01:43:08.979515285Z GetObject 200 harness-deployment control/system/router/releases/v0.28.5.json
+2026-10-20T01:43:08.981895508Z GetObject 200 harness-deployment status/boxes/kathleen-juggling.json
+2026-10-20T01:43:08.983313691Z GetObject 200 harness-deployment control/system/router/releases/v0.28.5.json
+2026-10-20T01:43:08.985135176Z GetObject 200 harness-deployment status/consoles/dev-console.json
+2026-10-20T01:43:08.986384623Z GetObject 200 harness-deployment status/boxes/ada-letterpress.json
+2026-10-20T01:43:08.988038897Z GetObject 200 harness-deployment control/system/router/releases/v0.28.5.json
+2026-10-20T01:43:08.990622072Z GetObject 404 harness-deployment control/moves-protocol-auth.json
+2026-10-20T01:43:08.991944954Z GetObject 404 harness-deployment control/moves-protocol.json
+2026-10-20T01:43:09.107707528Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:09.110740872Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:09.112549902Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:09.122456424Z PutObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:09.123769976Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:09.125412862Z GetObject 200 harness-deployment status/boxes/kathleen-juggling.json
+2026-10-20T01:43:09.127076704Z GetObject 200 harness-deployment control/system/router/releases/v0.28.5.json
+2026-10-20T01:43:09.129331472Z GetObject 200 harness-deployment status/boxes/ada-letterpress.json
+2026-10-20T01:43:09.130610826Z GetObject 200 harness-deployment control/system/router/releases/v0.28.5.json
+2026-10-20T01:43:09.132498263Z GetObject 200 harness-deployment status/consoles/dev-console.json
+2026-10-20T01:43:09.134316122Z GetObject 200 harness-deployment status/boxes/ada-letterpress.json
+2026-10-20T01:43:09.135595763Z GetObject 200 harness-deployment control/system/router/releases/v0.28.5.json
+2026-10-20T01:43:09.137425863Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:09.139477672Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:09.14767008Z PutObject 200 harness-deployment control/moves-protocol-auth.json
+2026-10-20T01:43:09.149048558Z GetObject 200 harness-deployment control/moves-protocol-auth.json
+2026-10-20T01:43:09.150620537Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:09.159390776Z PutObject 200 harness-deployment control/moves-protocol.json
+2026-10-20T01:43:09.160688271Z GetObject 200 harness-deployment control/moves-protocol.json
+2026-10-20T01:43:09.161781543Z GetObject 200 harness-deployment control/moves-protocol.json
+2026-10-20T01:43:09.162877252Z GetObject 200 harness-deployment control/moves-protocol-auth.json
+2026-10-20T01:43:09.165100636Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:09.175208993Z PutObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:09.17645163Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:09.178232844Z GetObject 200 harness-deployment control/moves-protocol.json
+2026-10-20T01:43:09.179187353Z GetObject 200 harness-deployment control/moves-protocol-auth.json
+2026-10-20T01:43:09.180569991Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:09.287787833Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:09.290878063Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:09.403831241Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:09.407015607Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:09.527842608Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:09.531074612Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:09.532598772Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:09.64372948Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:09.646898437Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:09.657591264Z PutObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:09.65895508Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:09.660739954Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:09.763751829Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:09.766605852Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:09.879739812Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:09.883254751Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:32.436543755Z HeadObject 200 harness-deployment claim-signer/cohort1-20261020T013207Z/in/key-proof.json
+2026-10-20T01:43:32.443004211Z GetObject 200 harness-deployment claim-signer/cohort1-20261020T013207Z/in/key-proof.json
+2026-10-20T01:43:32.703786221Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:32.707735404Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:32.823783904Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:32.827620004Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:32.829530826Z GetObject 200 harness-deployment control/moves-protocol.json
+2026-10-20T01:43:32.830567097Z GetObject 200 harness-deployment control/moves-protocol-auth.json
+2026-10-20T01:43:32.831963865Z GetObject 404 harness-deployment control/box-fences/2e0246b20131d71a87a95fd7d2b9e840.json
+2026-10-20T01:43:32.833384148Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:32.835078981Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:32.943823275Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:32.946702291Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:32.94865838Z GetObject 200 harness-deployment control/moves-protocol.json
+2026-10-20T01:43:32.94975984Z GetObject 200 harness-deployment control/moves-protocol-auth.json
+2026-10-20T01:43:32.951306129Z GetObject 404 harness-deployment control/box-fences/2e0246b20131d71a87a95fd7d2b9e840.json
+2026-10-20T01:43:32.952766986Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:32.962213452Z PutObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:32.963400885Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:32.965115565Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:33.07180641Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:33.074804506Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:33.187814378Z GetObject 200 harness-deployment control/host-actors.json
+2026-10-20T01:43:33.190764269Z GetObject 200 harness-deployment control/host-actors.json
diff --git a/harness/evidence.sh b/harness/evidence.sh
new file mode 100755
index 000000000..5b27225ac
--- /dev/null
+++ b/harness/evidence.sh
@@ -0,0 +1,50 @@
+#!/bin/bash
+# Step 11: the evidence bundle (spec §5), to the harness bucket. Never a key: /run is
+# excluded by path, and nothing under /run/harness/keys or /root/harness/*.json is read.
+set -euo pipefail
+RUN=${1:-cohort1-s7}
+E=/root/harness/evidence/$RUN; rm -rf "$E"; mkdir -p "$E"/{boxes,standins,minio}
+cp /var/log/harness/ssm.jsonl /var/log/harness/imds.jsonl "$E/standins/"
+tar czf "$E/standins/ssm-commands.tgz" -C /var/log/harness ssm-commands
+incus exec infra -- cat /var/log/harness-keymail/keymail.jsonl > "$E/standins/keymail.jsonl"
+incus exec infra -- cat /var/log/harness/minio-audit.jsonl > "$E/minio/audit.jsonl"
+export MC_CONFIG_DIR=/root/harness/mc
+/root/harness/bin/mc ls --versions --recursive harness/harness-deployment > "$E/minio/harness-deployment.versions.txt"
+for b in leo sophie dennis signer infra; do
+ incus exec $b -- journalctl -o json --no-pager | gzip > "$E/boxes/$b.journal.json.gz"
+ incus exec $b -- sh -c 'for d in /data /opt/carlos /etc/carlos /etc/systemd/system; do [ -d $d ] && find $d -xdev -printf "%u:%g %m %y %p\n" 2>/dev/null; done' > "$E/boxes/$b.tree.txt"
+ incus exec $b -- systemctl --failed --no-legend --plain > "$E/boxes/$b.failed.txt" || true
+done
+cat > "$E/SHIMS.txt" <<'S'
+binary deviation: endpoint resolution and sums key: harness build (-tags harness, internal/s3compat/harness.go)
+H1 MinIO buckets, versioning on; H2 MinIO users per principal; H3 donor identity documents (IMDS stand-in)
+H4 zram no-op unit, sysctl vm.* wrapper, harness-endpoint file, masked SSM agent, aws CLI env injection, fixed machine-ids
+H5 test release key and test sums key; SHA256SUMS lists placeholder .deb entries
+H6 console.service reconstructed (unverified); H7 console env names harness hosts; H8 CARLOS_SYSTEM_CHANNEL=canary on sophie
+H11 sophie /data/console on ext4 (dir-pool volume): btrfs lacks FS_IOC_GETFSUUID on 6.12
+H12 Nitro asset tag bind-mounted per box with the box's instance id
+not exercised (MinIO): every release.DeleteIfMatch conflict path (claims handover, hostops record/purge/mutation writers, mail/claim_gate, litestream lease release): MinIO ignores If-Match on DELETE
+S
+# The signer's own S3 actions, from the audit log.
+python3 - "$E/minio/audit.jsonl" > "$E/signer-actions.tsv" <<'PY'
+import json, sys
+print("time\tapi\tstatus\tbucket\tobject\tquery\tif_headers")
+for ln in open(sys.argv[1]):
+ e = json.loads(ln)
+ if e.get("accessKey") != "harness-signer":
+ continue
+ a = e.get("api", {})
+ h = {k: v for k, v in (e.get("requestHeader") or {}).items() if k.lower().startswith("if-")}
+ q = e.get("requestQuery") or {}
+ print("\t".join([e.get("time",""), a.get("name",""), str(a.get("statusCode","")), a.get("bucket",""), a.get("object",""),
+ json.dumps(q, sort_keys=True) if q else "", json.dumps(h, sort_keys=True) if h else ""]))
+PY
+wc -l "$E/signer-actions.tsv"
+# Nothing key-shaped in the bundle.
+if grep -rlE 'CARLOS_RELEASE_KEY=|BEGIN PRIVATE KEY|"secret_key"' "$E" 2>/dev/null; then echo "KEY MATERIAL FOUND: stop"; exit 1; fi
+zgrep -lE 'CARLOS_RELEASE_KEY=|BEGIN PRIVATE KEY|"secret_key"' "$E"/boxes/*.gz "$E"/standins/*.tgz 2>/dev/null && { echo "KEY MATERIAL FOUND in archives: stop"; exit 1; } || true
+tar czf /root/harness/evidence/$RUN.tgz -C /root/harness/evidence $RUN
+sha256sum /root/harness/evidence/$RUN.tgz
+aws --region eu-west-1 s3 cp --quiet /root/harness/evidence/$RUN.tgz s3://carlos-harness-640012953448/evidence/$RUN.tgz
+aws --region eu-west-1 s3 cp --quiet "$E/signer-actions.tsv" s3://carlos-harness-640012953448/evidence/$RUN.signer-actions.tsv
+aws --region eu-west-1 s3 ls s3://carlos-harness-640012953448/evidence/