Tempest v0.1.20
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_authdrops thegh --versionprobe and detects ENOENT ongh auth statusfor the not-installed case. Rust-cached, so remounts stop re-spawning. One round trip instead of two per mount.tasks_github_pr_checksfolds the sequential REST calls (/pulls/{n}for the head SHA, then/commits/{sha}/check-runs) into a singlegh 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+Enterhint 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.