You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fusion: re-enabling LearnableFusionPolicy can train on an unranked union #302
Tracks the existing source review finding after merge. It is not an additional independent finding.
On main c6ef1f39ab4e03294aac60c3d832d365bff1ad7d, construction creates the inner DefaultFusion with the initial tournament flag. The governor later changes the outer policy's flag, while _run_tournament calls that unchanged inner, increments tournament_runs and learns from its fused result.
Affected scenario
Opt in with LearnableFusionPolicy(tournament=False), then enable its outer tournament flag (including the engine budget governor's below-soft-floor path). The inner remains tournament=False and returns an unranked union. The wrapper treats this as a measured tournament and a positive fusion training label. Counterfactual exploration through the same method cannot recover a real ranking.
The ordinary initial tournament=True default is not the affected case. This is a source-confirmed path, not a locally executed reproduction.
Bounded acceptance criteria
Whenever the label-producing tournament path is selected, the delegated inner must actually perform the intended ranking; synchronize state or otherwise separate ranked and unranked delegation.
Do not increment measured tournament/training counters or produce winner labels from an unranked union.
Retain budget-disabled union behavior without training labels and preserve existing default behavior.
Proposed regression checks (not executed here)
Construct with tournament=False, switch the outer flag to True, and provide distinct nonconflicting candidates plus an instrumented verifier. Assert actual ranking calls, a ranked trial and labels derived from the measured winner rather than the union flag. Cover False→True via the engine governor, initial True→False→True, and forced counterfactual exploration (epsilon=1); check counters and training observations.
Scope: fusion policy and offline regression tests. No implementation, local installation/test run, paid calls, release or workflow change is performed/requested by this filing. Existing local execution holds remain in force.
Activity
fix(fusion): LearnableFusionPolicy must rank before training on tourn…