Tempest v0.1.4
The Orchestration release. Running a fleet of agents is one thing. Knowing which ones need you — and getting there in two keystrokes — is another. This release aims to close that gap.
What's in this release
Command Palette (Ctrl+Shift+P)
Press Ctrl+Shift+P from anywhere in the app to open a searchable command hub. Type a few characters to filter 13 commands across four sections:
| Section | Commands |
|---|---|
| Navigation | Next Tab, Previous Tab |
| Layout | Toggle Left Sidebar, Toggle Right Sidebar, Split Side by Side, Split Top/Bottom |
| Workspaces | Open Project, New Workspace, Close Tab, Broadcast to Agents, Open Message Queue |
| Appearance | Open Settings, Switch Theme |
Arrow keys navigate, Enter runs, Escape dismisses. Each command shows its keyboard shortcut inline. The palette is registered in the keybindings store automatically, so it appears in Settings → Keyboard and is rebindable like any other action.
Sidebar Orchestration
The sidebar now reflects what every session is doing, even when you are not looking at it.
Activity rollup — each project header shows the highest-priority state across all of its sessions: spinner while any session is working, green dot when everything is done, orange dot when any session needs attention. This is visible even when the project is collapsed.
Attention signals — a new attention state sits above done in the priority hierarchy. Two signals transition a session to it: the OSC 1337 RequestAttention sequence (Claude Code's "I'm blocked" signal, emitted when it needs a permission granted) and Gemini CLI's ✋ terminal title. Either produces an orange dot on the session tab, the sidebar badge, and the project header immediately — no tab focus required.
Attention Pill — an orange bell and count appear in the right end of the toolbar whenever any session is waiting. Clicking it triggers the same jump as Ctrl+Shift+A.
Jump to waiting (Ctrl+Shift+A) — a new keybinding that filters sessions with attention or done state, sorts attention-first, finds the next one after the current tab, and wraps around. One keystroke to reach whatever needs you without breaking flow.
Inline quick-create — click + on a project header to expand an autofocus input at the bottom of the session list. Press Enter and a new Claude Code root session opens immediately with that task. Right-click + still opens the full session menu for other agent types and options.
Drag-to-reorder — project groups and individual worktrees within a project are both draggable. A blue border shows the drop target. Order persists across app restarts.
Claude Permission Dialog — Reliability Fix
Claude Code's permission dialog was previously only detected reliably when the tab was focused. Two underlying issues:
-
Regex mismatch — the
\bword-boundary anchors failed when Claude Code's PTY rendered the dialog cell-by-cell, compressing whitespace to"1. Yes2.Yes,allow…"with no boundary between option text and the next digit. Fixed with a negative-lookbehind(?<!\d)that matches the compressed form while rejecting digit-prefixed numbers like31. -
Split PTY reads — the fingerprint could arrive split across two PTY chunks, neither of which matched alone. Fixed with a 4 KB rolling window that reassembles the tail across reads.
Additionally, markDone() now spawns deferred rechecks at 3 s, 8 s, and 20 s, scanning the session buffer each time. Late-arriving permission dialogs upgrade the green dot to an orange bell without requiring tab focus.
First-Run Onboarding
New installs open a four-page onboarding flow before the main app:
| Page | What |
|---|---|
| Welcome | Tempest wordmark, "The Agentic IDE" tagline, landing screenshot (dark/light adaptive), Get Started |
| BYOK | Provider grid, API key entry with show/hide toggle, custom model selector — keys stay on-device and power the Chat tab |
| Agents | All supported CLI agents with ready/missing badges and one-click install links — informational only, no selection required |
| Configure | Token Intelligence, Agent Isolation, Bypass Permissions, and Co-author toggles with defaults pre-set |
onboardingComplete is written to runtime-state.json — survives localStorage clears and WebView resets.
Settings — API Keys
A new API Keys section in Settings manages all nine BYOK provider keys in one place.
Each provider row has three states: no key set (Add key button), key set (masked sk-••••••••3f9a display with show/hide, edit, and delete), and editing (full-width monospace input with Save/Cancel). A brief checkmark flashes on save. Ollama shows a "Local · no key needed" badge instead of an input.
Inline Code Review
The Diff pane now supports inline comments that you can send directly to an agent.
Per-line comments — hover any diff line to reveal a + button. Click to open an inline form below the line. Ctrl+Enter or the Comment button saves. Escape cancels.
Multi-line range — shift-click a second line to extend the selection. All selected rows get an indigo wash and a 3 px continuous bar segment. One square + button appears at the center of the range.
Comment on hunk — a button in the hunk header selects the full hunk as a comment range in one click.
Delivery — the Review Comments Bar appears at the bottom of the pane when pending comments exist. Pick a live agent session and click Send. Comments are written directly to the agent's PTY via write_to_pty — the same path as typing in the terminal — so the agent receives them immediately, not on its next idle cycle.
Comments persist across file switches within a session, scoped by working directory.
MSI Installer + Atlas on npm
Two infrastructure improvements that simplify setup:
MSI installer — Windows users can now install Tempest as a native .msi package alongside the existing NSIS .exe.
Atlas on npm — @usetempest/atlas is now published as an external npm package. A postinstall script stages it from node_modules/ into the Tauri resources directory automatically on every npm install. No manual build, copy, or bundle commands needed — npm install is the only setup step.
UI Polish
A focused round of targeted fixes across the interface:
Prompt picker — moved to a createPortal / position: fixed dropdown anchored by getBoundingClientRect. The toolbar's overflow: hidden no longer clips it. Copy button uses inverted colors with a label-only "Copied" state (no color change). Manage Prompts button changed to ghost style.
Agent tab group chips — hardcoded color: #fff replaced with var(--tempest-bg-base) so chips read correctly in both themes. A close-all × button (12 px, strokeWidth 2.2, matching the tab close button) fades in on hover with a gradient mask on the project name.
Diff comment cards — all hardcoded hex values replaced with --tempest-* CSS variables. Comment text uses var(--tempest-bg-base) for legibility on the yellow background in both themes. Left border accent removed. Hunk header buttons no longer stretch to match wrapped hunk range text (align-items: flex-start).
Tooltips — background changed to --tempest-fg-default, text to --tempest-bg-base, arrow updated to match — crisp inverted chip in both light and dark themes.
Settings keyboard nav — clicking the keyboard shortcut icon was opening Settings on the "appearance" tab instead of "keyboard". Fixed.
Changes tab (Right Sidebar) — +N -N line count badges on each changed file. Expandable inline diffs per file with a loading spinner and diff cache. Wrap Lines and Expand/Collapse All toolbar above the list. Stage All / Unstage All show a spinning loader and disable the button while running.
Codex CLI and Antigravity — added to the agent registry with proper SVG icons. All nine agents sorted alphabetically.
Platform Support
| Platform | Status |
|---|---|
| Windows 11 (x64) | Supported. Pre-built binary available. MSI and NSIS installers. |
| macOS | Supported |
| Linux | Supported |
Windows requires WebView2 (bundled automatically when necessary).
What's next
- Database branches: each agent gets its own isolated clone of your production database — run migrations, seed data, and make schema changes without touching the shared database
- Per-agent configuration: flags, environment variables, working directory set once and applied to every session for that agent type