Releases

v0.3.27 · 2026-10-16

No more constant Keychain password prompts: the license is now re-checked against the Keychain about once a week instead of on every launch, and the Claude limits bar no longer reads the Keychain at all. The first launch after this update may ask once.

v0.3.26 · 2026-09-11

Fix: the app could hang and require a force-quit under heavy background process activity — a leaked GCD thread in process-exit handling could exhaust the thread pool over a long session. Hang diagnostics are now also captured in crash reports, not just outright crashes.

v0.3.25 · 2026-09-07

ClawaIde 0.3.25

  • Fixed a full-app hang that could happen on launch when many hidden (dismissed) sessions had accumulated: each dead hidden session used to be relaunched as a real agent process at every start, and a probe that did not answer could freeze the window forever. Dead hidden sessions are no longer restored, and every wait after a timeout is now bounded.
  • Hidden sessions whose agent has finished and whose branch is merged or worktree removed now close by themselves; the "N hidden" menu gained Close finished.
  • Orchestrator guidance updated: dismiss a worker while its work is unmerged, close it after the merge.
  • Test suite no longer touches the Keychain; a flaky restore test fixed.

v0.3.24 · 2026-09-03

New

  • The app can tell its maker that it is being used — counts only, and you can turn it off. ClawaIde now sends a small heartbeat while it runs: app version, macOS version, how many windows and agent sessions are open and which agents run them, and how many merges happened since the last one. It is deliberately narrow: never your code, never file paths, never project, branch or worktree names. That is not a promise in prose — the request body is a fixed structure, and a test serialises a real request and fails the build if any field outside that list ever appears. Settings ▸ Telemetry says the same in plain words and turns it off in one click; off means nothing is sent at all, not even on launch or quit. Why it exists: with a handful of people using this, knowing that someone opened it this morning and has three agents running is the difference between guessing and knowing which parts are worth the next week of work.

v0.3.23 · 2026-09-02

New

  • Grok is the third agent, and it wears the crown too. Grok Build sits beside Claude Code and Codex everywhere agents are offered — a plain session, a sub-agent under a crown, or the crown itself. Tiers map to its reasoning effort, its state is read from the CLI's own hooks rather than from the screen, and it reports an authentication failure itself, so a stalled Grok session is recognised more precisely than the two agents we started with. Nothing of yours is touched to make this work: Grok is launched against a private throwaway home whose config is ours and whose every other entry is a symlink back to your real ~/.grok, so your credentials, sessions, memory, skills and hooks stay exactly where they were, and a Grok session started here is still listed by grok sessions. Two honest gaps: Grok publishes no local quota figures at all (usage goes to an external OTEL stream), so it is an agent whose limits we simply do not know — and unknown never counts as used up; and a crown restarted on Grok comes up without a recap of the session it inherited.

Fixed

  • The crown could not read what a Codex sub-agent had said. Reading a worker's last answer assumed Claude Code's transcript format for every agent, so result() came back empty for Codex — and would have for Grok. The crown then reported that the turn had ended with nothing, which was not true: the work was done and the answer was on disk, in a format nobody read. Each agent now declares how to read its own transcript. This went unnoticed because sub-agents defaulted to Claude, which is the same default that hid the question of who should run a given task.
  • A Grok sub-agent could not start at all. Sub-agents run inside a sandbox — that is the price of letting them work without asking permission for every step — and the list of home directories that sandbox re-opens for writing had never learned about Grok. Grok could not create its session, fell back to its welcome screen, and sat there looking idle: the crown saw a live tab with an empty answer and concluded the turn had run dry. The directory list is no longer a list in the sandbox code — each agent declares what it needs to write, so a fourth agent cannot repeat this. And a worker that dies before its first turn is no longer invisible: the crown is told the session never started, that waiting and prodding are both useless, and that this one needs you.
  • Agents you have not installed no longer appear anywhere. An entry that cannot start anything is a promise the app will not keep. Installation is now judged by actually running the CLI — a binary that is present but broken counts as missing, which is precisely the case that broke a session here — and every agent is checked before the first window is drawn, so nothing flickers on a machine that has one agent. Two things were quietly wrong and are fixed with it: the limits bar listed agents whose CLI was not installed, and a saved tab belonging to a missing agent was restored into a session that could never start.

v0.3.22 · 2026-09-02

