All notable changes to this project are documented here. The format follows Keep a Changelog, and this project adheres to Semantic Versioning.
--version/-Vflag prints the installed version and exits.
- Tier-1 source bonus bumped from +4 to +5 in
scoreItem, so Reuters/BBC/AP/NYT/Bloomberg/FT/WSJ/Guardian/Economist/Washington Post outrank tier-3 stories even when the latter pile UAE + priority bonuses on top. manifestsubcommand now reports the full current flag surface, including--topics-config,--no-topics, and--timeout-ms.
- Topics mode: a JSON config file (
digest.config.jsonin cwd, or$XDG_CONFIG_HOME/uae-news-digest/topics.json) drives a per-topic digest, fetched in parallel and rendered as labelled sections in one run. --topics-config <path>flag explicitly selects a config file.--no-topicsflag forces the legacy region mode even when a topics config is present.modefield in JSON output ("topics"or"region") plus atopicsarray and per-itemtopicslug when in topics mode.buildRssUrlaccepts an object form ({q, hl, gl, ceid}) for ad-hoc locales used by topics.localeContextFor(gl)derives flag, name, and IANA timezone from a country code;renderTopicalDigestuses it for DST-safe per-locale date labels.- New public API exports:
loadTopicsConfig,resolveTopicsConfigPath,runTopicalDigest,renderTopicalDigest, plus typesTopicConfig,TopicsConfig,TopicSection,LocaleContext,RssLocale.
- Cross-topic dedup is "first topic in config wins" — reorder the config to set priority.
- DeepL translation in topics mode batches every title across every section into a single request and de-duplicates identical titles before sending.
ruregion preset (and itsEurope/Moscowtimezone entry) is no longer bundled.RUremains valid as a DeepL--target-langvalue.
- Release workflow for tagged GitHub and npm publishes.
- Codex and agent repository guidance.
- Deterministic healthcheck RSS URL support for smoke tests.
- Expanded packed package smoke coverage for the binary and public core export.
- Hermetic test network guard and richer CLI request diagnostics.
- CLI text golden fixture for the default digest contract.
- CI and release tests now use the guarded test script.
- CI now type-checks, tests, and package-smoke-tests on Linux and macOS.
- Package metadata is read from
package.jsonfor the CLI manifest. - Packed package smoke coverage verifies the binary and public core export.
- Seen-item state writes are atomic.
- Items with missing or malformed publication dates are skipped.
- DeepL fallback warnings are reported in text and JSON output.