Skip to content

Releases: ashryaagr/Fathom

v1.0.33 — MCP toggles plumbed + lens true-zoom + URL-paste rename + session resilience

Choose a tag to compare

@ashryaagr ashryaagr released this 02 May 20:49

Bumps fathom-whiteboard 0.1.18 → 0.1.21 (startup MCP discovery, equation grounding, intuition rules — see clawdSlate v0.1.21).

On the Fathom side

Whiteboard MCP toggles, end-to-end. The popover already showed per-server switches (Hugging Face, Slack, Gmail, …); main process now actually plumbs them — captures onAvailableTools, persists the snapshot, threads disallowed into generateWhiteboard/refineWhiteboard. Lens-side startup discovery probe means your claude.ai connectors show up before the first generation.

Lens true-zoom. Switched from a 720 px max-width to calc(80vw / 1.4) plus CSS zoom: 1.4 — content footprint stays around 80 vw but text, anchor image, and ask footer all scale up. Actual magnification, not just wider rails.

Equations grounded in components. Lens system prompt now requires that an equation describing flow through architecture (loss, gradient propagation, update rule) name the components the math acts on and show data/gradient flow between them — never symbols in isolation.

Intuition first. Every mechanism gets one plain-English line on why it works before any formalism, math, or definition.

Stale-session resilience. When the SDK reports No conversation found for a previously-captured session id, main retries with a fresh session and replays prior turns through priorExplanations. The user sees one short progress line, then a normal answer.

Session id is provisional. The SDK only flushes the .jsonl transcript on stream completion, so the id is now stamped onto the lens only when onDone fires. Aborted/errored streams no longer leave behind an unresumable id.

URL-paste paper-rename. The welcome-card slip flips into an editable name input after download. openUrl derives a real suggested title (arXiv API for arxiv URLs, PDF /Title metadata as fallback) — the chosen title lands in Papers.title instead of the URL basename.

v1.0.26 — fix forEach crash + arxiv default ON + full toolkit

Choose a tag to compare

@ashryaagr ashryaagr released this 02 May 07:19

Bug fixes (whiteboard)

Crash on open: a malformed scene state could trigger `Cannot read properties of undefined (reading 'forEach')` and take the whole renderer down. Defensive guards added at every place the scene's elements are read.

Renderer error log: uncaught errors in the whiteboard renderer now write to the userData log so the next recurrence is diagnosable without DevTools.

Behaviour changes (whiteboard)

arXiv default flipped to ON — opt-out instead of opt-in. The gear popover still lets you turn it off.

Full toolkit by default — the whiteboard agent now has Read, Glob, Grep, Bash, and ToolSearch on top of Excalidraw + WebSearch + arXiv. The two visible toggles (web search and arxiv) are the only explicit gates.

Install

Download `Fathom-arm64.dmg`. The auto-updater will pick this up automatically if you're on a previous version.

v1.0.25 — arxiv MCP + tool-toggle settings (whiteboard)

Choose a tag to compare

@ashryaagr ashryaagr released this 02 May 06:25

What's new in the whiteboard

The whiteboard panel now has a small gear icon in its top-right corner. Tap it to control which tools the whiteboard agent can reach for during generation:

  • Web search — default on (existing behaviour). Lets the agent look up cited prior work or unfamiliar terms.
  • arXiv — default off. Flip it on and the agent can fetch papers from arxiv.org by id or query, useful when a paper directly cites a prior work whose mechanism the diagram needs to name correctly. Downloaded papers land next to the paper's index files (per-paper, never your home dir).

Settings persist across reloads. Changes take effect on the next "Generate" or "Refine" without cancelling anything in flight.

Under the hood Fathom now picks up fathom-whiteboard 0.1.14, which ships the vendored arxiv stdio MCP and the cache-friendly system-prompt boundary.

Install

Download Fathom-arm64.dmg, drag Fathom.app to /Applications, launch.
The auto-updater will pick this up on next launch if you're already on a previous version.