New

  • The app picks which agent runs a sub-agent, and says why. Until now spawn simply defaulted to Claude — even when a Codex crown asked for a worker, nothing had decided that. Which agent you prefer is now a setting (Settings ▸ Agents ▸ Primary), because it is a matter of taste rather than a property of the project. When the primary provider's account quota is genuinely used up, work moves to the other installed agent and the crown is told why, so it can tell you: this is a spare runway, not an optimisation — an agent swap changes the character of the work, not just its price, so it never happens to save money. Unknown or stale limits count as unknown and keep you on the primary; a used-up model window (Opus, say) does not count, since the CLI simply hands you another model. Off in one click.
  • Codex tiers do something now. Asking for a light sub-agent on Codex used to be a silent no-op — the crown believed it had chosen a cheaper model and nothing had happened. Codex tiers map to reasoning effort (light → low, standard → medium, heavy → high) rather than to model names, because effort survives the model renames that keep happening, and because guessing another vendor's model names is how you ship a lie. Verified against the live CLI, which rejects both an invented key and an invented value. Your own tier overrides still win.
  • Every tab can be closed with its ×, including the crown. The close button used to vanish on the last remaining tab — a rule from before an empty window had a start screen. Closing the last tab now lands on that screen. And closing a crown that still has sub-agents running asks first, naming them: the machinery that raises the alarm when a crown dies never saw a crown closed on purpose, so ⌘W could orphan a worker in silence. The duty tab always asks, because its Monitors live inside the agent's own process where the app cannot count them.

Fixed

  • Agents you never installed are no longer offered. If you run Claude and never installed Codex, the pickers stopped listing Codex crowns and Codex sessions — a menu entry that cannot start anything is a promise the app will not keep. One filter now feeds every place agents are listed, the check refreshes while the app runs (install one and it appears, no restart), and an agent you have not installed keeps a row in Settings ▸ Agents with an Install button, so it stays discoverable instead of disappearing. Installed-but-logged-out is untouched: that agent works again after a login, so it is never hidden.

v0.3.21 · 2026-09-02

New

  • The crown is a role now, not a Claude privilege. Codex can wear it too: + ▸ New Orchestrator Session, ⌘K and a worktree's context menu each offer a crown per agent, and the project start screen folds its buttons into two pickers — one to crown an agent, one to open a plain session — instead of one button per agent. ⌘⇧O still crowns Claude without asking, and every flag a Claude crown launches with is unchanged, pinned byte-for-byte by a test. What "being the crown" means moved into the agent itself — how to carry the instructions, how to disable its own sub-agents, how to catch the end of a turn — so a third agent is one new file rather than edits scattered across the app. Two honest differences: Codex has no equivalent of --strict-mcp-config, so a Codex crown also sees the MCP servers you have configured globally, while a Claude crown sees only ours; and the duty tab stays Claude-only by design (Monitors are a Claude Code tool), though a Codex crown commands it normally.
  • A merge you did not answer can now merge itself. The parked review counts down — ⏱ auto-merge & delete in 7s · click to cancel — and on zero it does exactly what Merge & Delete does, worktree and branch included. Clicking the pill cancels the countdown for good and hands the decision back to you, unhurried. On in Settings ▸ Merge by default, off in one click; the duration is a defaults key. A review you opened yourself from the sidebar is never on a clock — and fixing that revealed the app could not tell an agent's proposal from a diff you opened to read, which is now an explicit fact rather than a guess.

Fixed

  • The merge slip was easy to miss entirely. It arrived as grey text on a dark ground over a busy sidebar — the one thing on screen waiting for a person, and the owner could not find it. It now lands in the accent colour with a border in its branch's own colour, a short pop-in and three fading pulses that settle, and the cursor turns to a pointing hand over it so it reads as something you can press. It still refuses to cover the report you are reading: parked, only the pill itself takes clicks.
  • The crown described a window that was not there. It announced "the Review & Merge panel is open, confirm or cancel there" while the panel had been a corner pill since 0.3.19 — so you went looking for a window. It now says what actually happens, and is told never to call it a panel again.
  • A crown restarted on Codex was handed an empty brief that looked full. The session recap is built from Claude's transcript format; pointed at a Codex rollout it returned not "unavailable" but a valid, entirely empty summary, so the incoming crown read "nothing happened last session" and said so. Whether a transcript can be recapped is now a property of the agent, asked in both places that build one — so an agent nobody taught the builder about says plainly that there is no recap, rather than inventing an empty one.

v0.3.20 · 2026-08-31

