Changelog
Documentation updates for Infolitico.
September 27 – October 3, 2026
2 user-facing changes shipped.
New features
- z.ai GLM subscription for drafts + polish, OpenRouter same-model fallback (remove Workers AI) (#432)
Fixes
- swap dead smithsonian culture claim for artnews (droplet 403) (#426)
September 20–26, 2026
35 user-facing changes shipped.
New features
- deepen the Culture desk with film/arts publisher feeds (#423)
- honest most-read band with measured/editorial modes (#422)
- dedupe degraded edition-status messaging on homepage (#418)
- print-clean morning brief handout (#417)
- BackToTop on policy shell and About page (#416)
- BackToTop on day-archive and feed-thread pages (#415)
- section-shell BackToTop and empty-state recovery (#414)
- BackToTop parity on long hubs and homepage empty-state recovery (#413)
- morning empty-state recovery paths (#412)
- feed pause empty-state recovery paths (#411)
- theme-hub empty-state recovery paths (#410)
- thoughts empty-state recovery paths (#409)
- verse-index empty-state recovery paths (#408)
- archive empty-state recovery paths (#407)
- people empty-state recovery paths (#406)
- hub cross-links closing morning-archive loop and Thoughts theme discovery (#405)
- copyable reading list and People newsletter capture (#404)
- seven-day theme reading path on theme hubs (#403)
- continue-reading dates, about start shelf, saved empty search (#402)
- people desk labels + search entry, reading-list count and saved dates (#401)
- newsletter capture on morning and thoughts, search link on archive (#400)
- search hub links, print-clean story handout, brand manifest (#399)
- native system share on stories, 404 archive-search recovery, People in footer (#398)
- search starter chips + result context, person-hub newsletter (#397)
- prayer amen + morning share/print actions (#396)
- reader delight tranche — save list, print, back-to-top, at-a-glance, homepage discovery (#395)
- theme hubs, search, verse picker + share cards, reader polish (#387)
- hard rule 2 + launch smoke accept the MiMo lane (#380)
- MiMo v2.6 story lane + consent-independent reader counter (2026-09-22 ops review) (#379)
Updates
- pre-sized stored variants replace Supabase render/image transforms (#386)
Fixes
- theme-representative relevance mode for curated pool guard (#419)
- route skip-flavoured theme-extractor verdicts to the skip path (#392)
- close the reader-experience P3 punch list + Hard Rule 7 retraction records (#390)
- MiMo probe budget + fence tolerance, offline tests, deduped crawler case (#382)
- probe the selected text provider + 0057 provenance correction (#381)
September 13–19, 2026
No user-facing changes shipped this window. (0 merged PRs were filtered as non-user-facing.)
September 6–12, 2026
No user-facing changes shipped this window. (0 merged PRs were filtered as non-user-facing.)
August 30 – September 5, 2026
5 user-facing changes shipped.
New features
- fail-closed library kill switch + suppress retired library rows read-side (#374)
- disable generated-image-library terminal tier by default (#372)
- verse-exactness single-source, heading hygiene, story newsletter CTA (#371)
- daily-edition homepage hierarchy + image fallback hardening (#370)
- checkout-freshness gate for ops-health-summary (INFO-270) (#369)
August 23–29, 2026
4 user-facing changes shipped.
Updates
- Cloudflare GLM 5.3 Flash text cutover — implementation + quality-gate calibration (#366)
Fixes
- calibrate daily-lane prompts for GLM 5.3 Flash (#368)
- raise launch-smoke text probe budget to 2000 tokens (#367)
- use Cloudflare GLM 5.3 Flash (#365)
August 16–22, 2026
25 user-facing changes shipped.
New features
- reading progress, copy verse/prayer, today's-reading loop (#351)
- login-succeeded event (MON-02 governed) (#339)
- deterministic Preview fixture seed (INFO-192) (#330)
- morning digest sender with 0053 idempotency ledger (INFO-138) (#326)
Updates
- INFO-152 re-reviewed manifest + NewsArticle verifier fix (#353)
- decision check-offs, candidate recovery, INFO-192 arrears finding (#348)
- owner-decision walkthrough recorded (#347)
- DeepSeek pipeline publishing steadily (#346)
- INFO-210 sponsor slot framework (authored, awaiting gates) (#345)
- first scheduled digest run — ledger path live (#344)
- first publish on all-DeepSeek pipeline (#343)
- 0055 re-close INFO-180 repair RPC bypass (#341)
- migration-ledger reconciliation + watcher settle repair (#340)
- owner-delegation decisions + INFO-192 recommendation (#338)
- INFO-115 Tier K — four publishers after stream review (#337)
- INFO-115 — five distinct publishers (Tier K expansion) (#336)
- route bulk pipeline entirely on DeepSeek (owner directive) (#334)
- INFO-151 partner excerpt pack for the launch cohort (#333)
- generalize operational receipts (codex-review sanitization) (#332)
- register Baykeeper + St. Anthony first-wave records with canonical UTMs (INFO-195) (#331)
- 2026-08-15 incomplete-ticket sweep record + volatile-fact linter URL fix (#327)
Fixes
- preview fixture story payload contract (#349)
- guard 0055 revoke for fresh chains (#342)
- activate feed snapshots and morning digest end-to-end (#335)
- exclude owner-approved dark stories from images:audit gate (INFO-236) (#325)
August 9–15, 2026
29 user-facing changes shipped.
New features
- persist final editorial image dimensions (migration 0052) (#324)
- add PostHog AI observability (#320)
- bylines and image enclosures for the RSS feed (Flipboard compliance) (#315)
- IndexNow key file at spec URL via proxy + keyLocation alignment (#311)
- add page-view backbone and home-scrolled depth events (#310)
- INFO-214 core — retag invalidation and budget-exhaustion retry policy (#302)
- INFO-212 Option A — derived summaries from verified publisher pages (#303)
- distribution-ready RSS contract and discovery link (#300)
- break medical-lab and table/desk motif repetition on section pages (#290)
Updates
- Contain INFO-179 and INFO-180 editorial risks (#237)
- Add a source-backed two-minute morning brief (#166)
- info-212: root cause + fix design for zero-usable Google News summaries (#296)
- info-183: crash-safe growth-asset lock recovery + CLI/preflight coverage (#295)
- info-196: compact the first-visit privacy notice without changing consent behavior (#294)
- info-189: move dev/CI to Node 22 LTS (Node 20 EOL) (#293)
- info-203: split verse_modification into bible_citation for standalone references (#292)
- INFO-132: Add owner-confirmed Thought corrections workflow (#162)
Fixes
- image-pipeline health pass — library byte-reuse exemption, transient provider retries, bounded hash windows (#321)
- retry once on transient empty draft completions (#323)
- retry once on outline parse/format misses (empty prayer_focus crash) (#322)
- retry transient transport failures in the OpenAI-compatible LLM client (#319)
- news-section length guidance so polish stops tripping the 50-word floor (#317)
- feed excerpts reach 300+ chars by preferring the News section over short standfirsts (#316)
- relax polish news-section floor 60 to 50 words (#312)
- RRM queue ownership on late errors + fail-closed override (follow-up to #298) (#309)
- ephemeral harness ergonomics and reasoning-budget accounting (#301)
- route-scope Reader Revenue Manager to daily-reflection articles (#298)
- INFO-180 tooling — GET ledger probe, bound rpc, audit attribution fixes (#297)
- enforce bounded snapshot visibility (#287)
July 1 – August 8, 2026
125 user-facing changes shipped.
New features
- Google News sitemap (48h daily-reflection leaf) (#279)
- owner-gated AdSense footer canary (dark without env) — T3 money-path (#280)
- add image-regen operator lane for artifact_repairable image-gen failures (#278)
- add --drain-backlog lane to run-story-batch for artifact-repairable backlog (#277)
- add Terms of Service page at /terms (#274)
- add consent-gated Google Reader Revenue Manager (Subscribe with Google) (#275)
- stream OpenAI-compatible completions for thinking-model routes (#273)
- add Qwen vision provider to the image text guard (#271)
- enforce explicit News/Reflection/Prayer contract at polish and publish boundaries (#259)
- rescue verse-index backlinks, consent-gated telemetry, UTM allowlist, privacy honesty (#260)
- rescue legacy profiles/comments owner-only read policies as migration 0046 (#257)
- INFO-209 NewsArticle structured data + INFO-208 social sharing UX (#244)
- INFO-207 Resend newsletter integration + INFO-211 support footer link (#245)
- §7 named-victim backstop + React cache() for story lookups (#242)
- enforce News-section floor + purity in polish verdict (#240)
- wire anti-template scaffold lint into polish verdict (#239)
- ISR caching + anti-template lint + prompt quality improvements (#238)
- SEO/performance + content quality improvements (#233)
- stage disabled conditional AdSense boundary (INFO-141) (#232)
- add privacy-minimized individualized outreach register (INFO-188) (#231)
- INFO-148 Phase 2 — Thought dossier contract with stable evidence unit IDs (#224)
- verify publisher attribution (#229)
- INFO-148 content-kind aware theme extractor for Thought lane (#223)
- INFO-146 scored Thought candidate shortlist in dry-run output (#222)
- INFO-150 share card creative system — 4 formats × 2 aspect ratios (#221)
- INFO-149 persist approved text artifacts for image-only retry + INFO-137 RLS verification (#220)
- INFO-136 weekly editorial QA scorecard scheduling (#219)
- INFO-147 growth analytics + INFO-140 chrome measurement contract (#217)
- salvage mobile reader accessibility improvements (PR #165) (#213)
- owner-gated publisher for hand-authored Inspirational Thoughts (#202)
- homepage featured Inspirational Thought hero (#201)
- draft-model split (GLM-5.2 + kimi-k2.6) + internal writer personas (#200)
- env-driven reasoning_effort + output-token floor for OpenAI-compat routes (#197)
- retire Azure entirely; NeuralWatt/GLM 5.2 via OpenAI-compat route (stacked on #194) (#195)
- Thought throughput + story/image quality tranche (reopen of #194) (#196)
- improve Thought quality recovery (#191)
- launch image-safe reader feed (#170)
- add inspirational thoughts lane (INFO-122) (#143)
- add source health report (#142)
- gate daily-cap increases with a ramp report (#141)
- diversify batch selection and ramp cadence (#138)
- add durable IndexNow outbox (#136)
- make checkpoints durable (#137)
- finish faith-era launch ticket sweep (#128)
- migrate Bible translation from ESV to NLT (#127)
- section pages real-data rebuild — 6 working sections replace dead person-category query (#115)
- conflict-casualty intake guard + stop re-selecting content-rejected events (#113)
- person-less story path + faith-pivot RSS diet trim (#111)
- adopt the Axiom SoT-wiki structure for Infolitico (#109)
- commentary quotes — verified theologian quotes linked to Bible verses (#107)
- friendly-pointed satire register + governance lockstep (#102)
Updates
- add structured failure logging to the Reddit feed scraper (#285)
- Add owner-gated Qwen 3.8 bulk-generation harness scripts (#247)
- Record INFO-197 deployment receipt (#253)
- Prevent hardcoded Scripture drift (INFO-197) (#252)
- Add guarded final-tier generated image library (#250)
- Add fail-closed Qwen streaming draft provider (#249)
- INFO-201: Phase-5 thought-dossier hardening + LLM citation extraction (#243)
- INFO-186: prepare reviewed On Mission paid-seed packet (#228)
- INFO-181: enforce canonical outreach attribution (#227)
- Ship reviewed INFO-152 organic share asset baseline (#226)
- INFO-139: record conditional AdSense-only decision (#225)
- Harden generated imagery against synthetic crowd tropes (#215)
- INFO-136: add read-only editorial repetition telemetry (#214)
- Theme-keyed curated photo pool (INFO-177) (#207)
- Commons relaxed relevance stage-2 + yield metrics (INFO-176) (#206)
- Image aesthetic diversity: scene memory, palette signature, cluster gate (INFO-175) (#205)
- Quality batch: stories, images, UX (INFO-161..173) (#204)
- INFO-129: Gate monetization on Bible-rights readiness (#189)
- Repeat the final length contract in the polish payload (#187)
- Make Thought polish compress overlong intermediate drafts (#186)
- Let the final guard enforce Thought publication length (#185)
- Bound the Thought compression retry output (#184)
- Compress the actual overlong Thought draft on retry (#183)
- Harden the controlled Thought operator path (#182)
- Keep the new Culture source tier operationally green (#181)
- Expand Faith & Church and populate Culture (#180)
- Record live Reddit feed release (#179)
- Keep Reddit feed posts on Infolitico (#178)
- Record first Thought and live image remediation (#176)
- Retry overlong Inspirational Thought drafts once (#175)
- Fix one-shot recovery for grounded Thought outlines (#174)
- Keep social images in sync during remediation (#169)
- Harden historical image remediation retries (#168)
- Prevent irrelevant political imagery on community stories (#167)
- Fix social card font rendering (#164)
- Harden event image relevance (#163)
- Wire portrait semantics into the live homepage (#161)
- Restore relevant person-first story imagery (#160)
- filter unusable source summaries from batches (#159)
- fix Reddit source grounding (#157)
- fix release safety and publish local work (#156)
Fixes
- fetch each Feed community individually; parse both Reddit title markup variants (#286)
- match Reddit's redesigned embed title markup on The Feed (#284)
- prefilter pre-contract polished bodies in image-regen lane (#283)
- sitemap health check expects sitemap-news.xml leaf (#282)
- allow AdSense sodar hosts in CSP (violation-evidence) (#281)
- splice curated verse into the blockquote so GLM-5.2 can't corrupt it (#276)
- punch list — single prayer regex, line-level legacy split, multi-paragraph prayers, consent test (#269)
- hero renders story primary image eagerly; notice banner becomes docked bottom bar (#254)
- de-tautologize Commons relevance gate + geography guard (#241)
- enforce Scripture quote provenance (INFO-180) (#234)
- enforce isolated runtime smoke (#230)
- INFO-158 section pages lead with visually strong story (#218)
- suppress duplicate decorative quotes when Scripture owns the boundary quote (INFO-101) (#212)
- broaden image-scene abstraction motifs beyond table-and-desk (#211)
- serialize Commons API pacing for apply-time refresh (#210)
- pace theme-photo downloads with 429 backoff (#209)
- theme-photo seed search query sparsity + pacing (#208)
- retry generated images with guard feedback + harden people scenes (INFO-160) (#203)
- 0035 backfill skips legacy non-URL source refs (as applied to prod) (#199)
- restore /story/<slug> permalinks (#192)
- image every homepage hero story (#172)
- image secondary homepage cards (#171)
- make archive discovery mutation-safe (#151)
- consolidate crawl, discovery, and reader polish (#149)
- overscan/paginate batch selection past blacklisted rows (#125)
- stop Comments crashing SSR when Supabase env vars are unset (#124)
- diversify outline.md headline examples to break formula repetition (#117)
- generate story-grounded image scenes via LLM instead of canned theme library (#116)
- run topic-dedupe for person-less faith-contract stories (#114)
- normalize markdown chrome out of story bodies + LLM empty-content telemetry (#112)
- thread polish gate scores + retire negative-frame headline gate (#110)
- correct 3 bible_verses with genuine ESV wording drift (#108)
- polish reject-verdict parsing + faith RSS source expansion (#106)
August 15, 2026
Documentation expansion
- Added a reader guide for sections, stories, people hubs, and the archive.
- Added a The Feed guide covering curated public snapshots, disclosure, discussion sign-in, and the shared edition.
- Added a policies guide covering AI disclosure, corrections and retractions, community standards, privacy, terms, and the About page.
- Clarified in Get started that browsing needs no account while Feed discussions require reader sign-in.
- Expanded the morning newsletter guide with cadence, content, consent, availability, and archive guidance.
Was this page helpful?