rootfs apps: Astra review brief for the plan series
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 file changed,
+38
−0
docs/superpowers/plans/CODEX-REVIEW-BRIEF-ROOTFS-PLANS.md+38 −0
CI passed — run details
CI log
=== gate ===
.amadan/test-gate.sh
=== launchctx (0 s)
ok amadan.net/carlos/platform.git/launchctx 0.014s
? amadan.net/carlos/platform.git/launchctx/controlname [no test files]
? amadan.net/carlos/platform.git/launchctx/wireid [no test files]
=== vet (1 s)
=== gofmt (0 s)
gofmt -l .: clean
=== rest (146 s)
? github.com/carlosframework/platform/cmd/changelog [no test files]
ok github.com/carlosframework/platform/cmd/console 4.608s
ok github.com/carlosframework/platform/cmd/moveprobe 11.548s
ok github.com/carlosframework/platform/cmd/zddprobe 0.707s
ok github.com/carlosframework/platform/internal/activator 58.870s
ok github.com/carlosframework/platform/internal/agentsock 0.015s
ok github.com/carlosframework/platform/internal/alerting 0.004s
ok github.com/carlosframework/platform/internal/analytics 0.023s
ok github.com/carlosframework/platform/internal/appconfig 2.655s
ok github.com/carlosframework/platform/internal/apperr 0.086s
ok github.com/carlosframework/platform/internal/applog 0.131s
ok github.com/carlosframework/platform/internal/awsinv 0.005s
ok github.com/carlosframework/platform/internal/boxchoice 0.005s
ok github.com/carlosframework/platform/internal/boxid 0.785s
? github.com/carlosframework/platform/internal/boxid/boxidtest [no test files]
? github.com/carlosframework/platform/internal/boxid/internal/signtest [no test files]
ok github.com/carlosframework/platform/internal/boxvolumes 0.007s
ok github.com/carlosframework/platform/internal/caps 0.012s
ok github.com/carlosframework/platform/internal/certwarm 0.002s
ok github.com/carlosframework/platform/internal/cgroup 0.692s
ok github.com/carlosframework/platform/internal/changelog 0.345s
ok github.com/carlosframework/platform/internal/claimactivation 0.879s
ok github.com/carlosframework/platform/internal/clamd 0.054s
? github.com/carlosframework/platform/internal/cliflag [no test files]
? 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 7.890s
ok github.com/carlosframework/platform/internal/dbdoor/dbdoortest 0.023s
ok github.com/carlosframework/platform/internal/dbquery 0.005s
ok github.com/carlosframework/platform/internal/dbreads 2.095s
? github.com/carlosframework/platform/internal/dbreads/dbreadstest [no test files]
ok github.com/carlosframework/platform/internal/dbverify 0.019s
ok github.com/carlosframework/platform/internal/dnsrec 0.017s
ok github.com/carlosframework/platform/internal/docsite 0.021s
ok github.com/carlosframework/platform/internal/domains 2.709s
ok github.com/carlosframework/platform/internal/doorkey 0.021s
ok github.com/carlosframework/platform/internal/economics 0.018s
ok github.com/carlosframework/platform/internal/edge 45.200s
? 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.182s
ok github.com/carlosframework/platform/internal/gate 1.804s
ok github.com/carlosframework/platform/internal/genselect 0.016s
ok github.com/carlosframework/platform/internal/geo 0.024s
ok github.com/carlosframework/platform/internal/geoip 0.036s
ok github.com/carlosframework/platform/internal/historyreadback 0.189s
ok github.com/carlosframework/platform/internal/host 140.985s
ok github.com/carlosframework/platform/internal/hostactors 5.569s
ok github.com/carlosframework/platform/internal/hostactors/awsmembership 0.008s
ok github.com/carlosframework/platform/internal/hostbox 3.148s
ok github.com/carlosframework/platform/internal/hostclaim 0.889s
ok github.com/carlosframework/platform/internal/hostenv 0.008s
ok github.com/carlosframework/platform/internal/hostevidence 0.008s
ok github.com/carlosframework/platform/internal/hostexec 5.247s
ok github.com/carlosframework/platform/internal/hostfence 0.044s
ok github.com/carlosframework/platform/internal/hostfiles 10.233s
ok github.com/carlosframework/platform/internal/hostfloor 0.022s
ok github.com/carlosframework/platform/internal/hostguard 1.061s
ok github.com/carlosframework/platform/internal/hostops 2.037s
? github.com/carlosframework/platform/internal/hostops/fencerelease [no test files]
ok github.com/carlosframework/platform/internal/hostops/internal/fencerelease 0.007s
ok github.com/carlosframework/platform/internal/hostquarantine 0.008s
ok github.com/carlosframework/platform/internal/hostrelocate 0.591s
ok github.com/carlosframework/platform/internal/hostresolve 0.205s
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.255s
ok github.com/carlosframework/platform/internal/instanceexec 2.791s
ok github.com/carlosframework/platform/internal/instancefs 0.004s
ok github.com/carlosframework/platform/internal/instancekey 0.005s
ok github.com/carlosframework/platform/internal/instanceupdates 0.007s
ok github.com/carlosframework/platform/internal/layout 1.856s
ok github.com/carlosframework/platform/internal/lbhealth 0.002s
ok github.com/carlosframework/platform/internal/lease 10.112s
ok github.com/carlosframework/platform/internal/lease/leasetest 0.618s
ok github.com/carlosframework/platform/internal/ledger 0.018s
ok github.com/carlosframework/platform/internal/mail 0.203s
ok github.com/carlosframework/platform/internal/maintenance 0.102s
ok github.com/carlosframework/platform/internal/maintenanceexec 5.528s
ok github.com/carlosframework/platform/internal/maintenanceguard 0.088s
ok github.com/carlosframework/platform/internal/metrics 0.005s
ok github.com/carlosframework/platform/internal/moves 21.233s
ok github.com/carlosframework/platform/internal/moves/archive 1.101s
ok github.com/carlosframework/platform/internal/objstore 0.243s
ok github.com/carlosframework/platform/internal/ops 0.190s
ok github.com/carlosframework/platform/internal/park 0.257s
ok github.com/carlosframework/platform/internal/plans 0.005s
ok github.com/carlosframework/platform/internal/privatefile 0.003s
ok github.com/carlosframework/platform/internal/provision 14.115s
ok github.com/carlosframework/platform/internal/publicrelease 0.008s
? github.com/carlosframework/platform/internal/regionname [no test files]
ok github.com/carlosframework/platform/internal/registry 5.588s
ok github.com/carlosframework/platform/internal/relay 7.193s
ok github.com/carlosframework/platform/internal/release 24.658s
ok github.com/carlosframework/platform/internal/rollout 3.713s
ok github.com/carlosframework/platform/internal/rolloutwords 0.007s
ok github.com/carlosframework/platform/internal/rootaws 0.007s
ok github.com/carlosframework/platform/internal/rootparticipation 0.068s
ok github.com/carlosframework/platform/internal/rootstate 0.026s
ok github.com/carlosframework/platform/internal/runs 0.541s
ok github.com/carlosframework/platform/internal/s3compat 0.006s
ok github.com/carlosframework/platform/internal/safefile 0.004s
ok github.com/carlosframework/platform/internal/schedule 2.650s
ok github.com/carlosframework/platform/internal/seeds 0.014s
ok github.com/carlosframework/platform/internal/sim/engines 2.559s
ok github.com/carlosframework/platform/internal/sim/hostlife 10.022s
ok github.com/carlosframework/platform/internal/sim/litestreamfacts 4.055s
ok github.com/carlosframework/platform/internal/status 0.066s
ok github.com/carlosframework/platform/internal/steering 0.007s
ok github.com/carlosframework/platform/internal/stopevidence 0.131s
ok github.com/carlosframework/platform/internal/svcrole 0.002s
ok github.com/carlosframework/platform/internal/telemetry 0.004s
ok github.com/carlosframework/platform/internal/termfence 0.004s
ok github.com/carlosframework/platform/internal/tunnelclient 0.004s
ok github.com/carlosframework/platform/internal/unixdial 0.002s
ok github.com/carlosframework/platform/internal/updatewords 0.006s
ok github.com/carlosframework/platform/internal/usage 0.005s
ok github.com/carlosframework/platform/internal/version 0.002s
ok github.com/carlosframework/platform/internal/vet 1.670s
=== internal_console@0 (86 s)
ok github.com/carlosframework/platform/internal/console 83.852s
=== internal_console@1 (43 s)
ok github.com/carlosframework/platform/internal/console 41.144s
=== internal_console@2 (40 s)
ok github.com/carlosframework/platform/internal/console 38.147s
=== internal_console@3 (39 s)
ok github.com/carlosframework/platform/internal/console 37.787s
=== internal_console@4 (41 s)
ok github.com/carlosframework/platform/internal/console 39.660s
=== internal_console@5 (41 s)
ok github.com/carlosframework/platform/internal/console 39.090s
=== internal_console@6 (36 s)
ok github.com/carlosframework/platform/internal/console 34.266s
=== internal_console@7 (45 s)
ok github.com/carlosframework/platform/internal/console 42.944s
=== root@0 (109 s)
ok github.com/carlosframework/platform 106.936s
=== root@1 (84 s)
ok github.com/carlosframework/platform 82.289s
=== root@2 (91 s)
ok github.com/carlosframework/platform 88.888s
=== cross ===
--- shard 0 of 5 ---
cross-compiling darwin/arm64
--- shard 1 of 5 ---
cross-compiling darwin/amd64
--- shard 2 of 5 ---
cross-compiling linux/arm64
linux/arm64 carlos binary: 50528418 bytes (ceiling 52000000)
--- shard 3 of 5 ---
cross-compiling windows/amd64
--- shard 4 of 5 ---
cross-compiling windows/arm64
=== minio-contract ===
minio contract: arm64, minio RELEASE.2025-09-07T16-13-09Z, mc RELEASE.2025-08-13T08-35-41Z
minio: cached, digest verified
mc: cached, digest verified
minio healthy on 127.0.0.1:20999
Added `local` successfully.
Bucket created successfully `local/contract-bucket`.
Bucket created successfully `local/denied-bucket`.
Created policy `contract-only` successfully.
Added user `scopeduser` successfully.
Attached Policies: [contract-only]
To User: scopeduser
buckets and scoped user ready
=== RUN TestDeliveredContractMinio
=== RUN TestDeliveredContractMinio/put
=== RUN TestDeliveredContractMinio/get_round-trips_the_body
=== RUN TestDeliveredContractMinio/list_shows_the_key
=== RUN TestDeliveredContractMinio/head_and_list_agree_on_the_version
=== RUN TestDeliveredContractMinio/the_app_cannot_tag_its_own_object
=== RUN TestDeliveredContractMinio/the_app_cannot_tag_its_own_object/not_by_PutObjectTagging
=== RUN TestDeliveredContractMinio/the_app_cannot_tag_its_own_object/and_not_by_x-amz-tagging_on_upload
=== RUN TestDeliveredContractMinio/the_app_cannot_tag_by_any_other_route
=== RUN TestDeliveredContractMinio/the_app_cannot_tag_by_any_other_route/not_by_CreateMultipartUpload
=== RUN TestDeliveredContractMinio/the_app_cannot_tag_by_any_other_route/not_by_CopyObject_with_a_REPLACE_tagging_directive
=== RUN TestDeliveredContractMinio/the_app_cannot_tag_by_any_other_route/but_multipart_itself_is_allowed
=== RUN TestDeliveredContractMinio/the_app_cannot_tag_by_any_other_route/and_copy_itself_is_allowed
=== RUN TestDeliveredContractMinio/the_app_cannot_tag_by_any_other_route/a_POST-policy_forged_tag_with_a_matching_version_is_still_not_a_verdict
=== RUN TestDeliveredContractMinio/the_app_cannot_tag_by_any_other_route/and_an_ordinary_tagged-with-something-else_upload_is_allowed
=== RUN TestDeliveredContractMinio/delete_removes_it
=== RUN TestDeliveredContractMinio/cross-bucket_denial
--- PASS: TestDeliveredContractMinio (0.02s)
--- PASS: TestDeliveredContractMinio/put (0.00s)
--- PASS: TestDeliveredContractMinio/get_round-trips_the_body (0.00s)
--- PASS: TestDeliveredContractMinio/list_shows_the_key (0.00s)
--- PASS: TestDeliveredContractMinio/head_and_list_agree_on_the_version (0.00s)
--- PASS: TestDeliveredContractMinio/the_app_cannot_tag_its_own_object (0.00s)
--- PASS: TestDeliveredContractMinio/the_app_cannot_tag_its_own_object/not_by_PutObjectTagging (0.00s)
--- PASS: TestDeliveredContractMinio/the_app_cannot_tag_its_own_object/and_not_by_x-amz-tagging_on_upload (0.00s)
--- PASS: TestDeliveredContractMinio/the_app_cannot_tag_by_any_other_route (0.01s)
--- PASS: TestDeliveredContractMinio/the_app_cannot_tag_by_any_other_route/not_by_CreateMultipartUpload (0.00s)
--- PASS: TestDeliveredContractMinio/the_app_cannot_tag_by_any_other_route/not_by_CopyObject_with_a_REPLACE_tagging_directive (0.00s)
--- PASS: TestDeliveredContractMinio/the_app_cannot_tag_by_any_other_route/but_multipart_itself_is_allowed (0.00s)
--- PASS: TestDeliveredContractMinio/the_app_cannot_tag_by_any_other_route/and_copy_itself_is_allowed (0.00s)
--- PASS: TestDeliveredContractMinio/the_app_cannot_tag_by_any_other_route/a_POST-policy_forged_tag_with_a_matching_version_is_still_not_a_verdict (0.00s)
--- PASS: TestDeliveredContractMinio/the_app_cannot_tag_by_any_other_route/and_an_ordinary_tagged-with-something-else_upload_is_allowed (0.00s)
--- PASS: TestDeliveredContractMinio/delete_removes_it (0.00s)
--- PASS: TestDeliveredContractMinio/cross-bucket_denial (0.00s)
PASS
ok github.com/carlosframework/platform/internal/objstore 0.021s
=== RUN TestT4StorageProbeMinio
2026/10/24 17:48:13 moves: T4: STORE: list: operation error S3: ListObjectsV2, https response error StatusCode: 403, RequestID: 18E18864F4688040, HostID: 7c420053e0fbcd7f41653fdd92ffa2802c903d05303b1aa15adc2e8bb65d183f, api error SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided. Check your key and signing method.
--- PASS: TestT4StorageProbeMinio (0.00s)
PASS
ok github.com/carlosframework/platform/internal/host 0.020s
=== RUN TestS3StoreMinioContract
=== RUN TestS3StoreMinioContract/conditional_get_and_etag_listing
=== RUN TestS3StoreMinioContract/bump_through_every_mutation_path
--- PASS: TestS3StoreMinioContract (0.02s)
--- PASS: TestS3StoreMinioContract/conditional_get_and_etag_listing (0.01s)
--- PASS: TestS3StoreMinioContract/bump_through_every_mutation_path (0.01s)
PASS
ok github.com/carlosframework/platform/internal/release 0.028s
Bucket created successfully `local/dbf-deploy`.
Bucket created successfully `local/dbf-data-ie`.
Bucket created successfully `local/dbf-data-uk`.
local/dbf-deploy versioning is enabled
Created policy `dbf-console` successfully.
Created policy `dbf-ukbox` successfully.
Added user `dbfconsole` successfully.
Added user `dbfukbox` successfully.
Attached Policies: [dbf-console]
To User: dbfconsole
Attached Policies: [dbf-ukbox]
To User: dbfukbox
=== RUN TestDBForwardMinio
2026/10/24 17:48:16 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/24 17:48:16 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/24 17:48:16 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/24 17:48:16 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
2026/10/24 17:48:16 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
2026/10/24 17:48:16 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
2026/10/24 17:48:16 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
2026/10/24 17:48:16 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
2026/10/24 17:48:16 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
2026/10/24 17:48:16 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/24 17:48:16 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/24 17:48:16 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/24 17:48:16 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/24 17:48:16 console: could not notify member@example.com of a CLI token issue: keymail: lookup member@example.com: keymail: GET /api/federation/lookup?addr=member%40example.com&from=console%40127.0.0.1%3A40271: could not determine target mailbox
agent.go:135: dbreads: dbr_n6d3yk5fpjfnir4xadshd2g6yi: planned 3 files (1544 bytes) and restored to 3 in 9ms
agent.go:135: dbreads: dbr_n6d3yk5fpjfnir4xadshd2g6yi: output 5 bytes in 1 confirmed chunks in 1ms
2026/10/24 17:48:17 console: db read dbr_n6d3yk5fpjfnir4xadshd2g6yi: relayed 1 chunks (102 bytes) in 1.004s, ended done
agent.go:135: dbreads: dbr_dhnokj2itcbpyq6qbvdzjmughi: planned 1 files (720 bytes) and restored to 1 in 7ms
agent.go:135: dbreads: dbr_dhnokj2itcbpyq6qbvdzjmughi: output 5 bytes in 1 confirmed chunks in 1ms
2026/10/24 17:48:18 console: db read dbr_dhnokj2itcbpyq6qbvdzjmughi: relayed 1 chunks (102 bytes) in 1.004s, ended done
agent.go:135: dbreads: dbr_zdgu6byrss72enkdo6z7iz4ipe: planned 3 files (1544 bytes) and held through 3 in 8ms
agent.go:135: dbreads: dbr_zdgu6byrss72enkdo6z7iz4ipe: output 1544 bytes in 1 confirmed chunks in 1ms
2026/10/24 17:48:19 console: db read dbr_zdgu6byrss72enkdo6z7iz4ipe: relayed 1 chunks (1641 bytes) in 1.003s, ended done
=== RUN TestDBForwardMinio/by_disconnect
=== NAME TestDBForwardMinio
agent.go:135: dbreads: dbr_x7xvjeeo6646dldlcah53zw4ia: planned 3 files (1544 bytes) and restored to 3 in 8ms
2026/10/24 17:48:19 console: db read dbr_x7xvjeeo6646dldlcah53zw4ia: relayed 0 chunks (0 bytes) in 10ms, ended client gone
agent.go:135: dbreads: dbr_x7xvjeeo6646dldlcah53zw4ia: output 5 bytes in 1 confirmed chunks in 11ms
=== RUN TestDBForwardMinio/by_timeout
=== NAME TestDBForwardMinio
agent.go:135: dbreads: dbr_rqc6u5cqpgutcxgnyzepdnigu4: planned 3 files (1544 bytes) and restored to 3 in 8ms
2026/10/24 17:48:39 console: db read dbr_rqc6u5cqpgutcxgnyzepdnigu4: relayed 0 chunks (0 bytes) in 19.748s, ended no-result
agent.go:135: dbreads: dbr_rqc6u5cqpgutcxgnyzepdnigu4: output 5 bytes in 1 confirmed chunks in 19.739s
--- PASS: TestDBForwardMinio (23.08s)
--- PASS: TestDBForwardMinio/by_disconnect (0.13s)
--- PASS: TestDBForwardMinio/by_timeout (19.86s)
PASS
ok github.com/carlosframework/platform/internal/console 23.098s
minio contract: PASS
diff --git a/docs/superpowers/plans/CODEX-REVIEW-BRIEF-ROOTFS-PLANS.md b/docs/superpowers/plans/CODEX-REVIEW-BRIEF-ROOTFS-PLANS.md| new file mode 100644 |
| index 000000000..2e917c09e |
| --- /dev/null |
| +++ b/docs/superpowers/plans/CODEX-REVIEW-BRIEF-ROOTFS-PLANS.md |
| @@ -0,0 +1,38 @@ |
| +# Review brief: rootfs apps plan series (round 1) |
| + |
| +You are reviewing an implementation plan series for the CARLOS platform (Go) |
| +before anyone builds it. Review the repository at the commit you were given. |
| + |
| +Read: |
| +- `docs/superpowers/specs/2026-10-24-rootfs-apps-design.md` (approved spec) |
| +- `docs/superpowers/plans/2026-10-24-rootfs-apps-0-index.md` (series map, |
| + shared contract, rulings R7-R10, decisions) |
| +- the six plans `docs/superpowers/plans/2026-10-24-rootfs-apps-[1-6]-*.md` |
| +- `AGENTS.md`, and the code the plans cite. |
| + |
| +Report defects that would make the built software wrong, insecure, or |
| +impossible to build as planned. In priority order: |
| +1. **Isolation and authority**: a path where a rootfs app, worker, release |
| + process, run or interactive session escapes its instance's namespace, |
| + slice or tier; reaches another app's image, build or data; runs on a |
| + shared or flat box; reaches IMDS, the box's loopback or the box's own |
| + addresses through egress; or where a tenant controls a command, path or |
| + grant it should not (spec §7 C1-C9). |
| +2. **Correctness under concurrency and failure**: swaps, release-process |
| + failure (C8), always-on restarts, worker handover, one-writer (C7), |
| + agent restarts, old boxes meeting new records or manifests (C2), a box |
| + with host lifecycle claim control armed. |
| +3. **Plans that cannot be built as written**: a cited file, function or |
| + line that does not exist or does something else; a name one plan |
| + consumes that no plan produces; a dependency order that does not hold; |
| + a test that would not fail if the property it guards broke. |
| +4. **Spec coverage**: a spec requirement no task implements. |
| + |
| +For each finding: severity (P1 blocks the series, P2 must fix before the |
| +owning plan is built, P3 worth fixing), the plan and task, the concrete |
| +failure scenario, the evidence (file:line), and the smallest fix. |
| + |
| +Do not re-argue the spec's rulings R1-R6 or the index's R7-R10. Skip |
| +wording and style. If a plan names a mechanism, bounds it and assigns it, |
| +that is complete at plan level. End with a verdict: accept, accept with |
| +fixes, or reject. |