Skip to content

Releases

Acpira 2.1.0

Choose a tag to compare

@hotic hotic released this 12 Nov 06:21

Added

  • Sessions are stored in a SQLite database. Transcripts move into sessions.db in the sessions folder as compressed rows, one session at a time on its first save after this update; a session that is never saved again stays in its file. A save writes only what changed (a debounced save of a 21 MB session takes about 8 ms instead of 200 ms), and the session list, search, the Storage page and the model and mode chips read only the rows they need. A migrated session keeps a small <id>.json that versions before 2.1.0 can still list and open, plus a compressed copy of its old file for when the database cannot be opened. A damaged database is set aside and the record files take over. ACPIRA_STORE=files writes whole record files again, and acpira store revert <id> moves one session back to its file. A data folder created by 2.1.0 or later keeps its sessions in the database alone, with no <id>.json at all; versions before 2.1.0 show no sessions in such a folder.
  • The file tree in the tool panel creates, renames and deletes entries. Its context menu adds a file or folder, renames or moves one, and deletes it, never over an existing entry or outside the project. A delete goes to the system trash on this computer and is final on an SSH host. The menu also copies paths and opens a folder in the terminal. Paired devices cannot make these edits.
  • A session copy another computer left in an SSH host's folder can be continued from Acpira on the host. Sending, editing or a list edit there takes the copy over, resuming the built-in agent's synced log when there is one. The computer it came from then follows the host's session, keeps anything it added meanwhile as a separate branch, and never deletes the host's session.
  • A running command inside a subagent's transcript can be stopped from the subagent inspector, except for summoned agents in an SSH folder that runs locally.
  • A question from a summoned agent goes to the agent that summoned it first; the question card reaches the user only when that agent cannot answer. ask_agent takes early, delivering each round's reply as soon as it ends and naming the rounds still running so the caller can stop them.
  • Model sources read a model's fast tier from the endpoint's model list. Refreshing an agent re-detects every source's models and says how many are new.
  • The phone apps say why a paired computer could not be reached (no network, relay blocked, Acpira not answering, version mismatch) and show the details on tap.
  • The new-session agent picker for an SSH folder offers agents by the host's own installed CLIs.
  • Exporting, copying or reading (read_session) a session an SSH host runs on its own asks the host for the record when none is stored here.
  • The built-in agent runs a skill's bin commands by name, on this computer and on an SSH host; a newly added skill works at once.
  • A relative file link that is not in the session folder is looked up under the project's other folders, then the folders above them. Absolute, ~ and ./ or ../ paths still mean exactly what they say.
  • Reply screenshots include videos (at their first frame), animated GIFs and widgets, and leave reasoning rows out. The card frames the reply on a darker sheet with a watermark line, and the action is now called Screenshot.

Changed

  • A session whose native agent session is lost gets a fresh one instead of turning read-only. When the agent's own session is gone, cannot be resumed or the agent has no restore, Acpira starts a new native session in place and hands the transcript so far over with the next prompt. Edits and retries right afterwards hand over only the shortened history.
  • The composer toolbar no longer has a summon menu: typing @ lists the agents and starts a summon.
  • Long session lists and long process folds opened by hand render in parts, so they open without a stall.
  • The macOS desktop app's header line is 40 px tall, with the window buttons centred on it.
  • Managed native agent installs, such as Antigravity's, live in installs/ in the data folder instead of agents/. An existing install moves on first use.
  • The Linux desktop packages (deb, rpm and AppImage) remain a preview. GNOME and Plasma on Wayland, NVIDIA drivers, input methods and fractional scaling are not checked yet.

Fixed

  • A model pick carries across the ids one model goes by, such as Claude's fable and fable[1m], in replayed turn settings, remembered picks and edits.
  • Paired devices are no longer left without a computer when the engine running remote access retires: a successor engine starts.
  • A turn label naming a model that is no longer listed drops the model source's prefix.
  • In the desktop app, dragging a session row no longer lights the folder drop frame.
  • Pressing a row while the transcript grows above it keeps the press on that row, a hidden anchor no longer scrolls the thread to the top, and pinned prompts close the gap under the header.
  • The wide transcript column sits on a whole pixel, so the turn mark no longer twitches when a fold opens at odd window widths.
  • In a narrow composer, the item kept for the overflow menu no longer runs under the send button.
  • On iOS 18, the composer caret no longer gets stuck past the end of the text after an outside change.
  • On iOS, the pill behind a /command or @name in the prompt being written sits on its text instead of slightly low, Chinese lines included.

