v0.1.19
Tempest v0.1.19
Tasks tab lands — a unified GitHub + Linear inbox that reads issues, PRs, and Linear tickets, and launches an agent per task into its own worktree (bulk-launch N at once). Threads gain four new node types — media, file, image, site — plus a canvas MCP so an agent can drop nodes onto your canvas as it works. The message queue moves into a workspace drawer with a Send button and an agent-aware /clear. Three more agent bridges — codex, gemini, opencode — sit alongside claude-code. Repo picks up an OpenSSF Scorecard workflow, CodeQL, pinned-SHA actions, and dependabot grouping. Plus the macOS fullscreen fix and a + button on the sidebar Projects group.
Also: v0.1.18 shipped without macOS entries in the updater manifest because both matrix jobs uploaded the same filename and --clobber kept only the last winner. Fixed in this release — see CI notes below. Existing macOS installs stay on their current version until this one, then update straight past v0.1.18.
What's in this release
Threads: media, file, image, site nodes + canvas MCP ingest
Four new node types land on the threads canvas: MediaNode, FileNode, ImageNode, SiteNode. All share a common NodeShell chrome. CollapsedNode and ChatNode were reworked to fit, and chatTools.ts exposes the tool surface for agents to create them.
A new canvas MCP server (src-tauri/src/canvas_mcp.rs + node_ingest.rs) lets an agent drop nodes directly onto the active canvas as it works — cite a URL, attach a file, drop an image, all as first-class canvas nodes rather than chat text.
Tasks: unified GitHub + Linear inbox that launches agents
A new Tasks tab in the workspace pulls issues and PRs from GitHub and tickets from Linear into one list. gh and Linear GraphQL run behind Tauri commands (tasks.rs) with presets for assigned / mentioned / review-requested / authored on the GitHub side and scope + group + order on the Linear side.
-
Launch agents from tasks into worktrees.
LaunchAgentModalreusesWorkspaceView.launchBranch— same code path as Branch launches, no parallel spawn. Real agent registry, project + branch pickers, branch pre-filled from the task ID. -
Bulk-launch N agents. Multi-select tasks → Launch loops the single-launch path per row. Failures don't abort; the modal stays open with a summary. Only the first spawned session gets focus; the rest appear in the tab strip.
-
Comments and Activity tabs. GitHub thread pulls
gh apicomments + timeline and folds duplicatedcommentedevents. Linear thread runs one GraphQL for comments + history and folds state / assignee / label / priority changes.RowAccordionprefetches on mount; Comments render markdown, Activity lists folded events. -
Bulk-launch persists (source, GH preset / repo, Linear scope / group / order, query) to localStorage on mount and every change. Ephemeral fields (selected, expanded) intentionally excluded.
-
PR merge state fix — merged / closed / draft PRs render distinct icons and labels instead of collapsing to "closed".
-
Fixed
gh search:@menow passes via--assignee/--author/--mentions/--review-requestedflags instead of positional qualifiers (@medoesn't expand inside a raw query, which was returning "listed users cannot be searched"). -
Pagination + caching — GitHub list fetches paginate lazily instead of one long serial call, and responses cache per (source, preset, repo, query) so tab-switching stays instant.
-
Parallelized
ghcalls — the sequentialghfan-out (assigned / mentioned / review-requested / authored) now runs concurrently, cutting inbox load time to the slowest single call instead of their sum.
Files/Checks tabs on PRs remain stubbed for now.
Message queue: workspace drawer + agent-aware clear
The queue panel now docks as a drawer under the workspace, so the terminal stays in view while the queue is open — panes shrink through normal flex flow instead of getting hidden.
- Send button starts the queue immediately: enqueues the current draft if any, pops the head, writes to the PTY. The existing work-done hook dequeues the rest.
- Add
/clearis opt-in, never automatic. Clicking it enqueues the agent's context-reset command as its own queue item. - Agent-aware clear.
config/agents.jsondeclares each agent's reset string: Claude uses/clear, Codex uses/new, Goose uses.clear. Defaults to/clearfor user-added agents that haven't set one. - Store bug fix in
messageQueue.ts— in-place mutations were reusing the array reference, souseSyncExternalStoremissed updates and per-item remove buttons did nothing. Every mutation now replaces the array reference. - Small polish: check icon for the work-done state; ctrl-click opens terminal links.
Closes #34.
Chat: codex, gemini, opencode bridges
Three new agent bridges ship alongside claude-code: codex-bridge, gemini-bridge, opencode-bridge. Each is a small Node bridge (bridge.mjs + package.json) under src-tauri/resources/, wired through claude_bridge.rs. ChatNode gets a refined model UI and chatModels.ts centralizes the model catalog.
Atlas: resolve resource dir under Contents/Resources on macOS
src-tauri/src/lib.rs now resolves the atlas resource directory under the app bundle's Contents/Resources on macOS. Fixes atlas failing to find its shipped assets in the notarized app. Onboarding pages (BYOKPage, WelcomePage) simplified alongside.
Security: OpenSSF Scorecard + supply chain hardening
- Scorecard workflow at
.github/workflows/scorecard.ymlwith a README badge. - CONTRIBUTING gains a Testing section covering the OpenSSF passing criteria.
- All GitHub Actions pinned to full commit SHAs across ci, release, scorecard, and codeql workflows.
release.ymltoken permissions scoped —contents: readat the top,contents: writeper-job only where needed.- CodeQL workflow added (push / PR / weekly,
security-and-qualitypack). - 5 CodeQL alerts fixed — bad-tag-filter (2) and polynomial-redos (3) in atlas extractors.
- Dependabot wired up: npm + cargo + github-actions, weekly, grouped minor-and-patch, major bumps ignored.
- osv-scanner.toml scaffold added for justified vuln ignores.
- Scorecard action bumped 2.4.0 → 2.4.4.
- First grouped dependabot bump landed: 40 minor/patch updates including ai-sdk (all providers), Vercel
ai7.0.22 → 7.0.67, TypeScript 5.8.3 → 5.9.3, React 19.2.4 → 19.2.8, Next 16.2.9 → 16.3.1, tailwindcss, radix-ui, shadcn, lucide-react 1.24.0 → 1.32.0, posthog-js 1.409.5 → 1.418.1, motion, xyflow, cytoscape, plus rollup native binaries across all four host archs.
CI: arch-suffix macOS updater tarballs
Signed macOS builds produced Tempest.app.tar.gz with no arch suffix, so both matrix jobs uploaded the same filename and --clobber kept only the last winner. The publish job's latest.json script also matched *_aarch64.app.tar.gz.sig / *_x64.app.tar.gz.sig patterns that no longer exist — so v0.1.18 shipped with no macOS entries in the updater manifest.
Renamed to Tempest_${version}_${arch}.app.tar.gz(.sig) before upload so both archs coexist and the manifest picks them up. Effective this release; existing macOS installs stay on their current version until this one, then jump past v0.1.18.
macOS: fullscreen no longer silently drops
The Tauri window now boots at 1280x800 without emulated maximize. With decorations off on macOS, maximized-at-boot left the frameless window without a drag region and put NSWindow.toggleFullScreen: into a state where it silently dropped requests. New toggleFullscreen helper (unmaximize → 150 ms → setFullscreen) is wired to F11 and Ctrl+Cmd+F and restores the prior maximized state on exit.
Sidebar: Projects group + button
A FolderPlus action sits on the Projects group row in the sidebar — one click to create a new project instead of hunting through the menu.
Docs
Docs updated for tasks, automations, chat, knowledge base, BYOK, and the message queue. Mobile nav docs link now points to docs.tempestai.dev.
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. Updater manifest now includes macOS entries again (see CI note above). |
| 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.