carlos / platform Public

Clone
git clone https://amadan.net/carlos/platform

Plain git — no account needed to clone.

Download

Download this file

Census approval: wake-latency-4

Ruling census-ruling-wake-latency-4. Every change below keeps the disposition it already has, so it needs an approval, not a decision.

Envelopes re-pinned: internal/instancectl, internal/release.

Seal: 86570d1326baad6d866b4066b6bf65218434b201fb1f2c05ebc6e3c79f9c5a98 → 86570d1326baad6d866b4066b6bf65218434b201fb1f2c05ebc6e3c79f9c5a98.

Overlay: internal/provision/testdata/plan14-root-reads-wake-latency-4.tsv, appended to internal/provision/testdata/plan14-root-reads-chain.tsv.

The decision: two new units, written by hand

internal/release/digestcache.go adds two units that read files, so census-propose leaves them to a decision. Their rows are in internal/provision/testdata/plan14-root-reads-wake-latency-4-new.tsv, chained before the overlay above. The seal does not move.

| unit | reads | proposed disposition | |---|---|---| | FileSHA256Cached | file:Open: opens the staged build VerifyStaged names, as FileSHA256 does | authority, B3,J4, root-input;kept=B3;scope=protected-decision-only, the same as FileSHA256 | | SHA256Cached | file:Stat ×2: fstats that descriptor before and after hashing it | the same |

Only the agent calls these, through release.VerifyStaged, which is its duplicate of root's check on the nested path. Root instance control's staged-exe check is unchanged: it hashes in full before every bind into a tenant's namespace. That was Paul's ruling on 2026-10-25, after Astra's finding that a write through an already-writable mapping changes the bytes without moving a timestamp. The agent reuses a digest for an unchanged file identity (device, inode, size, mtime, ctime). A file changed in the last two seconds, or while it was being hashed, is never cached.