Full Changelog: v2.0.12...v2.1.0

Acpira 2.0.12

Choose a tag to compare

@hotic hotic released this 11 Nov 00:41

Added

  • A running command can be stopped on its own. A command row that is still running shows a stop square. Stopping it ends that command alone: the agent reads a failed call and the turn goes on. It is offered on macOS and Linux while the agent's process is alive, and in Claude sessions on an SSH host, where it cancels the remote call. The phone apps stop a command from its row too. Windows has no such stop yet.
  • A reply or a selection can be shared as a screenshot. Share on an agent's reply and in the selection toolbar renders the text into a card footed by the session title, the model family and its vendor mark. The preview copies the image or saves it as a PNG through the save dialog of the desktop app or VS Code.
  • Model sources follow this computer to its SSH hosts. A session an SSH host runs reads the host's own model sources, which no settings page here could edit. This computer's sources and their keys are now copied to every connected host, on connect and after each edit. This is on by default, so after this update the keys reach a host the next time it connects. "Carry model sources" in a host's Connections page turns it off and takes back what was brought. A source the host already had under the same id is kept and comes back, and loopback addresses and local-server presets never travel.
  • Account quota shows Claude's weekly Fable allowance.
  • Adapter updates for Claude and Codex are offered up to npm's latest version, not only the version Acpira pins, since new models reach the model list only through a newer adapter. The pinned version stays the floor and is what a machine without npm gets.
  • In the desktop app, a page an agent opens lands in the tool panel of the session that asked for it, in the background when that session is off screen.
  • A plugin can answer an open question card through session/act. Permission answers stay refused, and an answer to a card that is no longer open is an error.
  • The phone apps play haptics on send and stop, permission and plan answers, question picks, copy buttons, pairing results and a turn ending in the open chat. Widgets shown by show_widget can send prompts from the phone, as they do on the computer.
  • On iOS, a paired computer shows its Acpira version, a sent prompt shows its quotes as a read-only chip, and an acpira://pair/demo link enters the demo.

Changed

  • The macOS desktop app declares macOS 15 as its minimum system version instead of macOS 26. The system WebKit is the real floor.
  • The Linux desktop packages (deb, rpm and AppImage) remain a preview. GNOME and Plasma on Wayland, NVIDIA drivers, input methods and fractional scaling are not checked yet.

Fixed

  • Agents no longer fail with Operation not permitted after a desktop update on macOS. Swapping the app bundle took the privacy grants away from the engine still running under the old one, so Claude Code, Droid and the built-in agent could not read external volumes or protected folders until the engine restarted. The engine now notices its launcher was replaced and, once nothing is running, hands over to a fresh engine under the new bundle.
  • A Claude subagent that keeps running after its parent's turn ended on its own is no longer marked disconnected. The rest of its stream and its final state still arrive. A stopped or failed turn still cuts it.
  • Workspace hooks no longer count a commit made or undone during a turn, such as by another session, as that turn's file changes. This holds on an SSH host too.
  • Moving a built-in agent session to another folder recomposes its system prompt, so the next turn names the new folder and its AGENTS.md instead of the old ones.
  • A read that mixes text and image files shows each picture on its own file row, also when the adapter leaves out the image's path.
  • A turn's output speed leaves out the time it spent waiting: compaction, an API retry, an unanswered permission or question card, running subagents and a pending wakeup.
  • A session shows as working while its first prompt waits to start.
  • Claude sessions on an SSH host no longer all fail with spawn EACCES when a folder under the data root's remote cannot be entered by its owner. The folder is reopened, and a start error names the start folder when that is what cannot be entered.
  • Claude's own ultracode switch no longer shows beside the Ultra effort level.
  • An agents.json entry that reuses a built-in agent's id and command keeps the built-in's install line and update offer.
  • A fold animating in a thread that fits its viewport no longer twitches every row, the goal strip's button stays inside the exchange when it comes last, and the sidekick chip's live dot is no longer clipped flat.
  • On the phone, file rows and video attachments open over a paired link, tapping a navigation twice opens one page, and a live session's list row takes its date from the computer.
  • On iOS, opening a chat or a fold with hundreds of steps no longer freezes the phone: an open fold draws its newest steps under an "earlier steps" row. Long tables draw a page of rows at a time, a very large command output no longer crashes the app, an oversized animation is turned down, the tapped attachment is the one removed, and a subagent row's detail lines no longer draw over the next row.

