Skip to content

feat(alerts): live coverage preview in the schedule editor - #2435

Merged
Makisuo merged 56 commits into
mainfrom
ux/schedule-preview
Nov 10, 2026
Merged

Makisuo merged 56 commits into
mainfrom
ux/schedule-preview

fix(alerts): schedule editor's two-column breakpoint also clears the …

58a34f0
Select commit
Loading
Failed to load commit list.
Maple Review Bot / Maple / review succeeded Nov 10, 2026 in 4m 30s

Confidence 10/10 · No issues found

🟢 Confidence 10/10 · safe to merge. The gap and lane logic is pinned by tests that sample the preview against onCallAt across a DST change; the only open finding is the gap-length text the author declined to change.
1 note · tests covered · risk medium

Adds a live coverage preview to the on-call schedule editor (from the draft, overrides included) and reuses it on the detail page, with gap bars, a gap summary and a 30-second clock. shiftTimeline and formSection gained container-query layout. Safe to merge.

  • coveragePreview draws a lane per layer, the final lane and "No one" gap bars
  • The editor loads the saved schedule's overrides and layers them over the draft
  • shiftTimeline gains a gap tone, weekend shading, a zone label and narrow-bar labels
  • The detail page redraws the same preview from the server's shifts over 1, 2 or 4 weeks

Still open from earlier reviews

Fixed since the last review

  • ✅ F7 · Two-column breakpoint lands 4px before the timeline's @min-[30rem]
What was checked
  • gapsOf and the final lane are pinned against onCallAt every 30 minutes (schedule-coverage.test.ts:37)
  • A layer with no people cannot decode into a config layer: OnCallLayer.participants is a NonEmptyArray
  • Every formSection call site sits in a formCard, which now carries @container/form

58a34f0 · Reply "won't fix" to dismiss a finding, or mention @maple-review-bot to ask about one.