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>
4 files changed,
+450
−0
harness/RUNLOG.md+63 −0harness/checks/iam-review-signer.txt+54 −0harness/checks/signer-actions.tsv+283 −0harness/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/ |