Full Changelog: v2.0.11...v2.0.12

Acpira 2.0.11

Choose a tag to compare

@hotic hotic released this 09 Nov 09:54

Added

  • The desktop app follows a finger on macOS touch displays. Dragging the title bar with a finger moves the window, and a finger pinch steps the View menu zoom. A trackpad pinch behaves as before.
  • Settings' About page opens acpira.com first. The READMEs, the VS Code and JetBrains listings, the desktop app and the Windows signature now point to acpira.com instead of the repository.

Changed

  • The Appearance switch that links the context report to the transcript is now off by default.

Fixed

  • On macOS, Acpira holds privacy grants as one app. With the desktop app installed in Applications, the engine, remote access and every command an agent runs are charged to Acpira.app. App Management, Screen Recording and the other lists show Acpira once, and updates keep the grants. The switch happens when the engine next starts, such as after this update. Without the desktop app, the engine stays under the Acpira Engine launcher, which now shows the Acpira icon. A grant given only to Acpira Engine is asked once more for Acpira.app. Leftover rows from earlier versions (acpira, acpira-gateway, Acpira Engine) are no longer used and can be removed with "−" in System Settings.
  • Replacing the desktop app, by its own update or a local install, no longer drops the grants of an engine still running from the old copy. The old copy is moved aside and deleted once nothing runs from it.
  • Remote access still starts at login after the desktop app is moved or deleted.
  • With the context report linked to the transcript, a call under a closed fold lights only that fold's head row instead of half the thread. Hovering a call whose row is off screen leaves the thread in place, picking one scrolls to it even under a pinned prompt, and a dimmed pinned prompt no longer shows rows through it.
  • In a session on an SSH host, editing an earlier message runs on the host, and a stale edit or the finished turn reaches the page that asked. Plans and other files outside the project open in the viewer on the host too.
  • A refused reply counts as a failure in summaries and forks. The built-in agent's compaction no longer keeps a filter notice as the summary, and forking a session whose last reply was refused hands its request over like a failed reply.
  • Dragging the edge of the subagent pane or the session column moves only that edge. Before, the tool panel's far edge moved instead.
  • Following an in-page link in the browser panel, such as a footnote, no longer turns off element picking and history for that page.
  • Reading above the end of a streaming reply no longer twitches the thread by a pixel as content grows below.
  • Droid's Fast Mode models read as the fast variant. Droid's autonomy levels and Hermes's edit modes show the access they actually grant.
  • The reply and prompt action rows leave room around their buttons, and the session moved toast shows a plain folder icon.

Full Changelog: v2.0.10...v2.0.11

Acpira 2.0.10

Choose a tag to compare

@hotic hotic released this 07 Nov 23:49

Added

  • Factory Droid and Hermes Agent are built-in agents. Droid runs as droid exec --output-format acp, and the copy bundled with the Factory desktop app is found too. Hermes runs as hermes acp, and its model list shows as an ordinary model picker. Both get their marks, mode icons, sign-in methods and shared-config reach. Droid's Spec mode counts as read-only and Auto (High) as full access.
  • Account menus and settings offer the CLI's own sign-in. When a CLI's login is missing or expired, the account panel, the narrow window's account menu and the agent's settings offer a sign-in. Adding an account for an agent outside the account layer runs its login command in a terminal, such as kimi login. A locked keychain turns the account header's action into Unlock.
  • The context report links to the transcript. Hovering or picking a call in the report lights its row in the thread and dims the rest, with a switch in Appearance. Claude Code sessions show Claude Code's own split of system prompt, tools, MCP, memory files and skills, read without a model call. Conversation parts are shaded by what they hold, with a key under the map.
  • A paired phone can download any project file. Files up to the link's blob limit download to the phone and resume after a dropped link. On iOS, videos and pictures open in Quick Look, and video cards show their download progress.
  • The export toast can show the exported file in Finder, Explorer or the Linux file manager.
  • An update dot on the app menu leads into Settings, which opens straight on the page that has the update.

