0.9.0-beta.1 - 2026-09-17
Added
- Added Cmd/Ctrl+F Find to file panes, with replacement in editable files (#4589)
- Added Cmd/Ctrl+F Find to terminal scrollback (#4650)
- Added Cmd/Ctrl+F Find to chat, including messages outside the loaded history window (#4765)
- Added Jump to file to mobile Changes, opening the changed-files tree in a sheet (#4861)
- Added automatic Pull request tab opening once per workspace when a PR is detected (#4956)
- Added expandable plan cards, with rejected plans collapsed by default (#4756)
- Added an attachment placeholder with a spinner while a selected file uploads (#4958)
- Added match highlighting to the workspace, agent, project, and branch fields in History search (#4945)
Plugins
- Added plugin installation from npm, including scoped packages, versions, tags, and ranges (#4975)
- Added
paseo plugin updatewith--all,--check, and--yes, showing the current and proposed revision before approval (#4975) - Added each plugin's description, source, and installed revision to Settings → Plugins (#4975)
- Added an optional
serverIdtonavigation.openAgent()andnavigation.openWorkspace()(#4942) - Added host discovery through
useHosts()and host-targeted SDK clients throughgetPaseoClient(serverId)(#4971) - Added
openExternalUrl()and<ExternalLink>for opening a URL outside Paseo (#4972) - Added
navigation.openBrowser()for opening a URL in a workspace browser on desktop (#4972) - Added a server settings handle returned by
registerSettings()withread()andsubscribe()(#4674 by @mcowger) - Changed
assistant_messagetransformers to receive the whole accumulated message on each update (#4675 by @mcowger, @jegork) - Changed
tool_calltransformers to receive every original call before Overview groups them (#4675) - Fixed a plugin session losing its host API permanently after its heartbeat lease expired (#4912 by @gpambrozio)
- Fixed plugin build commands failing with
spawn npm ENOENTon Windows (#4776 by @ABorakati) - Fixed ACP text chunks without a
messageIdsplitting one reply into a message per chunk (#4701 by @L4XB) - Fixed nested provider subagents appearing as direct children of the root agent (#4970)
Changed
- Changed History search to keep results chronological in date buckets instead of reordering by relevance (#4945)
- Changed workspace Restore to keep the archived agent selected, with its own Unarchive action (#4736)
- Changed the workspace error screen's Retry to Reload, which reopens at the project picker (#4598)
- Changed closing the last content tab to leave the New launcher instead of an unusable pane (#4844)
- Changed
paseo daemon startto read persistent configuration; removed configuration flags fail with migration instructions (#4575)
Improved
- Bold, italics, strikethrough, inline code, and link labels stay formatted while a reply streams (#4742)
- Reduced time to first voice audio from 4.80s to 0.95s on a three-sentence reply (#4927)
- Reduced cold diff generation from 11.45s to 2.65s on a 213-file workspace (#4676)
- Reduced desktop memory use, from 290.5 MiB to 152.1 MiB RSS in the Electron main process after loading daemon management (#5007)
- Kept open chats subscribed across view eviction, app backgrounding, and reconnect (#4863)
- Added reconnection and Updating messages status to the chat toast (#4863)
- Kept the app responsive during large uploads by yielding between 128 KiB chunks (#4958)
- Let resident browser pages idle between screenshots while the desktop window is hidden (#4646)
Fixed
- Fixed the daemon exhausting its heap in long conversations with cumulative tool output (#4838)
- Fixed repeated submissions creating several workspaces or agents for one intent (#4442)
- Fixed a crash loop after closing the last content tab in a workspace (#4844)
- Fixed New Agent crashing when an enabled provider published duplicate model IDs (#4839)
- Fixed long drafts growing behind the chat header on Android and iOS (#4824)
- Fixed the Android composer growing taller when the keyboard closed (#4902)
- Fixed the Android composer keeping its height after hold-to-delete emptied a draft (#4946)
- Fixed New workspace setup content not moving up as the composer grows (#4973)
- Fixed the Android timeline scrolling away when tapping or selecting text in a chat (#5013)
- Fixed Paste image failing before an attachment reached the composer on Android (#4758)
- Fixed provider and model pickers not responding on Android tablets (#4845 by @cjcrjc, @mkuhl)
- Fixed Linux desktop packages launching without the Chromium sandbox (#4447)
- Fixed
paseo daemon stopshutting down a daemon other than the selected one (#4575) - Fixed restored archived workspaces showing empty Changes and Commits (#4926)
- Fixed a rejected plan appearing below the follow-up message that rejected it (#4756)
- Fixed Cmd/Ctrl+F not opening chat Find while the composer had focus (#4991)
- Fixed the linked pull request going undetected when a branch remote is a repository URL (#4862)
- Fixed a plugin's filtered agent list replacing the app's own directory subscription (#4596)
- Fixed an updated app rejecting daemons that lack independent subscriptions (#4737)
- Fixed workspace and agent creation failing or leaving agent titles at "Loading…" on 0.8.0 and older daemons (#4895)
- Fixed Cursor models showing another model's thinking options (#4180 by @fidelix)
- Fixed voice-chat user messages showing the internal prompt wrapper instead of the transcript (#4927)
- Fixed History and Command Center search matching a query assembled from letters in separate words (#4945)
- Fixed workspace titles truncating early on touch layouts behind hidden diff stats (#4698)
- Fixed the Explorer showing
+0 -0and "No changes" while being dragged open (#4861) - Fixed the reconnect toast restarting its entrance animation when opening a saved chat (#4925)
- Fixed raised shadows around Android file rows in the changed-files sheet (#4898)