fix(loops): funnel alignment — the search tie-band matches the gate under the cost objective#254
Merged
Merged
Conversation
…nder the cost objective The cost run's HOLD was a funnel misalignment, not an author failure: the gate accepts score within −scoreTolerance (5pp) + significant savings, but search-side champion displacement required a 1pp tie — so the author's researchThenExecute (−3.7pp at 43% cheaper on the gen1 discriminating set, exactly the candidate the gate was built to judge) died in search and the gate saw identical-champion. The principle: the search filter must be no stricter than the promotion criterion. Under objective='cost', championEpsilon now defaults to scoreTolerance; CHAMPION_EPSILON env on the bench runner for explicit control.
tangletools
approved these changes
Jun 11, 2026
tangletools
left a comment
Contributor
There was a problem hiding this comment.
✅ Auto-approved PR — 25c00a43
Blanket team auto-approval is enabled for this reviewer service.
The full PR reviewer audit still runs separately and will publish findings if it detects issues.
tangletools · auto-approval · reason: blanket_auto_approve · 2026-06-11T00:20:47Z
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The cost-objective run returned HOLD identical-champion, and the discriminating-set recompute found why — a clean design lesson:
researchThenExecuteis exactly the candidate the non-inferiority gate (tolerance 5pp + significant savings) was built to promote — and it never reached the gate, because search-side displacement required a 1pp tie. The funnel was stricter than the promotion criterion, so cost-frontier candidates died in search and the gate saw identical-champion every time (this also retro-explains the prior run'sdualPersonaRefine, 2.1pp gap at half cost, filtered).The principle: the search filter must be no stricter than the promotion criterion. Under
objective: 'cost',championEpsilonnow defaults toscoreTolerance(5pp);CHAMPION_EPSILONenv for explicit control. +1 test pinning the displacement behavior at both bands with the run's real numbers. Suite 789 ✓. Cost run relaunches on this fix with a fresh holdout offset.