Fixed

  • A sub-agent that finished while its crown was dead reported to nobody. When the orchestrator process died, the turn-finish notice its workers produced was dropped in silence — the crown was gone, and nothing was put in front of you instead. A worker could finish an evening of work and you would find out hours later, by looking. You now get a notification, the tab is marked with an envelope, the dock icon carries a count until you open it, and a hidden tab comes back to the strip on its own. The same goes for a worker that dies unattended.
  • A turn that finished while the app was closed was lost at the next launch. Completion events are written to a folder the app watches, and that folder was wiped on startup to keep stale files from firing phantom notices. Anything that arrived while the app was not running went with it. Events are now held across the restart and delivered once sessions are back — to the crown terminal if it is alive, to you if it is not. Phantoms are still dropped: delivery follows a restored session, not a leftover file.

New

  • A crown dying is now an event of its own. It used to be a tab quietly turning grey. You now get told, and the news is the count that matters: how many sub-agents are still running with nobody to relay their results. Their tabs come back to the strip at the same moment.
  • A crown brought back after dying starts with a recap instead of a blank page. If the previous orchestrator left sub-agents running, its replacement opens with a summary of the session it inherited — files touched, commits, metrics — and the list of workers it now supervises, with a reminder to read their results first. A crown whose work was finished still starts clean.

v0.3.19 · 2026-08-31

New

  • A merge the agent proposes no longer buries what it just told you. Review & Merge covers most of the window, so when an agent offered a merge it landed on top of the report you were meant to read — and the only ways out were answering yes or no. An agent's proposal now arrives as a slip in the corner (Review & Merge · 8 files · +340 −12 · 3 commits) with nothing answered: the agent waits, the window stays readable, and clicking the slip opens the full diff. “Read First” folds it back without deciding. Reviews you open yourself are unchanged.
  • Codex sessions stopped by an expired login are noticed too. The same marking, notification and self-resume that Claude sessions got — driven off Codex's own log, and pointing at codex login, which is the one that actually fixes it. Rare in practice: Codex re-reads its credentials by itself, so only a revoked refresh token stops it this way.
  • A stalled crown now tells the duty tab. When the session that would normally relay the bad news is itself the one stuck on a login, the watch tab hears about it instead — the one tab meant to outlive everything else.

Fixed

  • ⌘1 through ⌘9 land on the tab you are pointing at. The numbers counted the order sessions were created while the strip draws them grouped by worktree, so the third tab from the left was rarely ⌘3. Both now read the same order, and hidden tabs are skipped.
  • A rotated log no longer silences a watcher for good. When a log file was replaced or truncated, the reader following it stopped seeing anything at all until the app was restarted.

v0.3.18 · 2026-08-31

Fixed

  • Working agents were being read as idle. Claude Code stopped printing the esc to interrupt hint the app keyed on, while the shift+tab to cycle bar it read as “waiting” stays up all through a running tool — so a busy agent looked free, always. Tabs and the inbox called working agents “waiting”, “agent finished” notifications and idle watchdogs never fired, and Restart Crown decided the crown had finished talking after about six seconds. The screen is now read for three independent signs of work, and the tests replay verbatim terminal captures instead of remembered strings.
  • A restored sub-agent came back as an ordinary tab. After a restart its tab returned with the right name and conversation, but it had quietly lost the things that made it a sub-agent: the crown could no longer see or address it, turn-finish notices never arrived, and its permission mode fell back so it would stop at the first prompt. Restored workers now come back with all of it.
  • The change counter on a worktree only ever showed uncommitted work. Every time an agent committed, the count dropped back towards zero — precisely when the branch held the most work. It now shows the whole branch, with anything still uncommitted called out separately.

New

  • A sub-agent stopped by an expired login now says so. Signing in again revokes the token every already-running sub-agent holds, and each one stopped mid-task in silence — no notice, no turn, uncommitted work left in its worktree. Stalled tabs are now marked, you get a notification, and once the login is renewed each one is told to commit what it has and carry on. Nothing to press.
  • Updates wait for a pause, and a bad build is reversible. An update no longer replaces the app mid-turn: it downloads quietly and installs when nothing is running — judged by real silence, not by a flag. And there is a way back — Roll Back in the app menu, a flag on the binary, or a script that lives outside the app and works even when the app will not start.
  • Tabs can be hidden without ending the session. Hiding a tab takes it out of the strip but leaves the session alive, addressable and readable; a chip beside “+” counts what is hidden and brings it back, and a tab returns on its own if it needs permission, loses its login, or dies. Sub-agents can also be started hidden.

v0.3.17 · 2026-08-30

Fixed

  • A restarted crown came up without its brief. “Restart Crown” wrote the outgoing session’s hand-off to .clawaide/handoff.md exactly as it should, and then the replacement started knowing nothing about it — every restart began by asking what had happened. The opening message was appended after the launch flags, and the crown’s last flag takes a list of tool names, so the CLI read the whole brief as one more tool name and the session opened empty. The prompt is now separated from the flags, and the command line that starts a session is built in one place and covered by tests.

