<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lectio.git/internal, branch v0.45.1</title>
<subtitle>offline Catholic daily readings and liturgical calendar in Go, with CLI, TUI and web clients</subtitle>
<id>https://git.labunix.xyz/lectio.git/atom?h=v0.45.1</id>
<link rel='self' href='https://git.labunix.xyz/lectio.git/atom?h=v0.45.1'/>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/'/>
<updated>2026-07-29T19:15:10Z</updated>
<entry>
<title>calendar: name the liturgical form fully in the printed title; v0.45.1</title>
<updated>2026-07-29T19:15:10Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-29T19:15:10Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=a688f064da4dd466eaa961645a140585a2c9fdd4'/>
<id>urn:sha1:a688f064da4dd466eaa961645a140585a2c9fdd4</id>
<content type='text'>
The exported month calendar's title showed the terse dropdown word
("August 2026 — traditional"). Spell the form out: "traditional roman
calendar" / "novus ordo calendar". Add dedicated i18n labels
CalModern/CalTraditional (translatable like the rest of the chrome; pl =
"kalendarz Novus Ordo" / "tradycyjny kalendarz rzymski") rather than
overloading the short OptModern/OptTraditional the settings dropdown uses.

Bump version to 0.45.1.
</content>
</entry>
<entry>
<title>release: bump version to 0.45.0</title>
<updated>2026-07-29T19:10:35Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-29T19:10:35Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=714a0b669409e35f67ae2ad9fe6a8452e93e44d9'/>
<id>urn:sha1:714a0b669409e35f67ae2ad9fe6a8452e93e44d9</id>
<content type='text'>
The version constant sat at 0.44.0 while 44 commits landed on top of it:
the engine-flawlessness pass, the localization + bible-corpora-split epic
(any-language day/saint names, embedded-chrome-as-data, EF Polish
sanctoral 322/322), the web UI rework, the EF Christmas-ferial name fix,
and the cli test-config isolation. Mark the release as 0.45.0.
</content>
</entry>
<entry>
<title>test(cli): isolate the suite from the real ~/.config/lectio</title>
<updated>2026-07-29T18:56:46Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-29T18:56:46Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=7d26aa60349e72c3d437d329a678a51331914233'/>
<id>urn:sha1:7d26aa60349e72c3d437d329a678a51331914233</id>
<content type='text'>
The ref/rand cli tests assume English book abbreviations ("Jn 3:16"), but
with no LECTIO_CONFIG set they read the developer's real user config. On a
machine whose config has ui_language = pl (sigla_style = auto -&gt; Polish
dialect), "Jn" is not a valid abbreviation and TestRefSingle,
TestRefEnglishDialect, TestRefRejectsPolishAbbrevInEnglish, TestRefCompare
and TestRandVerse fail -- while passing on a clean CI.

Add a package TestMain that points LECTIO_CONFIG at a throwaway temp path,
forcing built-in defaults for every cli test and guaranteeing the suite
never reads or writes the real user config. Suite now green on a Polish
config too.
</content>
</entry>
<entry>
<title>caldata(ef): finalise the 4 review-flagged Polish names</title>
<updated>2026-07-29T18:52:21Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-29T18:52:21Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=790d89eaaa130d3446f8e9af4dff793a569bb98d'/>
<id>urn:sha1:790d89eaaa130d3446f8e9af4dff793a569bb98d</id>
<content type='text'>
Reviewed the four EF names missalemeum never returns. George (Martyr),
Stanislaus (Bishop and Martyr), and Zephyrinus (Pope and Martyr) were
correct as best-guessed -- flags cleared as-is. Alexander &amp; Companions
had enumerated only three of the martyrs (omitting Juvenal); since the
English name is the shortened "&amp; Companions", match it with the faithful
Polish "śś. Aleksandra i Towarzyszy, Męczenników". No more # review-pl
flags; all 322 EF names stand.
</content>
</entry>
<entry>
<title>naming(pl): localise the Christmas-season name in composed ferial names</title>
<updated>2026-07-29T18:50:49Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-29T18:50:49Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=7cc6fe9a28a9f5d5835dde80de2303335a973058'/>
<id>urn:sha1:7cc6fe9a28a9f5d5835dde80de2303335a973058</id>
<content type='text'>
EF ferials in the Christmas season rendered with an English season word
in a Polish UI -- "Poniedziałek Christmas" (2026-01-05) -- because the
Polish [seasons] table had no "christmas" key, so season() fell back to
the English title-cased slug.

