Skip to content

release: gen-worker 0.44.0 — pgw#617 hierarchical component bindings (th#980 companion)#366

Merged
PaulFidika merged 4 commits into
masterfrom
release/pgw617-components
Jul 22, 2026
Merged

release: gen-worker 0.44.0 — pgw#617 hierarchical component bindings (th#980 companion)#366
PaulFidika merged 4 commits into
masterfrom
release/pgw617-components

Conversation

@PaulFidika

Copy link
Copy Markdown
Contributor

Implements the settled th#980 wire contract worker-side and cuts 0.44.0.

  • proto: `ModelBinding.components` (field 5, `map<string,string>` component -> canonical tensorhub ref; byte-mirror of tensorhub's proto). pb regenerated; CONTRACT.md row added.
  • load-then-substitute: setup materializes each override ref from its own snapshot (RunJob.snapshots / DesiredResidency, like base refs) and injects the loaded module into the base `from_pretrained` via the existing gw#479 `components=` mechanism. Component class comes from the BASE tree's model_index.json; weights from the override tree's `/` subtree or root.
  • identity: `ModelRef.component_overrides` is part of the binding identity — a component-only rebind derives a NEW instance key, so reconcile reloads; flat bindings (empty map) behave byte-identically to 0.43.x. Override refs join job pins, held refs/digests, and compile-cell binding facts (`.` triples).
  • typed refusals: `ComponentSubstitutionError` for unknown component names, non-CAS override refs, and overrides on self-loading str/Path slots — at setup, never mid-denoise.
  • registry relaxation: `selected_by=` slots may omit `default_checkpoint` (deploy bindings seed the hub mapping; mirrors tensorhub's th#980 relaxed registration rule). Unblocks the ie#524 sweep of wan-2.2 / sdxl / z-image.

Tests: full suite 564 passed / 5 skipped / 1 xfail. New hub-double contract tests (`tests/test_component_bindings_pgw617.py`): flat -> substitute -> flat identity proof over the real gRPC boundary, typed unknown-component refusal, registry relaxation rows.

Cherry-picked from chaos b973979.

…te components from ModelBinding.components

- proto: ModelBinding.components (field 5, map component -> canonical ref;
  mirrors tensorhub th#980); pb regenerated
- ModelRef.component_overrides (tensorhub-only, sorted pairs) — part of the
  binding identity, so a component-only rebind derives a new instance/
  residency identity; flat bindings byte-identical
- executor: _effective_spec stamps overrides per dispatch; setup
  materializes each override ref from its own snapshot and injects the
  loaded module via the gw#479 components= from_pretrained mechanism;
  pins/held refs/digests/compile-cell binding facts include override refs
- loading.load_component_override: class from the BASE model_index.json,
  weights from the override tree's subtree/root
- typed ComponentSubstitutionError (unknown component, non-CAS ref,
  non-worker-loaded slot)
- registry: selected_by= slots may omit default_checkpoint (th#980
  relaxation mirror; unblocks ie#524 sweep of wan-2.2/sdxl/z-image)
- tests: hub-double flat->substitute->flat identity proof, typed unknown-
  component refusal, registry relaxation (564 green)
@PaulFidika
PaulFidika merged commit 31bb873 into master Jul 22, 2026
1 check passed
@PaulFidika
PaulFidika deleted the release/pgw617-components branch July 22, 2026 00:27
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