Skip to content

gw#587 serving bootstrap: self-mint boots advertise their own key and run the warmup proof#340

Merged
PaulFidika merged 1 commit into
masterfrom
agent/587-selfmint-advertise
Jul 20, 2026
Merged

gw#587 serving bootstrap: self-mint boots advertise their own key and run the warmup proof#340
PaulFidika merged 1 commit into
masterfrom
agent/587-selfmint-advertise

Conversation

@PaulFidika

Copy link
Copy Markdown
Contributor

Pairs with tensorhub PR #488 (hub half, HELD for this). Closes the serving-bootstrap gap the live mint proof exposed: a 0.39.x self-mint worker armed its mint but never advertised it — active_compile_artifacts recording required a DELIVERED compile_selection, so _install_compile_targets raised CompiledLaneUnavailable and proves_inductor never ran the warmup proof for a self-mint boot.

What

  • fleet_cells.enable_compiledArmOutcome (armed + optional SelfMint): the mint's identity — own key ref _system/family-<f>#<key> (matches the hub fence's compilecache.KeyRef) + self-attested blake3: artifact digest, computed before the publish thread can clean the mint dir.
  • Both arming sites record the synthesized selection (worker-loaded slots + self-loaded arm_compile() pipelines — ArmingScope gains an enable seam the executor routes its fleet policy through; CLI/unit default unchanged). A self-mint outcome WINS over a delivered family selection, so a target never advertises bytes it does not serve (the gw#586 shape).
  • proves_inductor covers every non-TRT active selection: a self-mint boot runs the SAME warmup proof (real cache-hit accounting on the actual serving graphs) as a store-served boot; zero-hit self-mint fails closed (CompiledLaneUnavailable), never eager. gw#587 design pt 5: the minting worker is trusted for its own serving via its own warmup proof.
  • PR gw#587: runtime assertion — store-served boot must pay ~0 compile time #338 alarm stays coherent: STORE_SERVED_BOOT_COMPILED is now explicitly gated on a delivered compile_selection — a MINTING boot legitimately compiles (no alarm); a store-served boot that compiles still alarms (existing tests unchanged and green).

Tests

  • test_self_mint_boot_serves_compiled_after_own_warmup_proof: mint boot → proof runs → advertises own key ref/digest on the wire target → no ADOPTED alarm despite 45s simulated compile wall.
  • test_self_mint_boot_without_warmup_proof_never_reaches_serving (revert-turns-red, verified red against the reverted proves_inductor): exercised-but-zero-hit self-mint → boot fails closed, no target advertised, compile_cell_failed.
  • Fleet ArmOutcome/SelfMint identity contract asserts in test_fleet_cells.
  • Full suite: 1527 passed / 41 skipped; 1 failure (test_ram_admission::…reclaimable_cgroup_cache) is a box-load flake — passes in isolation both on this branch and untouched master. mypy 125 files clean; ruff check src/gen_worker clean; http-timeout lint clean.

No-window gate

This is the gen-worker half tensorhub PR #488 is gated on: #488 must deploy only when fleet serving images carry this change (release 0.39.2) — a #488 hub with pre-advertise workers hot-prewarms a worker that fail-closes with no cell.

Tracker: cozy-creator-tracker python-gen-worker/progress.md #587.

… run the warmup proof

The 0.39.0 self-mint (PR #335) built mint/publish/attestation but a
minting worker never ADVERTISED its armed target: active_compile_artifacts
was only recorded when compile_selection was set (a DELIVERED cell), so
_install_compile_targets raised CompiledLaneUnavailable for the mandatory
lane and proves_inductor never ran the warmup proof for a self-mint —
the serving-bootstrap deadlock found by the live mint proof (pairs with
tensorhub PR #488's hot-prewarm + self-attested dispatch fence).

- fleet_cells.enable_compiled returns ArmOutcome (armed + optional
  SelfMint identity: own key ref "_system/family-<f>#<key>" + blake3
  self-attested artifact digest, computed before the publish thread can
  clean the mint dir).
- Executor records the synthesized selection at BOTH arming sites
  (worker-loaded slots and self-loaded arm_compile() pipelines — the
  ArmingScope now routes the executor's fleet policy via an enable seam);
  a self-mint outcome WINS over a delivered family selection so a target
  never advertises bytes it does not serve (the gw#586 shape).
- proves_inductor now covers every non-TRT active selection: a self-mint
  boot runs the SAME warmup proof (real regional cache-hit accounting on
  the actual serving graphs) as a store-served boot and fails closed
  (never eager) when the mint does not serve its own graphs.
- STORE_SERVED_BOOT_COMPILED (PR #338) stays coherent: the alarm gate is
  now explicitly compile_selection-is-set — a MINTING boot legitimately
  compiles and is exempt; a store-served boot that compiles still alarms.

Tests (real Executor rig, outcome-level): self-mint boot serves compiled
after its own proof + advertises its key ref/digest + no alarm despite
compile wall; revert-turns-red — an exercised-but-zero-hit self-mint
never reaches serving (verified red against the reverted proves_inductor);
fleet ArmOutcome identity contract.
@PaulFidika
PaulFidika merged commit b23e877 into master Jul 20, 2026
1 check passed
@PaulFidika
PaulFidika deleted the agent/587-selfmint-advertise branch July 20, 2026 05:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant