Interleave 0.3.0 — faster daily loop, durable processing & automatic backups
Interleave 0.3.0 is a polish, hardening, and reach release on top of the v0.2.0 gold-standard system. There's no new "Part" of the roadmap here — instead the existing local-first incremental-reading machinery gets a faster daily loop, durable processing, automatic backups, a redesigned browser-capture path, and a big jump in test coverage (2,256 → 3,132 tests). Everything still runs 100% on-device against native SQLite + a filesystem asset vault — no cloud dependency.
Highlights
A faster daily loop — process without leaving the queue
- Inline source processing — read, highlight, and extract a source directly inside the
/processone-at-a-time loop, with no detour out to the full reader. - Inline extract workbench — distill an extract and build cards in place; active cards are now embedded in the extract workspace, so you can review them alongside the lineage without context-switching.
- Durable processed spans — processed/extracted spans persist block-by-block, so your progress through a long source survives re-renders and app restarts.
- Inline undo recovery — queue actions are undoable in place (with a keyboard shortcut), so a mis-postpone or accidental extract is one keystroke to recover.
- Quieter autosave — edit surfaces autosave silently (the status chips are gone) and teardown is hardened so an in-flight save can't be lost on navigation.
Capture & onboarding
- Redesigned Chrome extension — renamed to Interleave, with a reworked capture popup, clearer pairing options, the brand logo as the MV3 toolbar icon, and a one-click path to open the captured source in the app. Still delivered over the token-protected
127.0.0.1loopback server — it never touches the database directly. - Article images come with you — importing an article now downloads its images into the local asset vault, so sources render fully offline and stay readable years from now.
- Onboarding flow + in-app help center — a first-run flow plus a searchable, deep-linkable help center built from the design handoff.
- Public website — a static landing site (
apps/site) with a live in-browser demo.
Safety net — automatic backups
- Automatic rolling backups with retention, so your local knowledge base is snapshotted without you having to remember.
- Restore & reset from Settings — restore a backup or reset local data in-app, and jump straight to the backups folder.
Find & navigate
- Command-palette upgrades — look up any source from the palette, full keyboard navigation, smarter result ordering (commands vs. sources), and collection-explorer modes folded in. Search moved out of the sidebar and into the palette where it belongs.
- Review-activity heatmap in Analytics, backed by durable review-stats capture.
- Task workflow upgrade — library tasks now route to their protected elements.
Polish & theming
- System theme preference (follow macOS light/dark) plus a compact theme picker in the user menu.
- Dozens of focused design fixes across the reader, inbox, queue, search, settings, editor, and shell — processed-paragraph affordances, breadcrumb/lineage clarity, clickable source URLs, cursor affordances, spacing, and dark-mode icon fixes.
Under the hood
- Test coverage jump: 2,256 → 3,132 Vitest tests (371 files), plus an expanded battle-testing matrix and tightened IPC validation at the typed boundary.
- CI hardening (skip the Electron binary download, retry flaky installs) and resolved Dependabot security alerts.
Quality gates (all green at this commit)
pnpm typecheck— 14/14 projectspnpm lint— Biome clean (897 files)pnpm test— Vitest 3,132 passing (371 files)pnpm --filter @interleave/desktop dist— produces the.dmgbelow
Install (macOS, Apple Silicon)
The .dmg is ad-hoc signed, not notarized, so clear the download quarantine once:
- Download
Interleave-0.3.0-arm64.dmgbelow (requires an Apple-Silicon / arm64 Mac), open it, and drag Interleave to Applications. - Clear the quarantine attribute — right-click → Open does not work for ad-hoc builds on recent macOS:
xattr -dr com.apple.quarantine /Applications/Interleave.app
- Open Interleave normally.
The Chrome extension is built separately: pnpm --filter @interleave/extension build, then load apps/extension/dist/ unpacked in Chrome and pair the token in Settings → Browser capture.
sha256(Interleave-0.3.0-arm64.dmg) = 87d305c8b70896df417bd257d0310e5a941c771e5c201f5f44de875ff9359f6f
This is a pre-1.0 release: green and heavily tested, but not yet daily-driven/battle-tested. Your data is local — back it up (now automatic) from Settings.
Full changelog: v0.2.0...v0.3.0