carlos / platform Public
Astra round 2 brief: instance key provision, plan rev 2
Review: docs/superpowers/plans/2026-10-10-instance-key-provision.md, rev 2 (f2c8149c), on branch instance-key-build. Its disposition table answers your round 1 (CODEX-PLAN-INSTANCE-KEY-R1.md): 8 accepted, finding 6 declined, and one acknowledged. The planner's report is INSTANCE-KEY-PLAN-REPORT-R2.md. Round 1's brief still applies.
What changed:
- Key-source evidence (O2′). Relocation accepts one of three sources: - (a)
instance.keyin the pinned manifest; - (b) the platform key, plus a durable adoption record. The agent writes it when rastrillo's helper callsPUT /instance-key/adoptionwith the key's SHA-256. This call is asked of rastrillo on #66, and is not yet built. - (c) a key from the bucket-held config.
Anything else refuses, as before.
- Durability. "Ensure" completes chmod and the file and directory fsyncs every time before it reports success.
- Other fixes. Nested backfill opens with mode 0. The decision uses the effective merged environment. The claim-restart premise is corrected and pinned by a test.
- Finding 6 declined. The hub's
-squashis Paul's standing rule; AGENTS.md's text is older.
Known residuals the planner lists. Judge whether each is acceptable:
- Claim launches strip
CARLOS_CONTROL_SOCKET(claim_snapshot.go:116), so adoption can't be recorded on claim boxes until they get one (O6). - Source (c) passes an app that keeps its own unpublished
instance.keywhile also having the key set in configuration. - Moves leave a stale adoption record on the source box.
- Ruling 18 treats fsync as not being a host write, and the claim path syncs outside the guard.
Judge:
- Is each round 1 finding closed?
- Is O2′ sound? Can any path accept a key the data isn't sealed with? Is the adoption record forgeable by the tenant? It is authenticated with the admin token, which the app holds. Does the record bind to the right host, installation and key?
- Is the adoption endpoint safe? Consider replicas, a mismatched key (409), and old agents.
- The residuals above.
- Anything new.
Give findings as P1/P2/P3 with file:line, then a verdict: ready to build, or not.