v1.0.24 — Faster whiteboard generation + cache stats

Choose a tag to compare

@ashryaagr ashryaagr released this 02 May 05:35

What's new

This release pulls in clawdSlate v0.1.13 under the hood. No Fathom-side code changes — all wins flow from the whiteboard pipeline:

  • One fewer round-trip per whiteboard. The Excalidraw element-format reference is now inlined into the system prompt, so the agent goes straight to drawing instead of calling `read_me` first.
  • Tighter tool surface — only `create_view` + `WebSearch` (+ `Read` when the paper is on disk). The rest of the claude_code preset is disabled.
  • Visible prompt-cache stats. The activity panel `[result]` line now reports `cache_read` / `cache_create` token counts so you can see when the API's prefix cache is hitting (within the 5-minute TTL).

Auto-update

Existing v1.0.20–v1.0.23 users will pick this up via the in-app update check. Help → Check for Updates, or wait ~3s after launch.

Fresh install

```bash
curl -fsSL https://raw.githubusercontent.com/ashryaagr/Fathom/main/install.sh | bash
```

v1.0.23 — Multi-window whiteboard, package.json restored

Choose a tag to compare

@ashryaagr ashryaagr released this 02 May 04:47

What's new

  • Pulls clawdSlate v0.1.11 under the hood. When you launch Slate standalone, Cmd+N now spawns a new whiteboard window with its own session — multiple canvases no longer clobber each other.
  • Source manifest fully restored. The v1.0.21/v1.0.22 commits had Fathom's `package.json` replaced with the whiteboard package's content. Released DMG/zip artifacts were always built from a correct in-memory manifest, but cloning main between e78e96bd867c8c45a3d36 gave the wrong file. v1.0.23 commits the right manifest directly without going through `npm install`.

Fathom itself already supports multi-window via Cmd+N (File → New Window). This release gets the same behavior into the standalone Slate app.

Auto-update

Existing v1.0.20–v1.0.22 users will pick this up via the in-app update check. Help → Check for Updates, or wait ~3s after launch.

Fresh install

```bash
curl -fsSL https://raw.githubusercontent.com/ashryaagr/Fathom/main/install.sh | bash
```

v1.0.22 — Whiteboard text auto-centers in boxes

Choose a tag to compare

@ashryaagr ashryaagr released this 02 May 04:19

What's new

This release pulls in clawdSlate v0.1.10 under the hood, which carries the auto-bind fix:

  • Whiteboard text inside boxes auto-centers by default. When the agent emits a text element whose center falls inside a rectangle/ellipse/diamond that has no existing label, the rendering layer folds the text into the container's label so Excalidraw produces a properly-bound, auto-centered pair. Previously, you'd see text positioned slightly off; double-clicking the box would snap it in. Now it's centered the first time.
  • Source manifest restored. The v1.0.21 commit accidentally replaced this repo's `package.json` with the whiteboard package's content. v1.0.21 release artifacts (DMG/zip) were built before the corruption and remain valid, but anyone cloning main needs v1.0.22 for working build instructions.

Auto-update

Existing v1.0.20 and v1.0.21 users will pick this up via the in-app update check. Help → Check for Updates, or wait ~3s after launch.

Fresh install

```bash
curl -fsSL https://raw.githubusercontent.com/ashryaagr/Fathom/main/install.sh | bash
```

v1.0.21 — Whiteboard New-button fix + Sonnet default

Choose a tag to compare

@ashryaagr ashryaagr released this 02 May 03:29

What's new

This release pulls in clawdSlate v0.1.9 under the hood. No Fathom-side code changes — all the user-visible fixes are in the whiteboard surface.

  • New button no longer leaves the old whiteboard behind. Clicking New → Discard now actually clears. Half-cleared state on disk auto-recovers on startup.
  • Refine self-heals if it's somehow called without an established paper.
  • spawn ENOTDIR fixed for the asar-bundled Claude CLI.
  • Sonnet by default — roughly 3× faster whiteboard generation than Opus.
  • Verbose stream logs make slow-step diagnosis easy.
  • Chat polish — natural Claude-style user echo bubble, auto-collapsing run logs, hairline turn separators.

