Skip to content

Tags: robinslange/fathom

Tags

v2026.05.20.3

Toggle v2026.05.20.3's commit message

Verified

This commit was signed with the committer’s verified signature.
fmt: cargo fmt across workspace post-v0.21.1

v2026.05.20.2

Toggle v2026.05.20.2's commit message

Verified

This commit was signed with the committer’s verified signature.
merge feat/v0.21.1-lexicon-and-bm25: hybrid BM25 retrieval + alias di…

…ct + popover fixes

v2026.05.20.1

Toggle v2026.05.20.1's commit message

Verified

This commit was signed with the committer’s verified signature.
desktop: harden selection popover + cap reading measure + broaden exi…

…t-event hook

- Selection popover: cache anchor on the store so tier-switch retry doesn't
  depend on window.getSelection still being live; dismiss the popover on a
  collapsed-selection click in a paragraph; bias placement into the gutter
  beside the selection (right gutter → left gutter → above → below) so the
  popover never covers the source text; drop the bottom caret tail (it
  pointed at the popover edge, not the selection).
- Faithfulness chip: plain-English headline ("Stays close to the source" /
  "May drift from the source") instead of raw NLI numbers; the support /
  contradiction / threshold numbers + uncalibrated-NLI caveat move into
  the i-metadata panel for users who want the technical view. Chip
  rectangle (4px radius), single row when there are no introductions,
  expansion stays inside the silhouette.
- Reader measure: cap the reading column at 680px (~65ch) and centre it
  in the viewport. The gutters either side become space the popover
  occupies; long-form prose now reads at the typographic sweet spot
  regardless of window width.
- Pagination: scrollWidth-based pageCount uses ceil + trailing-gap
  subtraction (was round + raw scrollWidth); ResizeObserver replaces the
  self-referential $state loop on viewport size.
- Tauri exit hook: also catch WindowEvent::CloseRequested and
  RunEvent::Exit alongside ExitRequested, so libc::_exit(0) wins the race
  against C++ static destructors regardless of which event fires first
  on the user's Tauri version. The Cmd+Q "closed unexpectedly" dialog
  was back; this should re-close it for good.

v0.21.1

Toggle v0.21.1's commit message

Unverified

This tag is not signed, but one or more authors requires that any tag attributed to them is signed.
Fathom v0.21.1 — hybrid BM25 + dense retrieval, RRF k=30

v2026.05.19.2

Toggle v2026.05.19.2's commit message

Verified

This commit was signed with the committer’s verified signature.
desktop: floating SelectionPopover + CSS-column pagination + client s…

…entence-snap

Replaces the right-side ParaphrasePane with a SelectionPopover that
anchors to the live selection rect, flips above/below based on
viewport room, and clamps to the viewport edges with a caret tail
pointing at the selection. App grid drops the 24rem third column;
the popover lives outside the grid as a portal.

Reader pagination swaps fixed 8-paragraphs-per-page for CSS-column
flow: column-width = viewport width, column-gap = 64px gutter,
pageCount = scrollWidth / columnStride measured on every resize and
book-change tick. scroll-to-chunk now resolves via the chunk
element's offsetLeft / columnStride. This closes the "dynamic
viewport-fit pagination" follow-up from project_fathom — chapter-
divider pages no longer waste 70% of the viewport.

New snap-sentence.ts mirrors the backend's UAX#29 sentence snap on
the client via Intl.Segmenter, so the visible selection grows to
match what's actually about to get paraphrased. The user sees the
snap happen instead of dragging "Athe" and getting a paraphrase of
the whole sentence with no visual feedback.

Net diff: -717 / +796 lines. pagination.ts + pagination.test.ts
deleted (CSS columns own page math now). use-paraphrase grows
popover-open/close state + selectionRect tracking. use-library grows
setPageCount / setPage / pendingScrollChunk for the new pagination
model.

v2026.05.19.1

Toggle v2026.05.19.1's commit message

Verified

This commit was signed with the committer’s verified signature.
ci: date-based v* tags on every push to main + commit-list changelog

Every push to main now cuts a v<YYYY>.<MM>.<DD>.<N> tag where <N> is
the push-of-the-day index, and uploads the macOS bundle to both the
new dated release AND the rolling 'latest' release. Both releases get
a body that lists the commit subjects since the prior dated tag, so a
visitor can see what's actually in the build without comparing SHAs.

This fixes the "release page says 3 days ago but the artefact is brand
new" confusion: the dated tag carries the real publish time, and the
rolling release's body is rewritten on every push so it never goes
stale. GitHub's sidebar 'Latest release' will follow the newest dated
v* tag (action-gh-release default behaviour); the rolling release
stays a prerelease so it doesn't compete for that slot.

Dropped the v* tag-trigger from `on:` because the dated-tag publish
step creates tags via the GitHub API and re-subscribing would risk
double-builds on every push.

latest

Toggle latest's commit message

Verified

This commit was signed with the committer’s verified signature.
ci: publish rolling `latest` prerelease from main pushes

Release workflow only fired on v* tags, and no tags existed, so the
README's "Download from Releases" link pointed at an empty page. Now
main pushes build the macOS bundle and publish/replace a prerelease at
tag `latest`; v* tags continue to publish versioned releases. README
points users at the rolling build's stable URL. CI's redundant bundle
build now runs only on PRs to avoid double-building every main push.