v0.3.16 · 2026-08-30

Fixed

  • The Claude limits bar is back. 0.3.14 made the credentials file the only source, on the mistaken assumption that Claude Code keeps it current. It does not — the file is written at login and never again, while the live token is rotated in the Keychain. Every request went out with an expired token and the bar vanished. The Keychain is the primary source again, and expiry is no longer used to decide anything.
  • Codex windows were mislabelled. On plans that report a single weekly window it was shown as the 5-hour one, leaving the weekly bar empty. Windows are now matched by their actual length rather than their position in the response.

New

  • Usage display reworked. The status bar now reads “14% used 3h 34m · 11% used 3d 2h · 0% used Opus” — percent used and time to reset, per window, with the per-model weekly limit shown for the first time. The popover became compact rows per provider with labelled mini-bars, a Detailed/Compact switch that remembers your choice, and provider marks instead of lettered circles.
  • Limits survive a restart. Codex usage is cached on disk (numbers only, never credentials), so the bars are filled in immediately at launch instead of waiting for the first request, and clearly marked when the figures are old.
  • Limits keep working when the token is stale. If the API rejects the token, ClawaIde asks the Claude CLI for usage instead of showing nothing, and the Keychain is consulted rarely rather than on every poll — so the macOS password prompt stays away.

v0.3.15 · 2026-08-30

New

  • The crown can hand watching to the duty tab. Ask the orchestrator to keep an eye on something in production and it now delegates that to the 🛡 duty session instead of starting a Monitor of its own. Monitors belong to the session that creates them, so a watch started in the crown would pin it against ever being restarted. The crown can also read how the duty tab is doing, but never close it.

Improvements

  • Two-line tabs. The branch now sits under the tab name in small type, and the branch chips that used to be wedged between tabs are gone. Tabs got shorter horizontally, the strip still scrolls, and the window is still never widened by them.
  • Quieter notifications. macOS notifications and the Dock badge now cover only the sessions you opened yourself — the orchestrator, the duty tab and your own tabs. Sub-agents stay silent while their crown is alive to report for them, and speak up again if that crown is gone.
  • Two merge buttons instead of a checkbox. Review & Merge now offers “Just Merge” and “Merge & Delete Worktree + Branch” directly, so the common case is one click instead of ticking a box that reset itself every time.
  • Renaming a tab by double-clicking its name keeps working now that tabs have a second line.

v0.3.14 · 2026-08-29

New

  • Duty tab — a long-lived watcher session (🛡) that owns your production Monitors. Monitors are bound to the session that created them, so keeping them in the crowned orchestrator meant the crown could never be restarted. Now they live apart, on a cheaper model.
  • Restart Crown — one command retires a bloated orchestrator properly: it saves memory and docs, checks for uncommitted work and live workers, writes a short handoff brief, and starts a fresh crown in the same tab that opens already knowing where you left off. Nothing closes until you confirm.
  • Session recap — what a session actually did (files edited, commits, hosts touched, notes written) is now recovered from its transcript instead of being recalled by the model, so nothing is lost to compaction.

Improvements

  • Tabs no longer stretch the window off-screen: they have a width cap, the strip scrolls, and sub-agents get short names (Yaga, Sadko) instead of branch names. The branch stays in the tooltip.
  • Tab labels are easier to read — larger type, more contrast, one status dot instead of two. The orchestrator and duty tabs are labelled by role.
  • The macOS Keychain password prompt for “Claude Code-credentials” no longer keeps reappearing: credentials are read from the file Claude Code maintains, and the Keychain is consulted at most once per launch.
  • Multi-line text sent into a session now arrives as one paste instead of being split line by line.

v0.3.13 · 2026-07-08

Improvements

  • Review & Merge now opens as an overlay inside the project window it belongs to — no more separate window popping up elsewhere.
  • ClawaIde no longer steals focus when a merge review appears: if you are in another app, the Dock icon bounces once and the review waits for you.
  • Merge is no longer bound to the Return key; close the review with Esc or the Close button.

v0.3.12 · 2026-07-08

  • Orchestrator: instant sub-agent notifications. The crowned orchestrator no longer polls its workers on timers — when a sub-agent finishes a turn (or exits), ClawaIde notifies the crown immediately via CLI completion hooks (Claude Code Stop hook, Codex notify), so results are picked up the moment they are ready.

