test(runtime): measure disposable profile conformance in native images #664

Merged
toasterson merged 1 commit from feat/disposable-image-conformance into main 2026-10-17 14:12:04 +00:00
Owner

The native image harness did not produce PR 3's three disposable-profile checks, so a rebuilt image could not supply the evidence required before native profile cutover. Add installed-runtime measurements for cold_profile_bootstrap, missing_history_refused, and warm_profile_no_rewrite for Codex and Claude, alongside the existing wire/cancellation probes.

The full native image builder requests the measurements for both architectures, records runtime/profile/provider hashes, and refuses collection if a check is missing or belongs to another runtime artifact. The probe uses explicitly permissioned synthetic auth, bounded fixture files, loopback-only authenticated HTTP, and a controlled child umask. A cold stale continuation must return HTTP 409 before admission, leave no job receipt, and create no provider state. Warm preparation must retain refreshed auth/cache/config without inode, content, mtime, or ctime changes. No cache rebuild, account login, live model call, version pin, or production behavior change is introduced.

This is measurement tooling, not a production profile conformance certificate. The legacy provider-only updater still measures wire/cancel behavior only; its receipts cannot pass the full image-set disposable gate. Runtime private-slot CAS writeback and live subscription acceptance remain separate prerequisites. All Codex/Claude profiles remain on retained PVCs.

DISPOSABLE-RUNTIMES.md now records Astra 1's controlled refresh result: both refresh and access tokens rotated, observed Codex 0.163.0, refreshed 0600 auth retained on the original PVC. It documents the agreed ESO seed path, ownership/modes, slot-first ordering, and fail-closed rule. No secret values are included.

Validation: 47 image-tool tests plus 5 probe witness/failure-path tests passed locally; git diff --check passed. Local Rust/Docker builds were not run: no Rust changes, and armini remains below the 25 GiB build headroom guard. Actual Linux image measurements are not yet claimed; the merged-main home image build must execute them on both architectures before native cutover. All 52 targeted tests also passed in the Linux CI job. All 15 CI checks passed on head 0178a53d: Forgejo run 4308. PR image jobs validate the pipeline without publishing; actual two-architecture image measurements remain a merged-main release gate. The local Docker daemon returned a containerd blob I/O error, so it was left untouched.

Sequence: talos #221 (PR 7/9) is merged. This is the requested small conformance prerequisite before PR 8 / native cutover. Deploy nothing from this branch; do not merge automatically.

The native image harness did not produce PR 3's three disposable-profile checks, so a rebuilt image could not supply the evidence required before native profile cutover. Add installed-runtime measurements for `cold_profile_bootstrap`, `missing_history_refused`, and `warm_profile_no_rewrite` for Codex and Claude, alongside the existing wire/cancellation probes. The full native image builder requests the measurements for both architectures, records runtime/profile/provider hashes, and refuses collection if a check is missing or belongs to another runtime artifact. The probe uses explicitly permissioned synthetic auth, bounded fixture files, loopback-only authenticated HTTP, and a controlled child umask. A cold stale continuation must return HTTP 409 before admission, leave no job receipt, and create no provider state. Warm preparation must retain refreshed auth/cache/config without inode, content, mtime, or ctime changes. No cache rebuild, account login, live model call, version pin, or production behavior change is introduced. This is measurement tooling, not a production profile conformance certificate. The legacy provider-only updater still measures wire/cancel behavior only; its receipts cannot pass the full image-set disposable gate. Runtime private-slot CAS writeback and live subscription acceptance remain separate prerequisites. All Codex/Claude profiles remain on retained PVCs. `DISPOSABLE-RUNTIMES.md` now records Astra 1's controlled refresh result: both refresh and access tokens rotated, observed Codex 0.163.0, refreshed 0600 auth retained on the original PVC. It documents the agreed ESO seed path, ownership/modes, slot-first ordering, and fail-closed rule. No secret values are included. Validation: 47 image-tool tests plus 5 probe witness/failure-path tests passed locally; `git diff --check` passed. Local Rust/Docker builds were not run: no Rust changes, and armini remains below the 25 GiB build headroom guard. Actual Linux image measurements are not yet claimed; the merged-main home image build must execute them on both architectures before native cutover. All 52 targeted tests also passed in the Linux CI job. All 15 CI checks passed on head 0178a53d: [Forgejo run 4308](https://code.aopc.cloud/toasterson/akh-medu/actions/runs/4308). PR image jobs validate the pipeline without publishing; actual two-architecture image measurements remain a merged-main release gate. The local Docker daemon returned a containerd blob I/O error, so it was left untouched. Sequence: talos #221 (PR 7/9) is merged. This is the requested small conformance prerequisite before PR 8 / native cutover. Deploy nothing from this branch; do not merge automatically.
test(runtime): measure disposable profile behavior in native images
All checks were successful
CI / check-seshat (pull_request) Successful in 2m14s
CI / test-sokar-sharing (pull_request) Successful in 2m23s
CI / publish-chart (pull_request) Successful in 49s
CI / check-akh-medu (pull_request) Successful in 4m46s
CI / test-sokar (pull_request) Successful in 7m57s
CI / docker-akh-transcripts (pull_request) Successful in 9m17s
CI / docker-seshd (pull_request) Successful in 12m20s
CI / test-akh-medu (pull_request) Successful in 18m59s
CI / docker-sokard (pull_request) Successful in 20m5s
CI / test-session-platform (pull_request) Successful in 21m34s
CI / platform-images-home (pull_request) Successful in 1m3s
CI / platform-images-daemons (pull_request) Successful in 1m3s
CI / platform-images-core (pull_request) Successful in 1m8s
CI / platform-images-fleet (pull_request) Successful in 51s
CI / platform-images-collect (pull_request) Successful in 51s
0178a53df5
Sign in to join this conversation.
No reviewers
No labels
follow-up
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
toasterson/akh-medu!664
No description provided.