gw#603: custom-warmup proof attributes to contract-compatible siblings; warmup=None stays fail-closed#346
Merged
Conversation
…s (warmup=None stays fail-closed) Live-found on the first 0.39.x LTX boot (gw#587 proof 01): the ac0bab9 single-name attribution made any custom-warmup class with 2+ warmable mandatory-lane aliases unbootable compiled — delivered cells included (expected=['edit','generate'] proven=['edit'], LTX generate+edit+extend share one class and one warmup() that warms every declared graph). Ruling (coordinator, 2026-07-20): proof is a property of the WARMED OBJECT and the graph set actually exercised, not the initiating handler's name — same identity reasoning as gw#587 design pt 5. A proven custom-warmup object therefore certifies every contract- compatible sibling alias (same family/lora-bucket/execution-contract digest/bindings), EXCEPT aliases explicitly declared warmup={...: None} — those stay fail-closed (the SDXL legacy-Turbo carve-out, now the revert-turns-red). The required-names gate becomes a subset check (every required alias proven; a proven superset is not a defect — unreachable for non-custom paths, so their semantics are unchanged). Runtime backstop unchanged: attributed aliases still serve through the per-call guarded wrappers with hit/miss counters — a sibling whose real requests miss degrades loudly, never silently. The ac0bab9-pinned test is REWRITTEN to pin the new outcome (sibling attribution + None-carve-out refusal) — deliberate reversal, recorded in tracker gw#603 with gw#595's original rationale linked. New test pins the exact live LTX shape (custom warmup, no declared rows, multi-alias) end to end over the real Executor rig. Revert-turns-red verified both ways. Suite: 1542 passed / 41 skipped (1 documented box-load cgroup flake, passes in isolation); mypy 125 files clean; ruff clean.
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.
Fixes the P0 blocking the gw#587 wave: under ac0bab9's single-name attribution, any custom-warmup class with 2+ warmable mandatory-lane aliases (LTX: generate+edit+extend on one class) could never boot compiled on >=0.38.8 — delivered cells included. Live evidence + ruling in tracker gw#603.
warmup={...: None}aliases stay fail-closed (legacy-Turbo carve-out — the new revert-turns-red).Ships as gen-worker 0.39.4 for the gw#587 proof rerun.
🤖 Generated with Claude Code