At Vespers/Compline, a day's own Vigil losing tonight to tomorrow's First
Vespers was showing up as a redundant extra commemoration alongside that
same feast (e.g. Nov 29's Compline showing both "St. Andrew" and "Vigil
of St. Andrew" for Advent I's anticipated evening).
Added an explicit `vigilOf` field to each Vigil's own saint record
(several Vigil ids don't map cleanly to their feast's id by stripping a
`vigil-of-` prefix — `vigil-of-the-assumption` vs `assumption`,
`vigil-of-st-james` vs `st-james-the-greater` — so this needs to be
explicit rather than guessed from the id or date adjacency).
calendar/vespers.ts's evening-anticipation merge now skips adding the
Vigil commemoration when tomorrow's winner or its own commemorations
already include that same feast.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Continues the full-year sanctoral import: Ss. Tiburtius and Susanna, Ss.
Hippolytus and Cassian, the Vigil of the Assumption, St. Joachim (Duplex
II Classis, own full proper content), St. Hyacinth, St. John Eudes, St.
Jane Frances de Chantal, the Immaculate Heart of the BVM (Duplex II
Classis, instituted 1942, full proper content), St. Joseph Calasanctius,
and St. Raymond Nonnatus.
Several of the new fixed dates (Aug 16, 17, 21, 22) fall within or
adjacent to St. Lawrence's and the Assumption's overlapping octave
windows and now win outright there under the ordinary-feria/ordinary-
sunday precedence rules, displacing what several existing tests
expected to be bare octave commemorations or ferial fallbacks. Updated:
- august-sanctoral.test.ts: Aug 22 now correctly shows the Immaculate
Heart of Mary as the winner, with the Assumption's octave still
commemorated alongside her.
- day-label.test.ts: the two octave-priority tests pinned to Aug 17
(now St. Hyacinth's own day) moved their "day 8 alone" case to All
Saints' own octave (Nov 8, still open); the two-octaves-overlap
comparison can no longer be demonstrated via any real date in this
app since every day where St. Lawrence's and the Assumption's octaves
genuinely overlap is now real sanctoral content -- the underlying
`pickWinningOctave` mechanism itself stays covered by
tests/calendar/octaves.test.ts's own synthetic-data unit test.
- vespers.test.ts: the Thursday Ps 138 split test moved off Aug 20,
whose own first Vespers is now claimed by St. Jane Frances de
Chantal's fixed day (Aug 21).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>