Skip to content

pgw#1008 (P1, catalog-blocking): the clone producer's checkpoint facts reach the publish declare - #526

Closed
PaulFidika wants to merge 1 commit into
masterfrom
pgw1008-clone-classification
Closed

pgw#1008 (P1, catalog-blocking): the clone producer's checkpoint facts reach the publish declare#526
PaulFidika wants to merge 1 commit into
masterfrom
pgw1008-clone-classification

Conversation

@PaulFidika

Copy link
Copy Markdown
Contributor

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_clone accepts both facts (pgw#654) and spends them only on
apply_objective_scheduler_config — the scheduler stamp written inside the
produced tree. They never reach publish_v2, so the declare goes out bare.

publish_flavors (convert/publish.py) has passed both since pgw#654. This
call site is the one that did not.

Consequence

clone-huggingface cannot publish into any mirror the catalog already
serves.
Not "sometimes"; every classified repo, every time, at declare,
before a byte moves.

Live cost — ie#609: master's tensorhub/wan22-t2v-a14b is missing
transformer_2/ (the mirror was split into source_include legs and the third
leg was never submitted). The repair is one more leg with the obvious payload:

{"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, 400 classification_required,
predecessor sha256:3b57e96996aa… — with objective and distilled stated
right there in the payload. Every wan-2.2 function on the authoritative
catalog is down until this ships.

The fix

Two kwargs on the publish_v2(...) call in clone.py, matching
publish_flavors. objective_fact and distilled_fact are the already
validated, already normalized locals.

Tests

tests/convert/test_clone_classification_pgw1008.py, hermetic against the
shared 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 is
    omitted rather than authored; distilled is a plain bool on the input
    struct 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/conversion pin (currently
gen-worker==0.91.4; master's deployed conversion:prod 0.8.22 runs 0.91.4)
→ rebuild + redeploy conversion → re-run the ie#609 repair leg.

Tracker: pgw#1008, ie#609.

🤖 Generated with Claude Code

…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_pgw1008.py
fail with the two kwargs removed. Full tests/convert/: 74 passed, 2 skipped,
1 xfailed.
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