Changed

  • Account rows share one layout: a state dot with its reason as the tooltip, the identity with its plan as a tag, and quota bars under it. The phone's account sheet no longer offers "+", since adding a login needs the computer's terminal.
  • Every settings card, including cards inside dialogs, uses the same fill.
  • The phone's pairing sentence sits centred between its glyph and its action.
  • The Linux desktop packages (deb, rpm and AppImage) remain a preview. GNOME and Plasma on Wayland, NVIDIA drivers, input methods and fractional scaling are not checked yet.

Fixed

  • On macOS, Screen Recording and other privacy grants are no longer asked again after each update. Every engine start runs through one fixed Acpira Engine launcher under ~/.acpira/engine/launcher, so macOS keeps the grants.
  • Paired phones connect while Clash, sing-box or Surge route traffic through a TUN on macOS or Windows. The gateway binds the physical interface and resolves names over DNS over TLS, and it restarts on a fresh endpoint when the network changes under it.
  • A prompt that fails with rejected credentials asks for a sign-in, whatever error code the provider uses, such as Grok's 401 answer. Sign-in methods are offered before API-key ones.
  • Workspace hooks find node, python and Homebrew tools when the engine was started from the Dock or at login.
  • A reply flooded with <br> tags no longer freezes or kills the phone app. Long replies draw a page of blocks at a time, with a "more" line for the rest.
  • Code highlighting on iOS retries a line that ran past the highlighter's time limit instead of keeping it in one colour.
  • A chat following its newest output no longer jitters by a pixel in the desktop app and other WebKit views.
  • Typing in a menu's search box no longer nudges the whole window.

Removed

  • The ChatGPT conversation mirror is gone: the Connect ChatGPT Session command, the ChatGPT entry in Settings → Connections, the acpira bridge CLI and the ChatGPT channel in session lists. Mirrors already written under ~/.acpira/bridges/chatgpt are no longer listed and stay on disk untouched.

Security

  • Dependencies flagged by the npm and RustSec advisory databases are patched, including KaTeX 0.19.1. Every push and a daily schedule now audit the Node and Rust lockfiles.

Full Changelog: v2.0.9...v2.0.10

Acpira 2.0.9

Choose a tag to compare

@hotic hotic released this 06 Nov 11:21

Added

  • A desktop project can hold several folders. Edit project in a project header's menu gives the project a name of its own and adds further folders. Sessions run in the primary folder, and agents that support ACP additionalDirectories get the other folders each time a session opens; the built-in agent names them in its environment section. Sessions from every folder list under the project, and a file in another folder opens with that folder's git changes. A project on an SSH host keeps one folder.
  • Every agent's context card shows what fills it. For agents that report no split, the engine estimates the parts from the transcript since the last compaction, scaled to the agent's figure, and shows the rest as the agent's own part. Claude Code's split comes from its own session log and Grok's from its session info. Sessions without a running agent get the estimate too, and the built-in agent shows its restored context after a reopen before its next call. Estimates are marked as such and have no raw request.
  • A paired phone can add projects and models. It browses the computer's folders to add a project, and can add, edit or remove the built-in agent's model sources. A key typed on the phone is stored on the computer and never sent back. The agent-wide switches stay on the computer.

Changed

  • A new session in an SSH host folder lists the models of the host's CLI when the agent runs in the host's engine, and keeps the last list while the host is away.
  • In Settings, the agent tiles slide into place while one is dragged, and the dragged tile follows the pointer.
  • Settings rows are shorter.

Fixed

  • A history prompt closed with an unsent edit shows the edited text and attachments instead of the original.
  • Opening an SSH host session from a paired phone while the desktop shows it clears its unread mark.
  • OpenAI-compatible streams that send an empty message beside every reasoning delta keep one Thinking row instead of starting a new one per batch.

Full Changelog: v2.0.8...v2.0.9

Acpira 2.0.8

Choose a tag to compare

@hotic hotic released this 05 Nov 09:51