v0.3.11 · 2026-07-08

  • Editor: language-aware syntax highlighting. Markdown files no longer turn green after an apostrophe or gray after a URL — Markdown now gets real rules (headings, lists, inline code and fenced blocks, links), strings never bleed across lines, and comment/string rules only apply to languages that actually have them.
  • Editor: Cmd+S and Cmd+F now work with non-Latin keyboard layouts (e.g. Russian) — shortcuts match the physical key, not the typed character.
  • Agent tabs: hovering over a menu option no longer accepts it. Mouse motion was mis-reported to the TUI as a click; moving the pointer across Claude Code option pickers could select an answer without Enter.

v0.3.10 · 2026-07-03

  • Diff recap in Review & Merge — a collapsible overview above the diff: files/lines/commits headline, per-directory file map, source/tests/docs breakdown with a "source changes without tests" warning.
  • Faster session restore for Codex tabs — targeted newest-first rollout lookup instead of scanning the whole sessions history.
  • Sub-agent spawn now accepts Vertex- and Bedrock-style model ids (@, _, /).

v0.3.9 · 2026-07-03

  • Fixed: restoring a tab whose Claude Code session had been deleted no longer fails with “No conversation found” — the tab now starts a fresh session instead.

v0.3.8 · 2026-07-03

Orchestrator model tiers: the crown can now match the model to the task when spawning workers — tier light/standard/heavy (Haiku/Sonnet/default) or an exact model id, including Codex models for an independent second opinion. Tier mapping is user-overridable via defaults (clawaide.orch.tier..).

v0.3.7 · 2026-07-03

New in 0.3.7:

  • Orchestrator sessions now survive app restarts end to end: restored tabs keep their identity, so a crowned agent that kept running through a restart can spawn and manage sub-agents again without a relaunch

v0.3.6 · 2026-07-03

New in 0.3.6:

  • Menu bar activity indicator: see at a glance whether agents are still working or waiting for you; click it to jump to any session in any window
  • New-tab menu redesigned with agent icons: Terminal and Orchestrator first, then Claude and Codex sessions
  • Closing and reopening is now silent: sessions are always saved on quit and restored automatically — no more prompts
  • Restoring a session that is still running as a background agent now opens the agent picker to re-attach instead of failing
  • Orchestrator sessions keep their app connection (spawn/merge tools) across app restarts and updates
  • Inbox rows and the menu bar list now show which project each session belongs to

v0.3.5 · 2026-07-02

New in 0.3.5:

  • Mouse wheel and trackpad scrolling now works in agent sessions: Claude and Codex transcripts scroll under the wheel (previously the wheel did nothing in agent tabs)
  • Full-screen terminal apps without mouse support scroll via synthesized arrow keys, like iTerm2; plain shell tabs keep their regular scrollback

v0.3.4 · 2026-07-02

New in 0.3.4:

  • Agent sessions now survive restarts and updates: reopening a project brings back its Claude and Codex tabs with their previous conversation context
  • Tabs whose sessions ended (or whose worktree is gone) simply start fresh instead of failing

v0.3.3 · 2026-07-02

New in 0.3.3:

  • Fixed a crash where the app could quit unexpectedly if an orchestration client disconnected while a reply was being written (e.g. during long merge confirmations)
  • Crash reporting: if the previous run ended unexpectedly, ClawaIde now offers to send a crash report — with the system diagnostic attached when available
  • One-click Create PR from the Review & Merge window: push the branch, create a GitHub PR and open it in the browser
  • Subscription limit bars now recover automatically from expired credentials

v0.3.2 · 2026-07-02

New in 0.3.2:

  • Switch the agent model mid-session (status bar segment or Cmd+K) — context is preserved
  • First-run dependency check: install git, Claude Code, Codex or tmux in one click from the onboarding screen
  • Project quick start: crown an orchestrator, open an agent session or a terminal from the empty window
  • What's New changelog popup and a public releases page
  • Send Feedback right from the status bar — with an app-state snapshot attached
  • Terminal tabs are now regular closable tabs (Cmd+1…9)

v0.3.1 · 2026-07-02

First public-ready build. Highlights:

  • Orchestration layer: worktree zones, agent inbox, send/broadcast, diff-review merge window, command palette (Cmd+K)
  • Crowned orchestrator: a Claude agent that spawns, reviews and merges sub-agents in isolated worktrees
  • Licensing: 7-day trial, device-locked activation, license status in the status bar
  • Auto-updates via Sparkle from clawaide.rayapp.dev
  • Subscription limit meters for Claude and Codex, Quick Workspace shell panel (Cmd+Alt+A), per-window font zoom

v0.3.0 · 2026-06-19

ClawaIde 0.3.0

v0.2.0 · 2026-06-19

ClawaIde 0.2.0