Add christmas = "Narodzenia Pańskiego" (and the empty season_prep entry),
matching the existing genitive style (Adwentu, Wielkiego Postu). Now
"Poniedziałek Narodzenia Pańskiego". Verified across the whole
Christmas-Epiphany window for both forms; English output unchanged.
</content>
</entry>
<entry>
<title>web(settings): drop the terminal "versions" field; it is CLI-only</title>
<updated>2026-07-29T18:46:57Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-29T18:46:57Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=03ead1722f4c57616adc6c709ebbce0642c03cfb'/>
<id>urn:sha1:03ead1722f4c57616adc6c709ebbce0642c03cfb</id>
<content type='text'>
The settings page showed two near-identical version checkbox rows --
"versions" (the terminal compare set) and "web_versions" (the web page's
own default ticks). The first only affects the CLI, so editing it from
the web is pointless and was actively confusing (both rows list the same
wuj/vul/grb/drb boxes).

Remove the "versions" row from the form and stop reading it in
settingsPost, so cfg.Versions is preserved from the live config (same
pattern as offline/width/pager). The web settings now expose only what
the web uses: default_version and web_versions.
</content>
</entry>
<entry>
<title>web: pin settings/download to the top-right corner, never wrap it down</title>
<updated>2026-07-29T18:33:09Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-29T18:33:09Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=41f6b694b184a2b39fa56d0dfe3c9ffbf44edbc5'/>
<id>urn:sha1:41f6b694b184a2b39fa56d0dfe3c9ffbf44edbc5</id>
<content type='text'>
Per the target layout: the utility cluster (settings + the pobierz
disclosure) must hold the top-right corner on the same row as the reader
link, not drop onto a second full-width line below the controls.

Make #controls itself non-wrapping so the side cluster keeps the corner;
the left controls (.controls-main) absorb any tightness by wrapping their
OWN items onto a further line (min-width:0 lets them shrink). At the
64rem page width the whole bar cannot fit every left control AND the
corner cluster on one line, so a trailing control (layout) wraps beneath
-- the intended block-on-the-left, cluster-in-the-corner shape. A tighter
column gap buys a little room; on phones (&lt;=40rem) the bar wraps normally.
</content>
</entry>
<entry>
<title>web: reader link to the left, downloads into a "pobierz" disclosure</title>
<updated>2026-07-29T13:06:57Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-29T13:06:57Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=ae8af86660243b75db1d54bb0c8d26431bd17f52'/>
<id>urn:sha1:ae8af86660243b75db1d54bb0c8d26431bd17f52</id>
<content type='text'>
Finish the top-bar rework. The reader entry point now leads the controls
bar on the far left (it was in the right-hand cluster); settings stays in
the top-right cluster.

The flat "download: txt md pdf · kalendarz" strip becomes a single
"pobierz" summary that opens a small floating panel with two rows:
 - a month calendar with its own month + year &lt;select&gt; pickers (localised
   month names, both pre-selected from the shown date) and a PDF button
   that hits /calendar?month=YYYY-MM;
 - the shown day's readings as txt/md/pdf, labelled with the date.

The panel is absolutely positioned under the link so opening it doesn't
reflow the bar. indexData gains MonthOpts/YearOpts (a calOpt list); the
year picker is a small window around the shown year.
</content>
</entry>
<entry>
<title>caldata(ef): add Polish names to the traditional sanctoral</title>
<updated>2026-07-29T13:00:28Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-29T13:00:28Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=cd8b2f25f390d9d6d5a4d5cb27c4cd2ed8ab4073'/>
<id>urn:sha1:cd8b2f25f390d9d6d5a4d5cb27c4cd2ed8ab4073</id>
<content type='text'>
The EF (traditional) calendar showed English memorial names even with
the UI switched to Polish, because tridentine-calendar.ini carried only
name.en. Add name.pl to all 322 sanctoral entries.

Source: missalemeum.com's Polish propers (/pl/api/v5/proper/DATE), the
authoritative Polish traditional-calendar naming -- paired to each entry
by the celebration id shared across its /en/ and /pl/ responses, fetched
across two years so saints superseded by a Sunday in one year are still
resolved. 318 entries matched that way; a missalemeum source typo
("Dokotra" -&gt; "Doktora") is corrected in the two it affected.

The remaining 4 -- George, Alexander &amp; Companions, Stanislaus,
Zephyrinus -- are never returned by missalemeum in the fetched years
(superseded every time); they carry a best-guess Polish name tagged with
a "# review-pl" comment for a human to verify.
</content>
</entry>
<entry>
<title>web: move lectionary + mono to settings only; make reader link prominent</title>
<updated>2026-07-29T12:37:23Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-29T12:37:23Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=af67ff8a079bf92a01a462fbb525eddb348eefc1'/>
<id>urn:sha1:af67ff8a079bf92a01a462fbb525eddb348eefc1</id>
<content type='text'>
Lectionary becomes settings-only (kept as a hidden field so readings/export/calendar still use the configured value); mono toggle removed (settings has it). The reader link is uppercased + bold as the primary action.
</content>
</entry>
</feed>