Added

  • See what fills the built-in agent's context. The context ring's card splits the last request into system prompt, tools, instruction files, skills, MCP and conversation. In the desktop app, View report opens a Context tab in the tool panel with a treemap and a tree of every part, and each leaf opens what was sent. After a compaction the parts are estimates until the next call.
  • Every model-facing text of the built-in agent can be overridden. The system prompt, mode notes, plan, compaction, goal and title texts, MCP instructions and sidekick notes are Markdown files. A same-name file in ~/.acpira/prompts, a plugin's prompt folder or the project's .acpira/prompts replaces them, and a name@family file targets one model family.
  • The built-in agent keeps its temp files in the project. Commands and writes get the session's own folder under .acpira/tmp/ as their temp directory, and it is removed with the session. The Temp files in the project switch on the agent's settings page turns it off. Remote and SSH sessions do not use one.

Changed

  • The sidekick works with the lead's access. Every sidekick round takes the root session's mode and approval level, and a running round follows a change at once. The composer's hint now says the sidekick does the work while the lead plans and reviews.
  • Consults stay read-only. The built-in agent offers a Read-only mode to summoned sessions, so a consult no longer lands in Plan mode and ends in an approval. A consulted agent's request to leave its mode, such as Claude Code's ExitPlanMode, is declined without a card.
  • Prompt overrides moved. Files in ~/.agents/acpira/prompts or a project's .agents/acpira/prompts are no longer read. Move them to ~/.acpira/prompts or .acpira/prompts, and rename base.md to system.md.
  • The Windows desktop app and the Windows engines in the VS Code and IntelliJ packages are Authenticode-signed, so Smart App Control lets them run.
  • Turns under ten seconds show tenths in the stats card, like finished commands. The shortest duration reads 0.1 s instead of <0.1 s.
  • The add-model button sits at the end of the model search.

Fixed

  • Effort and other model parameters apply to the model a switch selects. While the switch is in flight, the controls follow the target model, and picks made meanwhile are checked once it lands.
  • A Claude Code subagent resumed with SendMessage reads as that agent's thread, with a round label in the subagent list. This also holds when the adapter never announces the resumed run after a session resume.
  • ask_agent accepts an empty answer list sent with a plain follow-up, which clients that fill every schema field send.
  • Built-in model source settings no longer drop a toggle when a dialog closes or a reply arrives late. A legacy hidden-model list no longer hides models enabled in providers.json, and a keyless custom source is no longer flagged as missing a key.
  • Clicking beside a session group header's actions toggles the group.
  • The add-host dialog's cards fit their rows.

Full Changelog: v2.0.7...v2.0.8

Acpira 2.0.7

Choose a tag to compare

@hotic hotic released this 03 Nov 23:28

Added

  • Add models from the model panel. The panel's header has an Add chip for every agent. It opens that agent's settings on Models, or on Sources for the built-in agent.
  • The built-in agent's sidekick has its own Fast switch while its model offers a fast tier, saved with the session and tagged on the chip. A lone model's panel fits on one row with a short effort scale.
  • Remote access names a blocked network on Windows. When Windows Firewall turns away devices on this network, the pairing card offers an Allow button. While no relay is reachable it asks to join the same Wi-Fi.
  • The built-in agent's Raw mode settings apply to sessions already open, and an edited Raw system prompt applies from the next message.
  • The desktop app's window drags from the settings page's title strip.

Changed

  • One engine per machine on macOS and Linux. VS Code, the desktop app, IntelliJ and SSH peers share it, running from a copy under ~/.acpira/engine/. A newer build takes over while the older one finishes its running turns, and a window whose engine was replaced offers a reload. Windows keeps one engine per shell.
  • Remote access runs inside the engine. The separate acpira-gateway program is gone, and the login service starts the engine instead. A gateway left by 2.0.6 or older is stopped when the new engine takes over.
  • Output speed leaves out tool waits and background waits, and Claude Code's tool rows carry their timing.
  • Pairing addresses leave out WSL, Hyper-V, VM bridge and proxy TUN adapters on Linux and Windows.
  • Paired devices receive session list changes as patches instead of the whole list.
  • Long transcripts skip style, layout and paint for exchanges out of sight, except in WebKit.
  • The Linux AppImage, still a preview, is compressed with zstd.

