gw#587 serving bootstrap: self-mint boots advertise their own key and run the warmup proof#340
Merged
Merged
Conversation
… 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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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_artifactsrecording required a DELIVEREDcompile_selection, so_install_compile_targetsraisedCompiledLaneUnavailableandproves_inductornever ran the warmup proof for a self-mint boot.What
fleet_cells.enable_compiled→ArmOutcome(armed+ optionalSelfMint): the mint's identity — own key ref_system/family-<f>#<key>(matches the hub fence'scompilecache.KeyRef) + self-attestedblake3:artifact digest, computed before the publish thread can clean the mint dir.arm_compile()pipelines —ArmingScopegains anenableseam 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_inductorcovers 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.STORE_SERVED_BOOT_COMPILEDis now explicitly gated on a deliveredcompile_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 revertedproves_inductor): exercised-but-zero-hit self-mint → boot fails closed, no target advertised,compile_cell_failed.ArmOutcome/SelfMintidentity contract asserts intest_fleet_cells.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_workerclean; 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.