65a1f359e6
- nocturnReadingIds no longer lets a demoted commemoration's temporal id (equal to the plain governing-Sunday temporalId) sneak a Sunday's own homily into an unrelated weekday's pool via the commemorations loop — a second code path than the one a prior fix gated, affecting 18 days/year. - Reading pool order now follows id priority (winner first, then every temporal commemoration, then every sanctoral commemoration) instead of raw nocturn-tag/array order, matching the day label's own temporal-then-sanctoral convention. - gospelReadingPart now falls back to the paired homily's own responsory when the Gospel entry has none of its own, instead of silently dropping it. - Patristic source labels now show "(for <occasion>)" so a reader can tell which occasion a pooled reading belongs to on a multi-reading day. - collectCommemorations no longer restates the plain generic temporal label (e.g. "Saturday in the 15th week after Trinity") once anything else is already being celebrated — general, not Ember-specific. Updated 4 day-label tests that encoded the old behavior. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MKC2QQGLYo2UTiDjDyWEkW