Give Ascension its own hymnody at Matins/Lauds/Vespers, all octave

`ascension` is a temporal-feast id, not a saint record, so
resolveOfficeWinner's octave-synthesis (which already handles
saint-based octaves like Assumption's/St. Lawrence's) never
recognized it -- Ascension Day itself and its whole octave silently
rendered the generic Paschaltide hymn at every hour.

Fixed the mechanism: added `ascension` to ALWAYS_OVERRIDE_TEMPORAL_IDS
(covers the feast day itself), and taught resolveOfficeWinner to also
synthesize a {kind:'temporal'} winner from an active octave with no
saint record but a real temporal-feast record (covers ordinary-feria
octave days; a real winning saint within the octave still correctly
keeps priority).

A third gap surfaced testing this: octaveGoverningPrivilegedDay's
correct-by-design "a privileged Sunday never accepts an octave
override" rule is live-verified wrong specifically for "Dominica
infra Octavam Ascensionis" (keeps the octave's own hymn/responsory,
just with its own distinct proper chapter). Rather than loosen that
shared gate for every octave, gave resolveLaudsHymn/resolveVespersHymn
a narrow, hymn-only intercept guarded to saint-less octaves, checked
before the season/weekday default.

Authored matins-hymn-ascension.yml, lauds-{capitulum,responsory,hymn,
versicle}-ascension.yml, and vespers-{responsory,hymn,versicle}-
ascension.yml (Vespers reuses Lauds' chapter via the existing
cross-hour fallback) -- all live-verified against Divinum Officium
(Monastic Tridentinum 1617), 2026-05-14.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
This commit is contained in:
2026-09-04 11:08:11 -04:00
parent ab8d1d452d
commit 44dd4bb47a
11 changed files with 451 additions and 1 deletions
@@ -0,0 +1,98 @@
# The Ascension's own Vespers hymn ("Jesu nostra redémptio") — identical
# text to Matins' own (matins-hymn-ascension.yml) and Lauds' own
# (lauds-hymn-ascension.yml). Live-verified against Divinum Officium
# (Monastic Tridentinum 1617), Vespers live query, 2026-05-14 (Ascension
# Day itself).
id: vespers-hymn-ascension
text:
la: >-
Jesu nostra redémptio,
Amor et desidérium,
Deus Creátor ómnium,
Homo in fine témporum:
Quæ te vicit cleméntia,
Ut ferres nostra crímina,
Crudélem mortem pátiens,
Ut nos a morte tólleres!
Inférni claustra pénetrans,
Tuos captívos rédimens,
Victor triúmpho nóbili
Ad dextram Patris résidens.
Ipsa te cogat píetas,
Ut mala nostra súperes
Parcéndo, et voti cómpotes
Nos tuo vultu sáties.
Tu esto nostrum gáudium,
Qui es futúrus prǽmium,
Sit nostra in te glória,
Per cuncta semper sǽcula. Amen.
en: >-
Hail, thou who man's Redeemer art,
Jesu, the joy of every heart;
Great Maker of the world's wide frame,
And purest love's delight and flame:
What nameless mercy thee o'ercame,
To bear our load of sin and shame?
For guiltless, thou thy life didst give,
That sinful erring man might live.
The realms of woe are forced by thee,
Its captives from their chains set free;
And thou, amid thy ransomed train,
At God's right hand dost victor reign.
Let mercy sweet with thee prevail,
To cure the wounds we now bewail;
Oh, bless us with thy holy sight,
And fill us with eternal light.
Our guide, our way to heavenly rest,
Be thou the aim of every breast;
Be thou the soother of our tears,
Our sweet reward above the spheres. Amen.
status:
la: verified
en: verified