Skip to content

v0.1.20

Choose a tag to compare

@gsvprharsha gsvprharsha released this 24 Aug 14:02
· 40 commits to main since this release

Tempest v0.1.20

Atlas now spawns when you launch Tempest from Finder on macOS. Notes stop losing your last edit. The Tasks inbox scopes GitHub search back to @me. Broadcast picks up a lighter selection UI.

What's in this release

Atlas spawns from Finder on macOS

macOS gives every GUI app a minimal PATH (/usr/bin:/bin:/usr/sbin:/sbin). Command::new("node").spawn() hit os error 2 inside that PATH, even when node ran fine from your terminal. Tempest now resolves node through a cached cascade — current PATH, then /bin/sh -lc 'command -v node' (which picks up nvm, volta, fnm, and your dotfiles), then /opt/homebrew/bin/node and /usr/local/bin/node. All five direct spawn sites use it: start_atlas_index, download_atlas_model, start_atlas_daemon, spawn_atlas_mcp_bridge, get_node_version. Windows and Linux keep the bare "node".

CI now asserts the same on stock macos-latest runners: if login-shell resolution or the hardcoded fallbacks stop working, the probe fails.

MCP config writers (write_goose_atlas_config, write_codex_atlas_config, write_atlas_mcp_config) still emit literal "node" — external agents like Claude Code and Cursor inherit their own shell PATH, so their configs are a separate problem.

Closes #36.

Notes stop losing your last edit

NotesPopover autosaved on every keystroke and skipped the final body when the popover closed. Autosave now debounces, and unmount flushes the pending body. Small change, but you no longer lose the last sentence when you dismiss the popover fast.

Tasks: gh search scopes to @me on every preset

preset_flags fell through with no user filter on the open, closed, and all presets — so gh search issues --state=open returned every open issue on GitHub, not yours. The fallthrough now defaults to --involves=@me, guarded by a regression assertion.

Two spawn cuts inside the same PR:

  • tasks_github_auth drops the gh --version probe and detects ENOENT on gh auth status for the not-installed case. Rust-cached, so remounts stop re-spawning. One round trip instead of two per mount.
  • tasks_github_pr_checks folds the sequential REST calls (/pulls/{n} for the head SHA, then /commits/{sha}/check-runs) into a single gh api graphql. Half the spawns, no serial dependency.

tasks_cache_invalidate now takes an optional prefix so refreshing GitHub no longer wipes Linear (and vice versa). Frontend bump splits into ghBump / lnBump for the same reason at module scope.

Closes #45.

Broadcast: lighter selection UI

  • A new "Agents · X of Y" section label sits above the session list, so the count reads at a glance instead of hiding on the row.
  • The master checkbox is now "Select all" — the label above already carries the "Agents" word.
  • The Ctrl+Enter hint wraps in <code> for keycap styling that matches the rest of the app.

Platform Support

Platform Status
Windows 11 (x64) Supported. Pre-built binary available. MSI and NSIS installers.
macOS Supported. Signed + notarized. Separate arm64 and x86_64 DMGs.
Linux Supported. x86_64 and arm64 AppImage + deb.

Windows requires WebView2 (bundled automatically when necessary).

Database Branches (from v0.1.5) additionally require Docker; without it the feature stays dormant and everything else works normally.

Atlas semantic search (from v0.1.10) downloads a ~25 MB embedding model on first opt-in.

What's next

Threads polish continuing, Hephaestus hardening across all three OSes, Automations out of beta, keyboard-native everything. warpLLM streaming and tool-use land when the upstream SDK does — until then the Warp backend stays experimental.