feat: Dayparting PR 2/5 — authoring surfaces (Shows page, span-assign picker, imaging scope) - #456
Merged
Merged
Conversation
…gn-show (run-span, transactional, RETURNING-honest), ShowId write-authoritative on ScheduleSegment, wire+grid round-trip preserves show_id, fingerprint covers it; music-only-runs-span RATIFIED (Dean 2026-08-10)
…ngths, provenance line, guarded-delete rendering the block-naming 409); nav entry; 7 jest specs + 401 knob fact
…span, union-typed target/shows states (armed-while-unloaded unrepresentable), narrow-disable on merged stored rows, server-loaded roster, sad-path specs 15/15
…ation_id-gated picker (RATIFIED Dean 2026-08-10), scope column w/ orphan label, allSettled page load; shared FakeShowStore dedup
…ed overrides as operator merges (Current: line now honest for merged named runs); regression pin through the real derivation
6 tasks
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.
📛 Dayparting epic — PR 2 of 5 (stacked on #455 · PLAN T243–T247)
The authoring layer — you can name your station's hours before anything airs differently:
POST /api/schedule/assign-show— transactional run-span (single SELECT snapshot,UPDATE … RETURNINGhonesty, response carries the fresh week fingerprint);ScheduleSegment.ShowIdis the write-authoritative field (Show stays the load projection, duality pinned); the grid PUT round-trips showId end-to-end (wire + serializer + jest — the gh-schedule: a block spanning the whole week fails to save #255 wipe-on-repaint class killed at three layers); fingerprint hashes ShowId (rename never 409s an editor). Ruling recorded: music-only runs SPAN (Dean 2026-08-10) — one click names the overnight stretch.✅ Gates
Every task opus-review-gated (T243 ×3 rounds, T244 first-round PASS, T245 ×2, T246 ×2, wire-fix ×1 — all catches probe- or stash-proven). Suites: solution non-Integration 0 failed, MediaLibrary Integration 668/0, jest 99 suites/931/0, tsc clean, Architecture 95/95,
-warnaserror0/0.🖐️ Live checklist for the pinned deploy (the T229/T233 pattern — the on-air half)
show_id(query:select kind, segment_kind, show_id from station.booth_log order by id desc limit 10)