| Commit message (Expand) | Author | Age | Files | Lines |
| * | fix(kernel): Mass_formulary.t.said is honestly optional -- was false for Votive | Lukasz Kasprzak | 2026-08-22 | 4 | -22/+55 |
| * | fix(ef): RG 476(f) -- the Creed is not said at a Requiem Mass | Lukasz Kasprzak | 2026-08-22 | 2 | -7/+56 |
| * | fix(ef): check RG 24/25's ferial invariant instead of asserting it | Lukasz Kasprzak | 2026-08-22 | 1 | -9/+61 |
| * | feat(ef): the Creed, RG 475-476 | Lukasz Kasprzak | 2026-08-22 | 10 | -1/+308 |
| * | docs(ef): retract the false LMS Ordo witness claim for Mass_formulary.Votive | Lukasz Kasprzak | 2026-08-22 | 2 | -19/+51 |
| * | fix(kernel,ef): a votive Mass is not the day's own -- add Mass_formulary.Votive | Lukasz Kasprzak | 2026-08-21 | 4 | -21/+50 |
| * | feat(kernel,ef): the lectionary reports which Mass it said | Lukasz Kasprzak | 2026-08-21 | 8 | -29/+129 |
| * | feat(kernel): a type for which Mass a day says | Lukasz Kasprzak | 2026-08-21 | 2 | -0/+34 |
| * | feat(ef): implement RG 33's third omission trigger | Lukasz Kasprzak | 2026-08-21 | 6 | -6/+266 |
| * | feat(config): flavour is settable, and an INI overlay is diagnosed | Lukasz Kasprzak | 2026-08-21 | 2 | -1/+14 |
| * | fix(render): a month answers to both spellings of its own name | Lukasz Kasprzak | 2026-08-20 | 1 | -1/+13 |
| * | fix: audit findings — parser strictness, name ambiguity, and errors | Lukasz Kasprzak | 2026-08-20 | 7 | -73/+317 |
| * | fix(citation): close the final review's blocking findings | Lukasz Kasprzak | 2026-08-20 | 2 | -0/+11 |
| * | feat(render): citations render through Sigla at both call sites | Lukasz Kasprzak | 2026-08-20 | 3 | -11/+26 |
| * | feat(config): sigla_style, sigla_book and sigla_tradition | Lukasz Kasprzak | 2026-08-20 | 2 | -2/+35 |
| * | feat(lang): read [bible] and [sigla] sections | Lukasz Kasprzak | 2026-08-20 | 2 | -3/+48 |
| * | feat(citation): the Sigla facade, total by construction | Lukasz Kasprzak | 2026-08-20 | 2 | -0/+52 |
| * | feat(citation): default_spelling, and close two test gaps | Lukasz Kasprzak | 2026-08-20 | 2 | -0/+24 |
| * | feat(citation): render a parsed citation in a configurable style | Lukasz Kasprzak | 2026-08-20 | 2 | -0/+155 |
| * | feat(citation): parse citations into structure | Lukasz Kasprzak | 2026-08-20 | 2 | -0/+125 |
| * | fix(citation): survey all three citation-bearing files, not just the lectionary | Lukasz Kasprzak | 2026-08-20 | 2 | -16/+52 |
| * | feat(citation): canonical book ids and tradition mapping | Lukasz Kasprzak | 2026-08-20 | 3 | -0/+125 |
| * | feat(render): Roman week numbers and date spans, as data | Lukasz Kasprzak | 2026-08-20 | 3 | -11/+94 |
| * | feat(templates): the ordo booklet flows continuously, not one week per page | Lukasz Kasprzak | 2026-08-20 | 1 | -0/+9 |
| * | fix(naming): the rite prints its display name, not the internal id ef | Lukasz Kasprzak | 2026-08-20 | 3 | -2/+17 |
| * | feat(render): Typst as a seventh escaping flavour | Lukasz Kasprzak | 2026-08-20 | 2 | -9/+34 |
| * | feat(cli): --lang and --raw, colitur lang, colitur config | Lukasz Kasprzak | 2026-08-20 | 1 | -2/+11 |
| * | feat(render): names reach the view and every emitter | Lukasz Kasprzak | 2026-08-19 | 6 | -62/+124 |
| * | fix(naming): config.ml merges every [defaults] block, like lang.ml | Lukasz Kasprzak | 2026-08-19 | 2 | -20/+43 |
| * | fix(naming): config fix round 1 -- unknown sections, O(n) accumulate | Lukasz Kasprzak | 2026-08-19 | 2 | -21/+56 |
| * | fix(naming): merge duplicate [section] blocks in the language table | Lukasz Kasprzak | 2026-08-19 | 2 | -4/+33 |
| * | feat(naming): the config file | Lukasz Kasprzak | 2026-08-19 | 2 | -0/+71 |
| * | feat(naming): the language table | Lukasz Kasprzak | 2026-08-19 | 4 | -0/+152 |
| * | fix(render): omit DTEND at the domain's own last day, 9999-12-31 | Lukasz Kasprzak | 2026-08-19 | 1 | -2/+42 |
| * | feat(render): iCalendar emitter, RFC 5545 | Lukasz Kasprzak | 2026-08-19 | 2 | -0/+82 |
| * | feat(render): XML emitter and schema | Lukasz Kasprzak | 2026-08-19 | 2 | -0/+56 |
| * | fix(render): remove rank_label -- it duplicated name verbatim | Lukasz Kasprzak | 2026-08-19 | 1 | -2/+6 |
| * | feat(render): CSV and JSON emitters, and the published contract | Lukasz Kasprzak | 2026-08-19 | 4 | -0/+110 |
| * | feat(render): the view model | Lukasz Kasprzak | 2026-08-19 | 2 | -0/+169 |
| * | feat(render): template renderer with mandatory escaping | Lukasz Kasprzak | 2026-08-19 | 2 | -0/+64 |
| * | fix(render): reject empty tag paths, sharpen the raw-form test | Lukasz Kasprzak | 2026-08-19 | 1 | -4/+14 |
| * | feat(render): logic-less template parser | Lukasz Kasprzak | 2026-08-19 | 2 | -0/+114 |
| * | fix(render): make fold_ics total on arbitrary octet strings | Lukasz Kasprzak | 2026-08-19 | 1 | -0/+8 |
| * | feat(render): per-flavour escaping and RFC 5545 line folding | Lukasz Kasprzak | 2026-08-19 | 3 | -0/+120 |
| * | feat(overlay): a flat INI front end, which verifies its own output | Lukasz Kasprzak | 2026-08-18 | 2 | -0/+363 |
| * | feat(overlay): default citations and layer, humanise parse errors | Lukasz Kasprzak | 2026-08-18 | 1 | -2/+81 |
| * | fix(ef): the seasonal commemoration comes first (RG 113 sentence one) | Lukasz Kasprzak | 2026-08-18 | 1 | -1/+40 |
| * | fix(ef): Good Friday is black, not violet (RG 128(b), RG 132) | Lukasz Kasprzak | 2026-08-18 | 1 | -0/+23 |
| * | fix(ef): days within the Octave of the Nativity, and RG 69 for 29-31 Dec | Lukasz Kasprzak | 2026-08-18 | 2 | -10/+80 |
| * | docs(ef): M13 adjudicated colitur; Mass I is unreachable, not unwitnessed | Lukasz Kasprzak | 2026-08-17 | 1 | -1/+20 |