Auto-update

Existing v1.0.20 users will pick this up via the in-app update check. Help → Check for Updates, or wait ~3s after launch.

Fresh install

```bash
curl -fsSL https://raw.githubusercontent.com/ashryaagr/Fathom/main/install.sh | bash
```

Fathom v1.0.20

Choose a tag to compare

@ashryaagr ashryaagr released this 30 Apr 06:25

Canvas-empty fixed + non-frozen chat + paste support + cleaner CI + simpler install.

Highlights

  • Canvas-empty fix. The whiteboard now actually renders the agent's edits. Three layered fixes inside the shared whiteboard component: resolveSceneFromInput mirrors vendor's checkpoint resolution; pseudo-element filter drops vendor markers (restoreCheckpoint, cameraUpdate, delete) before they reach Excalidraw; convertToExcalidrawElements fills required runtime fields on agent-emitted skeletons (matches vendor's own renderer at vendor/excalidraw-mcp/src/mcp-app.tsx:54).
  • Spawn fix. pathToClaudeCodeExecutable now threads through to the Agent SDK query() options, eliminating the ENOTDIR errors when spawning the bundled claude binary from inside the packaged Electron app.
  • Non-frozen chat input. Type a follow-up while the agent is mid-stream; the new send aborts the in-flight run cleanly and starts fresh.
  • Paste anything into the whiteboard chat. Images, PDFs, files — sidecar-stored next to the paper, references threaded into the prompt as markdown.
  • CI green. Sibling-clone fathom-whiteboard step in CI workflow + 4 implicit-any annotations + 1 null-guard in PdfViewer.
  • Simpler install. git clone Fathom && npm install now pulls the whiteboard package automatically from a release tarball — no separate clone, no separate build.
  • Expanded README + docs: research-backed design principles section (peer-reviewed citations), "Using inside your company" notes, contact footer, cross-link to Slate.

Slate, the standalone whiteboard companion: https://github.com/ashryaagr/fathom-whiteboard

v1.0.13

Choose a tag to compare

@ashryaagr ashryaagr released this 24 Apr 22:57

Three live fixes plus a render-perf opener.

The macOS Desktop permission prompt is gone. Three contributing causes, all fixed: (1) inherited cwd from Finder when a PDF lives on Desktop — process.chdir(userData) at startup so no subprocess inherits a TCC-protected dir; (2) safeCwd was falling back to dirname(pdfPath) which lands on Desktop if your paper sits there — dropped that fallback and added an isTccProtected guard; (3) verified the cwd now never lands under ~/Desktop / ~/Documents / ~/Downloads for any explain or decompose call.

QA agents no longer yank focus across Spaces. Four new global shortcuts (⌘⇧F8 dive, ⌘⇧F7 back, ⌘⇧F6 forward, ⌘⇧F5 prefs) registered by the main process. The harness's dive/back/forward/prefs subcommands stopped calling tell app to activate and just send the F-key combo — Fathom catches it regardless of which Space is active. Human users keep using ⌘⇧D / ⌘[ / ⌘] / ⌘,.

First-paint render time drops by several seconds. buildPaperIndex was monopolising the single pdf.js worker with 15× full-page 2×-DPR off-screen renders before any visible page got a shot. Now deferred via requestIdleCallback (3s fallback timeout) so visible pages paint first. Diagnosis credit: a root-cause-analyst subagent.

Zoom-out sweep-over artifact replaced with a real fix. The v1.0.12 partial fix wrote canvas.style.width on every zoom change, forcing the browser to resample a large pixel buffer into a small CSS box mid-paint — that was the actual sweep-over. Replaced with a compositor transform: scale(zoom/renderedZoom) until the new pdf.js render lands and snaps to identity. Diagnosis + fix credit: a frontend-architect subagent.