fix(orchestration): boundary-fit reads show-aware ident durations (gh-#463) - #503
Merged
Conversation
…463) BuildBoundaryFit consulted the estimator's show-blind 3-arg overload, so inside a show it could read the plain ident's Exact duration while the airing renders the longer show-branded line — up to ~4s one-directional under-estimate inside the tolerance band. Read the on-air show once (scheduleResolver's synchronous TryGetCurrent(), the T241 chokepoint) and pass it to the 4-arg overload for every estimate the fit makes. Flips Gh253's deliberate pin to assert the show-aware read it now documents, and adds Gh463 coverage proving the fit passes the on-air show name when a show is active and null on a grid gap.
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Closes #463.
🎚️ The accepted skew, revisited per the ticket:
BuildBoundaryFitconsulted the estimator's show-blind 3-arg overload, so inside a show the fit could read the plain ident'sExactduration while the airing renders the longer show-branded line — up to ~4s one-directional under-estimate inside the tolerance band.🔧 Fix (the ticket's own shape): read the on-air show once per fit build via the resolver's synchronous
TryGetCurrent()(one snapshot — every term in the fit describes the same show, never two snapshots straddling a boundary flip), and pass it to the 4-argEstimate. No schedule wired / no show on air degrades tonull— byte-identical to pre-fix behavior for showless stations.📌 Pin flipped:
Gh253's deliberate show-blind pin now asserts the show-aware read, and its inaccurate "no show context to offer" comment is corrected. NewGh463coverage drives the real Orchestrator/CachingScheduleResolverchain through a capturing estimator spy: show-on-air passes the show name, grid gap passesnull. Coverage verified honest by temporarily reverting the production line — the show-on-air spec fails as expected.✅
dotnet build GenWave.slnzero warnings;GenWave.Orchestration.Tests325 passed / 0 failed (3 pre-existing skips).