Fixed

  • A session whose agent does not answer its start within 90 seconds fails instead of waiting forever.
  • A settings file that never opens no longer wedges a session's start.
  • Editing a message in a session another engine runs takes effect in that engine.
  • Toasts and other engine messages use the language of the window that asked, and a missing file link is reported in that language instead of the OS opener's error.
  • The built-in agent runs the default model it shows when the session's model was switched off.
  • An open history editor shows newly added models without losing its picks, and a failed history edit is reported in the composer's toast.
  • show_widget frames can play data: audio.
  • A plan with a single to-do shows it without a fold.
  • The About page in Settings is titled About.

Full Changelog: v2.0.6...v2.0.7

Acpira 2.0.6

Choose a tag to compare

@hotic hotic released this 02 Nov 09:23

Added

  • Linux desktop app, preview. Each release ships x64 deb, rpm and AppImage packages, built on Ubuntu 22.04. They have no in-app updates yet.
  • Widgets can answer. A show_widget widget's buttons can send a pick as the next message with window.acpira.sendPrompt(text), queued behind a running turn. Only a live session's main thread takes it; inspectors and imported sessions stay one-way.
  • Auto-compaction can follow the model's window. The Model limit option compacts each session a little below the context size its agent reports. A custom count works as before.
  • Plugin menus and hooks. A command button can open a menu of radio, toggle and action rows, kept per session and shared with every hook. A transcript hook can split a settled thought or reply into thought and reply parts. Skins get style hooks on tabs, composer chips, header and session-list actions and turn actions, and a skin's card lands on the parts it restyles.
  • Custom and plugin agents can carry a vendor and an SVG mark, drawn wherever the agent shows. A plugin agent whose CLI is not installed yet passes the check, and its tile offers the install line.
  • A summoned round's inspector shows the whole thread, with every earlier round of the same session.
  • A new session's / menu offers the agent's known slash commands before its first turn.
  • The built-in agent ships a skill-creator skill in place of the plugin author skill. How to write a plugin reaches every agent through the MCP instructions.

Changed

  • SSH folders run every agent on the host by default. No agent, the built-in one included, runs on this machine until it is picked in Settings. Folders with a saved pick keep it.
  • A macOS host's engine starts in the user's GUI session, where the login keychain is unlocked. A session running in a host's engine no longer offers a local keychain unlock and asks to unlock on that computer instead.
  • plugin_activate returns as soon as its card is shown, so a turn never waits on a click. A failed apply reaches the agent later as a queued message.
  • The GitHub Release lists only what people download: the desktop apps, the update manifest and one SHA256SUMS. VSIXes and desktop update packages move to a shared packages prerelease, the IntelliJ plugin's per-platform zips leave GitHub (the plugin installs from the JetBrains Marketplace), and the Windows desktop app is Acpira-<version>-windows-x86_64.zip again. SSH folders take a missing helper build from the platform's VSIX there.
  • A trailing read or edit phase stays in progress across the gaps between completed calls.
  • Tabs on Windows and Linux put their close button at the end.
  • An agent's switch in Settings reads Enabled / Enable {agent}.

Fixed

  • A steer during Claude Code's autonomous cycle goes out as a prompt that takes the session over, with claude-agent-acp 0.95.0 or newer. Older adapters keep it queued until the cycle ends.
  • A turn that runs again without a prompt, such as an autonomous cycle, a goal continuation or a steer, keeps its closing prose as the reply instead of folding it into the process.
  • A session another engine runs no longer flashes read-only when it opens.
  • A message resent from a paired device runs once, even after the engine restarted while the device was away.
  • A retry after signing in to another account runs with that account.
  • Controls brought by an earlier answer are restored again.
  • In a narrow composer the model chip steps down and the other chips fold to icons, so it no longer runs past the send button.
  • Spaced pinyin commits are fixed in every text field, not only the composer.
  • What a press landed on stays under the pointer while content above it grows.
  • composer.above plugin pieces no longer cover the last reply's actions.
  • Re-observing a subagent no longer replays its inspector's entrances.
  • The desktop app no longer aborts when WebKit stops a custom-scheme request.

Full Changelog: v2.0.5...v2.0.6

Packages

Packages Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 02 Nov 09:36

Files the apps and the release pipeline fetch: desktop update packages and deltas, and the VS Code extension packages. Downloads for people are on each version’s Release, whose SHA256SUMS lists these files too.

