Always list the day's actual winner first in getDayLabel

The anchor-day and plain-temporal-fallback branches were listing any
commemorated saint before the winning identity, so a lower-ranked saint
merely riding along as a commemoration (e.g. St. Andrew on Advent I, or
Ss. Tryphon/Respicius/Nympha on an ordinary Sunday) read as if it were
the day's own winner, with the actual winner's rank label dangling at
the end with no name attached. The winner should always lead.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ME8QNPdEmHSbSx1r6VmDRG
This commit is contained in:
2026-08-30 06:10:14 -04:00
parent 5e56611944
commit 95901ef56a
3 changed files with 13 additions and 13 deletions
+4 -4
View File
@@ -561,12 +561,12 @@ export function getDayLabel(day: LiturgicalDay): Partial<Record<string, string>>
// anchorDayName's own doc comment — checked before the octave case
// below since Trinity Sunday, e.g., also happens to be day 8 of
// Pentecost's octave, and the anchor name is what actually governs.
// Existing convention: a commemorated saint *leads* here, before the
// anchor name — not "winner first" like every branch above.
// Winner first, same as every other branch here — the anchor day is
// what's actually being celebrated even when a lesser saint rides along.
const anchorName = anchorDayName(day);
if (anchorName) {
const { sanctoral } = collectCommemorations(day, { showOctaves: false });
return joinBi([...sanctoral, anchorName]);
return joinBi([anchorName, ...sanctoral]);
}
// An active octave (St. Lawrence's, ...) is this day's real primary
@@ -609,5 +609,5 @@ export function getDayLabel(day: LiturgicalDay): Partial<Record<string, string>>
const label = temporalLabel(day);
const temporal = bi(`${label.en} (${temporalRank.en})`, `${label.la} (${temporalRank.la})`);
const { sanctoral } = collectCommemorations(day, { showOctaves: false });
return joinBi([...sanctoral, temporal]);
return joinBi([temporal, ...sanctoral]);
}