Skip to content

Latest commit

 

History

History
123 lines (83 loc) · 12.6 KB

File metadata and controls

123 lines (83 loc) · 12.6 KB

Changelog

Notable changes to TextStack. Newest first.

How this file works — three homes, on purpose. This one stays scannable:

CHANGELOG.md (this file) One line per change, grouped by deploy date. The index.
docs/incidents/ Postmortems. What broke, why it was invisible, what it taught.
docs/changelog-archive/ The full write-up behind every line here, preserved verbatim.
docs/STATUS.md Where the project actually is right now.

Format: Keep a Changelog. Versions are CalVer — the deploy date, because TextStack ships to one production environment on merge and there is no other version anyone can name.

Writing an entry: one line, ending with a link. If it needs a paragraph, the paragraph belongs in the archive; if it broke production, it belongs in docs/incidents/. See .claude/commands/changelog.md.


[Unreleased]

  • AI — 24 LLM traces a day were silently dropped: Postgres cannot store a NUL — backend · details
  • Backend — Npgsql was declared 9.0.3 and running 10.0.2 — backend · details
  • Security — two packages with high-severity advisories, one of them unused — backend · details
  • CI — 14 E2E tests removed, two of which could not fail — infra · details
  • Web — links rendered outside the language provider pointed at paths the router does not serve — web + infra · details
  • Mobile — crash reporting, wired but dormant until a DSN is supplied — mobile · details
  • CI — E2E stops gating production on everything except smoke, and the Chrome download stops flaking deploys — infra · details
  • Legal — the privacy policy said data stayed in your browser and that nothing was shared; both were false — web + mobile · details
  • Mobile — a farewell banner for the frozen 1.0.0 runtime, before the fingerprint switch strands it — mobile · details
  • Reader — the dyslexic font was a saved GitHub web page on both platforms, so the setting never worked — web + mobile · details
  • CI — web unit tests and the whole mobile app were never checked by CI — infra · details
  • Mobile — Play production plumbing: a submit profile that exists, two permissions that shouldn't, and a guard — mobile + infra · details
  • Docs — CHANGELOG split into an index, an archive and postmortems — docs · details

[2026.08.11]

  • SEO — static-site generation had been dead for five weeks; a forbidden HTTP header killed it — backend · postmortem · details

[2026.08.09]

  • Users — entitlement tiers replace two hardcoded storage constants — backend · details

[2026.08.08]

  • Worker — provider readiness check + circuit breaker, and a Sentry environment tag that lied — backend + infra · details

[2026.08.07]

  • Observability — Sentry leaked SQL a second way: EF Core error EVENTS, not just breadcrumbs — backend · postmortem · details
  • Reader — reading position was silently lost on concurrent saves (23505 upsert race) — backend · postmortem · details

[2026.08.06]

  • Observability — Sentry for API + Worker, with LLM agent and provider-routing spans — backend + infra · details

[2026.07.18]

  • Quality pipeline — a shifted double-delete could destroy a real chapter (Ivan Ilyich lost chapter I) — infra + backend · postmortem · details

[2026.07.17]

  • Mobile — persistent Book Chat parity (history, markdown, quote-and-ask, spoiler toggle) — mobile + shared · details

[2026.07.15]

  • Book Chat — precomputed per-chapter summaries: "summarize chapter N" now draws on a whole-chapter digest — backend · details
  • RAG — deterministic tie-breaker on retrieval ORDER BY (repo now matches the article) — backend · details
  • Upload — truncated PDFs are caught with a clear message instead of a scary "corrupted" failure — backend + web · details
  • Book Chat — tutor-grade answers: prompt rewrite, gpt-4.1, markdown rendering, 10× token headroom — backend + web · details
  • Book Chat — "Ask this book" gets persistent history, quote-and-ask, and your highlights as context — backend + web · details

[2026.07.14]

  • Reliability — a slow/hung RAG parse can no longer wedge the indexing worker — backend · postmortem · details
  • Hotfix — PDF vision-RAG parse routes to gpt-4.1 in the Worker (was Ollama) · postmortem · details
  • Reliability — "Ask this book" indexing no longer gets stuck + reading sessions survive a deleted book — backend + web · details
  • Reader — highlights are now reachable (nav + in-reader drawer/sheet) & translation offers every language — web + mobile · details

[2026.07.13]

  • Reader — highlights work in the Original-layout PDF reader (web + mobile) · details
  • User books — metadata enrichment is reliable + visible (description/genre/year) — backend + web + mobile · details

[2026.07.10]

  • Extraction — drop PDF inline-image extraction for user books (gate, don't delete) — backend (ADR-012 S5a) · details
  • Mobile — PDFs render in "Original layout" (PDF.js in the reader WebView) — mobile + shared (ADR-012 S4) · details
  • Reader — restore the standard chrome in PDF "Original" mode + page bookmarks — web + backend · details
  • AI qualitypdfvision eval gate scores the PDF vision-RAG feature end-to-end (ADR-012 S3) — backend · details
  • Ask this book — vision-RAG for PDFs with page citations that jump to the page (ADR-012 S3) — backend + web · details
  • Reader — PDF reading progress is page-based (library % + resume) — web + backend (ADR-012 S2) · details
  • Reader — PDFs open instantly, Original-only (ADR-012 S1) — web + backend · details
  • Ops — root cause: the nightly backup was leaking 156 GB of orphaned pgdata volumes — infra · postmortem · details
  • Ops — backup verify self-diagnoses failures + reaps leaked containers — infra · details
  • Reader — "Original layout": pixel-perfect PDF view for uploaded books — web + backend · details

[2026.07.11]

  • Reader — hide the misleading word-based % in the PDF Original top bar — web · details

[2026.07.09]

  • Auth — longer sessions: refresh-token TTL 30 → 365 days — backend · details
  • Auth — fix spurious "Unauthorized" mid-session (refresh-token stampede) — web · postmortem · details
  • Library — drop the shelf carousels, book grid to the top — web · details
  • PDF reader fixes — Word/Quartz exports parse cleanly (KMK OSCE model book) — extraction + web/mobile · details

Earlier releases

104 entries from 2026-05 to 2026-06 — the AI platform build-out (Phases 1–12), the mobile app, RAG, agents, and the SRS work — are archived in full:

Pre-2026 releases: docs/changelog-archive/2025-and-earlier.md