fix: keep the Sacred Triduum from being displaced by a coincident saint (#422) #423
No reviewers
Labels
No labels
area: build
area: ci
area: compare
area: data
area: engine
area: model
area: provenance
area: rite
area: validation
backport
blocked
breaking
confirmed
dependencies
duplicate
epic
github_actions
invalid
needs-info
needs-triage
php
priority: high
priority: low
priority: medium
regression
type: bug
type: chore
type: correction
type: docs
type: enhancement
type: feature
type: fix
type: perf
type: refactor
type: security
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Directorium/Core!423
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/triduum-feria-precedence"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Found by the validation harness (#45) cross-checking against the missalemeum oracle.
The bug
On a Triduum day that coincides with a fixed saint, the engine celebrated the saint
and displaced the Triduum feria. Holy Thursday 2024 (28 Mar = St John of
Capistrano, III class) resolved to the saint, with Feria V in Cena Domini (I
class) marked
displaced/omit. Nothing outranks the Sacred Triduum (n. 91 line 2);it admits no commemoration (n. 23).
Root cause
Rubrics1962Precedence::tierOf()gave the apextriduumtier to every observancewhenever the date was in the Triduum, so the coincident saint tied the feria at the
apex and won
DayResolver::sortByTier()'s id-based tie-break(
roman:sanctorale:…<roman:temporale:…).Fix
Gate the
triduumtier onkind === FERIA. The coincident saint keeps its normal(far lower) tier; the Triduum feria always wins and the saint is omitted.
Blast radius (verified)
Scanning 1900–2100, no Triduum day is won by a non-feria after the fix. A day-by-day
diff of an affected year (2024) shows changes confined to exactly:
Vespers of Holy Thursday instead of the saint.
The golden fixture is re-frozen accordingly (490 years carried at least one such
coincidence — every change an improvement). Regression tests added.
Gates green:
lint110/110,analyse[OK],test623 passing.Closes #422.