aboutsummaryrefslogtreecommitdiff
path: root/CHANGELOG.md
blob: 1112bf84ef21acc9ef83d3a4147883693a479cd9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
# Changelog

One line per release. Versions are git tags (`vX.Y.Z`).

## [0.3.0] - 2026-08-17
- Three EF corrections and a new resolution step, all argued from the Missal rather than from oracle agreement. **The votive Mass of Our Lady on Saturday** (RG 309(a)): the office had been kept since v0.1 but read the feria's Mass, so the day observed Our Lady and read the parable of the weeds; it now selects among the Missal's five *Missae de sancta Maria in sabbato* by season — 87 611 reading rows, every one a Saturday. **The Seven Sorrows of Passion Friday**, a movable commemoration colitur had no trace of, buildable only once `Date_spec` grew `Easter_offset`; adding it *reversed* an allow-list verdict, since RG 111(d) admits two commemorations on a III-class day and colitur admits exactly two where the oracle drops one. **The week after Trinity**, which now says the Mass the Missal prints for it, under RG 299's *nisi propria Missa assignetur* — and the same rule shows the Christ-the-King-week divergence was never a bug at all. RG 299 also closes a standing gap: the ferial-Mass rule was recorded as unconfirmed against the primary source and is now cited.

## [0.2.0] - 2026-08-17
- `Date_spec` carries movable dates: `Easter_offset` and `Nth_weekday` beside `Fixed`, whose on-disk form is unchanged so all 327 sanctoral entries parse untouched. Easter comes from the rite, not the kernel, which ships both Gregorian and Julian and must not pick. `Layer` keeps a split index — fixed entries year-independent as before, movable ones resolved per civil year. That unblocked **Rogation Wednesday** (RG 87/88/89), recorded as architecturally blocked since 13 August on reasoning that turned out to rest on `Date_spec`'s expressiveness rather than the entity's nature: 2 257 days across the domain, and in the other 6 160 an impeded feast takes the single slot RG 111 allows. And it unblocked **`colitur --overlay FILE`** (repeatable, ordered), which applies a user calendar on top of the shipped one — never instead of it — so a diocese or parish can add local feasts, fixed or movable. An overlay is applied, not validated: the five test layers assert things about the shipped calendar and cannot vouch for a user's file. Also: a second oracle year (2038, live-captured) closing the Common route's blind spot, `--version`, a Makefile, and a man page.

## [0.1.0] - 2026-08-17
- First tag. The Extraordinary Form (1962 Roman Missal) end to end: the complete temporal cycle, the resolution engine (occurrence, precedence, commemorations, transfers) against the sanctoral calendar, and the Mass reading citations for every day — correct and total over 1583–9999, with no clock, randomness or environment read below the CLI. Four commands (`easter`, `temporal`, `day`, `readings`) plus `--help`/`--version`, a man page, and a Makefile that installs binary, calendar data and man page into `~/.local` by default. Validated in five layers: types, QCheck properties over every year in the domain, a 16 801-day differential against the sibling lectio engine, two independent missalemeum oracle windows (2026–2027 and 2038), and ~36 hand-verified golden pins — 375 tests. Rules are computed against the Missal and its *Rubricae Generales*, with every published-calendar divergence adjudicated against the primary text rather than adopted; several are resolved in this engine's favour and cited in the register. Not included: the Ordinary Form, the chants (Psalm/Gradual/Tract/Alleluia/Sequence, deliberately rejected rather than guessed), and template-driven output.