pgw#1009 (P1, catalog-blocking): the clone producer's checkpoint facts reach the publish declare - #527
pgw#1009 (P1, catalog-blocking): the clone producer's checkpoint facts reach the publish declare#527PaulFidika wants to merge 1 commit into
Conversation
…s reach the publish declare th#1411 refuses a v2 publish into a repo whose live rows carry classification unless the request restates objective/distilled. run_clone spent the caller's facts only on apply_objective_scheduler_config (the scheduler stamp inside the produced tree) and dropped them before publish_v2 — so a clone-huggingface into ANY already-classified mirror dies at declare, before a byte moves. publish_flavors has passed both since pgw#654; this call site was the one that did not. Live cost (ie#609): master's tensorhub/wan22-t2v-a14b is missing transformer_2 because the mirror plan's third source_include leg was never run, and the repair leg — one clone-huggingface merge, correct payload, objective='flow', distilled=false — was refused twice at declare, 400 classification_required, predecessor sha256:3b57e969. Every wan-2.2 function on the master catalog stays down until this ships. Revert-turns-red: both tests in tests/convert/test_clone_classification_pgw1009.py fail with the two kwargs removed. Full tests/convert/: 74 passed, 2 skipped, 1 xfailed. (Filed as pgw#1008 first; that id was taken concurrently by the arm-gate security lane, so this is 1009.)
|
Supporting evidence that this is an omission from the th#1411 sweep, not a design choice: every other publishing function in
|
|
Release vehicle — verified at source, so whoever merges this does not have to guess.
ie#609 (the master wan-2.2 outage) stays open until that chain completes. Its other three items |
The bug
th#1411 refuses a v2 publish into a repo whose live rows already carry
classification unless the request restates
objective/distilled(a v2 publish mints a new checkpoint identity and inherits nothing, th#1400).
run_cloneaccepts both facts (pgw#654) and spends them only onapply_objective_scheduler_config— the scheduler stamp written inside theproduced tree. They never reach
publish_v2, so the declare goes out bare.publish_flavors(convert/publish.py) has passed both since pgw#654. Thiscall site is the one that did not, and
git log -S "objective=objective_fact"shows it never has.
Consequence
clone-huggingfacecannot publish into any mirror the catalog alreadyserves. Not "sometimes" — every classified repo, every time, at declare,
before a byte moves. Mirrors are exactly the repos that get classified, so the
producer that creates them cannot update them.
Live cost — ie#609: master's
tensorhub/wan22-t2v-a14bis missingtransformer_2/(the mirror was split intosource_includelegs and the thirdleg was never submitted). The repair is one more leg:
{"huggingface_repo": "Wan-AI/Wan2.2-T2V-A14B-Diffusers", "source_revision": "5be7df96…", "destination_repo": "tensorhub/wan22-t2v-a14b", "source_include": ["model_index.json", "transformer_2/*"], "overwrite_repo": false, "destination_repo_tags": ["prod"], "objective": "flow", "distilled": false}Refused twice on the master standing stack —
074a2c19-5988-409d-a09b-9362e90cacaa(facts omitted) and
362957ad-ee57-4927-9611-ac9a04cc0bf0(facts stated, samerefusal, which is what proved they never reach the wire) — both
400 classification_required … predecessor sha256:3b57e96996aa…. Every wan-2.2function on the authoritative catalog is down until this ships.
The fix
Two kwargs on the
publish_v2(...)call inclone.py, matchingpublish_flavors.objective_fact/distilled_factare the alreadyvalidated, already normalized locals.
Tests
tests/convert/test_clone_classification_pgw1009.py, hermetic against theshared fake hub, driving the real
run_clone:test_declared_facts_reach_the_publish_declare— the ie#609 repair shape(merge leg into a classified mirror): the declare carries
objective: "flow",distilled: false,mode: "merge".test_undeclared_objective_stays_off_the_wire— an unstated objective isomitted rather than authored;
distilledis a plainboolon the inputstruct, so an undeclared clone honestly states
false.Revert-turns-red: both fail with the two kwargs removed (verified).
Full
tests/convert/: 74 passed, 2 skipped, 1 xfailed.Deploy chain this unblocks
gen-worker release →
training-endpoints/conversionpin (todaygen-worker==0.91.4; master's deployedconversion:prod0.8.22 runs 0.91.4)→ rebuild + redeploy
conversion→ re-run the ie#609 repair leg.Tracker: pgw#1009, ie#609.
🤖 Generated with Claude Code