Acpira 2.0.5

Choose a tag to compare

@hotic hotic released this 01 Nov 05:20

Added

  • Agents can show videos. The new show_video tool plays a recording inline once it scrolls into view, in every shell. Pasted media loads from the session's own files, also in the file viewer.
  • Stop a summoned agent. ask_agent can stop a summoned thread's running round the way the stop button does, then answers with its last words. The thread stays open for another prompt.
  • Summoned agents' returns lead the reply they woke, and a short sidekick round no longer leaves empty slots behind.
  • Claude Code's ScheduleWakeup keeps the session alive. A session with a pending wakeup is not released while idle, and its row and the session list name when it resumes.
  • Settings search. The settings rail searches pages, groups and fields. Models get their own page, and plugins become one list filtered by what they add.
  • Adapter updates. An agent whose ACP adapter is older than the pinned version is offered an update, marked on its tile, the settings rail and the desktop gear. An updated adapter starts fresh instead of reusing a warm or cached old process.
  • Effort levels from more gateways. Levels are read from capability lists, Codex's supported reasoning levels and New API listings, and parenthesized effort suffixes fold into one model family. The built-in model catalogue is refreshed.
  • The built-in agent takes images with question answers, rechecks waiting cards when the mode or approval level changes, and restores the files it worked on most behind a compaction summary.
  • Plugins land where they live. After an apply the engine relists its MCP tools mid-turn, so the model can call what it just built. A failed runtime start returns its stderr to the agent, plugin cards sit at the call that offered them, and a newer card offers an update. Applying charges the card and flies lit frames in the skin's colour.
  • Choose which agents run locally in SSH folders. Settings pick the agents that run on this machine in a host folder; every other agent runs in the host's own engine. Session search reaches host sessions, and connecting downloads the helper build for the host's platform and names failures in the host list.
  • Project rows of SSH folders name the host instead of the parent folder when two folders share a name.

Changed

  • The per-host SSH run mode is replaced by the per-agent setting. By default only the built-in agent runs locally in an SSH folder. Claude Code and the other agents run in the host's own engine unless they are picked in Settings.
  • Storage stays smaller. Identical attachments are shared across sessions, large diff texts move out of session records into compressed files read on demand, and records untouched for a month are packed into an archive that older engines still open through a stub.
  • GIFs and their thumbnails play as video encoded in the page, which costs WebKit a fraction of the CPU. Any failure keeps the GIF, and GIF decoding is bounded by frame size.
  • Only the active language's dictionary loads, instead of all nine.
  • The thinking orb, composer beam, send button ring and image mosaic are drawn in-house. The send ring uses canvas 2D, so a lost WebGL context can no longer hide send or stop.
  • MCP tool rows name the server as configured, as Claude Code and Codex print it, and titles drop a repeated server prefix.
  • The permission card lines up with the tool rows and puts its choices beside the title. Crowded tool panel tabs shrink to their icon instead of scrolling.
  • Claude plans are named Max and Ultra, as the service sells them.
  • Codex patches are titled from their diffs when the adapter only says "Edit files".

Fixed

  • On macOS the engine and gateway are signed with the Developer ID and the gateway stays at one fixed path, so privacy grants such as App Management survive upgrades.
  • New sessions opened in an SSH folder from its category or the current session run on the host, and an offline host no longer stalls opening an unknown session.
  • Images, videos and widgets an SSH session shows keep the host path and are fetched when a page shows them, instead of a copy a repeated completion could drop.
  • Question answer images survive forks, submit waits while pasted images are still being read, and pictures the agent could not pass on are reported instead of reading the answer as skipped.
  • An automatic allow answered after the built-in agent's approval level went back to asking now asks a person.
  • Sessions stay off an engine whose login keychain is locked.
  • The desktop Dock badge clears for sessions read or answered elsewhere, including waiting cards answered on another device.
  • A search-only session row's unread mark clears when it is opened, and session list hover actions hide once the pointer leaves a clicked row.
  • In WebKit a wide code card no longer grows by its scrollbar after a session switch, and typing no longer restyles the whole shell.
  • Push notifications no longer repeat a subtitle.
  • The Windows desktop icon renders full-bleed without a shadow and stays sharp at small sizes.

Full Changelog: v2.0.1...v2.0.5