Skip to content

Interleave 0.3.0 — faster daily loop, durable processing & automatic backups

Choose a tag to compare

@antoinefink antoinefink released this 07 Jun 20:21
· 186 commits to main since this release
f6a6fd8

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 /process one-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.1 loopback 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 projects
  • pnpm lint — Biome clean (897 files)
  • pnpm test — Vitest 3,132 passing (371 files)
  • pnpm --filter @interleave/desktop dist — produces the .dmg below

Install (macOS, Apple Silicon)

The .dmg is ad-hoc signed, not notarized, so clear the download quarantine once:

  1. Download Interleave-0.3.0-arm64.dmg below (requires an Apple-Silicon / arm64 Mac), open it, and drag Interleave to Applications.
  2. 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
  3. 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