v1.0.13
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.