test(orchestration): PR-2 the break contract pinned cell by cell (gh-#401) - #808
Merged
Merged
Conversation
…hrough the builder (gh-#401) STORY-453 AC1–AC17 (SPEC F186 slot table, F186.1, F186.2 a–f, F186.4 i) go green against the unsplit Orchestrator: back-announce, crosstalk and its ceremony exclusion, the two-announcement cap, station-id and ad cadence, StationId<Ad and Context<TimeDate drain tiebreaks, pooled vs rendered station id, time/date freshness, context provider key, lead-in last, the ceremony-only unit (no crosstalk / lead-in / track, on the tts request seam) and the held sign-on. 20 facts over a partial class split into two files for the line budget; every fact rides OrchestratorBuilder and one assertion. AC18–AC23 stay skipped for T518, AC24 is manual. Two story-wording drifts recorded in the fact comments: AC12 needs an 85 s queued tail to cross the 90 s budget, and AC17's NotBefore hold lives only on the ceremony-only decline rung. No production change.
…through the builder (gh-#401) STORY-453 AC18–AC23 (SPEC F186.3) go green against the unsplit Orchestrator: an expired time/date is not buffered and logs one expiry line; a throwing ad vend leaves the break without an ad and one WARN naming the vend; a null lead-in render and an over-budget back-announce render each drop their slot alone with every other item in position; a null SignOff render publishes exactly one HandoffPieceDropped; a null announcement render keeps the claim. Eight facts in a third partial file; the over-budget race is decided by the fake clock alone. AC24 stays manual. No production change.
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.
🧾 PR-2 of the Orchestrator split (#401): the break contract, one fact per cell
Follows PR-1 #805 (merged). Test-only: no production change (
git diff --stat main -- srcis empty).What
OrchestratorBuilder— back-announce, crosstalk and its ceremony exclusion, the two-announcement cap, station-id and ad cadence, StationId < Ad and Context < TimeDate drain tiebreaks, pooled vs rendered station id, time/date freshness, context provider key, lead-in last, the ceremony-only unit (no crosstalk / lead-in / track), the back-announce that stays on it, the held sign-on.HandoffPieceDropped, null announcement render keeps the claim. The over-budget race is decided by the fake clock alone.One partial class
FeatureBreakContractover three files (~300-line budget). Every fact is one assertion against the unsplitOrchestrator; the Story452 replay stays frozen.📝 Story-wording drifts found while pinning (for the SPEC owner, no code change)
NotBefore = max(existing, now + clamp(queuedAhead))hold lives only on the ceremony-only decline rung, never on the crossing-track branch ofGetNextAsync.✅ Gate
dotnet build -c Release0 warnings; full solution--filter "Category!=Integration": 0 failures. Orchestration 490 passed / 72 skipped (every remaining skip ispending: T<n>ormanual:); Architecture 172/12sk; Host 3075/15sk; Core 182; Context 78; Plugins 53; Ads 222; MediaLibrary 169; Tts 879/9sk.Part of #401.