Skip to content

Emit a variant app graph per TestingKey (phase 1: seed-façade variants)#224

Merged
tachyonics merged 2 commits into
mainfrom
sp_Emit_a_variant_app_graph_per_TestingKey_phase_1_seed_facade_variants
Jul 26, 2026
Merged

Emit a variant app graph per TestingKey (phase 1: seed-façade variants)#224
tachyonics merged 2 commits into
mainfrom
sp_Emit_a_variant_app_graph_per_TestingKey_phase_1_seed_facade_variants

Conversation

@tachyonics

Copy link
Copy Markdown
Owner

@BindType only rewrote the seed-scope consumer to the doubles-sourced mock; the @BindType'd base binding stayed in the shared _wireBootstrap, so an eager binding's init still ran under the mocked suite (the wire-mvc overlay leak). Emit, per TestingKey, _WireGraph + Wire.bootstrap() = the production app graph minus the bindings the variant reconstructs per scope entry (the @BindType'd/@Scopable-lifted set) and the contributor proxies (rebuilt by façades). Re-point the variant seed façades' wireGraph: parameter type to it; the keyless _WireGraph and the contributor-proxy façades are untouched.

Phase 1 is gated to seed-façade, non-opaque-dropping variants: a route-carrying variant (phase 2) or an opaque @singleton(as: T) drop (phase 3, generic-subject axis re-index) emits no variant graph yet and keeps _WireGraph.

Gate: EagerSingletonBindType (existential eager binding) + ScopableCascade (Registry-style eager @singleton) prove the dropped binding is absent from the variant graph via introspect(); BindTypeDoubles/ScopableCascade/ReplacesBindType Compose migrated onto Wire.bootstrap().

@BindType only rewrote the seed-scope consumer to the doubles-sourced mock; the
@BindType'd base binding stayed in the shared _wireBootstrap, so an eager binding's
init still ran under the mocked suite (the wire-mvc overlay leak). Emit, per
TestingKey, _<Variant>WireGraph + Wire.bootstrap<Variant>() = the production app
graph minus the bindings the variant reconstructs per scope entry (the
@BindType'd/@Scopable-lifted set) and the contributor proxies (rebuilt by façades).
Re-point the variant seed façades' wireGraph: parameter type to it; the keyless
_WireGraph and the contributor-proxy façades are untouched.

Phase 1 is gated to seed-façade, non-opaque-dropping variants: a route-carrying
variant (phase 2) or an opaque @singleton(as: T) drop (phase 3, generic-subject
axis re-index) emits no variant graph yet and keeps _WireGraph.

Gate: EagerSingletonBindType (existential eager binding) + ScopableCascade
(Registry-style eager @singleton) prove the dropped binding is absent from the
variant graph via introspect(); BindTypeDoubles/ScopableCascade/ReplacesBindType
Compose migrated onto Wire.bootstrap<Variant>().
@tachyonics
tachyonics merged commit 8457a3e into main Jul 26, 2026
10 checks passed
@tachyonics
tachyonics deleted the sp_Emit_a_variant_app_graph_per_TestingKey_phase_1_seed_facade_variants branch July 26, 2026 04:13
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