Relocate Immaculate Heart of Mary off Aug 22 to Easter+69

Fixed Aug 22 collided outright with the Assumption's own octave-closing
day (both this project's blended calendar tracks are kept deliberately,
so one shouldn't permanently suppress the other). Moved IHM to the
Saturday after the Feast of the Sacred Heart -- its real diocesan date
from 1914 until Pius XII's 1944 fixed-date decree, and also the date the
1969 reform returned to.

Required real new mechanism, not just a data move: a new bespoke
calendar/index.ts override (applyImmaculateHeart, following the existing
applyMarianSaturday/applyChristTheKing precedent), a move from the
sanctoral saints store to the temporal-feasts store (different propers
lookup entirely), and a real bug fix in matins.ts's nocturnReadingIds,
which only ever picked up a *sanctoral* winner's own reading file.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VZSAgRi4QE4XRTqVto93zA
This commit is contained in:
2026-08-22 05:59:33 -04:00
parent 025d0e3a08
commit 224f34908c
12 changed files with 190 additions and 29 deletions
@@ -1,7 +1,11 @@
# Read directly from web/www/horas/Latin/Sancti/08-22.txt's own
# [Ant 1] and its English counterpart -- a real, proper antiphon of
# this feast, not a Common substitution.
id: immaculate-heart-of-mary-antiphon
# this feast, not a Common substitution. Duplicated as both Benedictus
# and Magnificat antiphon (see the -magnificat- sibling file): the
# source only carries this single [Ant 1], and the temporal propers
# store keys the two separately, unlike the sanctoral store's single
# shared `${propers}-antiphon`.
id: immaculate-heart-of-mary-benedictus-antiphon
text:
la: "Exsultávit cor meum * in Dómino, et exaltátum est cornu meum in Deo meo, quia lætáta sum in salutári tuo."
en: "My heart hath rejoiced in the Lord, * and my horn is exalted in my God: because I have joyed in thy salvation."
@@ -0,0 +1,14 @@
# Read directly from web/www/horas/Latin/Sancti/08-22.txt's own
# [Ant 1] and its English counterpart -- a real, proper antiphon of
# this feast, not a Common substitution. Duplicated as both Benedictus
# and Magnificat antiphon (see the -benedictus- sibling file): the
# source only carries this single [Ant 1], and the temporal propers
# store keys the two separately, unlike the sanctoral store's single
# shared `${propers}-antiphon`.
id: immaculate-heart-of-mary-magnificat-antiphon
text:
la: "Exsultávit cor meum * in Dómino, et exaltátum est cornu meum in Deo meo, quia lætáta sum in salutári tuo."
en: "My heart hath rejoiced in the Lord, * and my horn is exalted in my God: because I have joyed in thy salvation."
status:
la: verified
en: verified