# Changelog This file is generated at release time from each PR's `## Changelog` section (or its title), tagged by the PR's `Type of change` (e.g. `[UI]`), with linked PRs and author credits. The concise, curated highlights live on the website under `/releases`. ## [v0.21.0] — 2026-11-05 - [Bug fix] ACP-backed sessions now display the model the running harness actually selected, instead of the agent spec's pinned model. ([#5823](https://github.com/omnigent-ai/omnigent/pull/5823), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Smart Routing uses Unity Catalog model service names so Databricks models no longer fail with a retired-endpoint 501 error. ([#6798](https://github.com/omnigent-ai/omnigent/pull/6798), [@edurdevic](https://github.com/edurdevic)) - [Feature] Claude Code's AskUserQuestion now renders as clickable options on the claude-sdk harness ([#7403](https://github.com/omnigent-ai/omnigent/pull/7403), [@creynold84](https://github.com/creynold84)) - [Bug fix] Codex sessions can recover a backfill lease left by a dead process instead of waiting for it to expire. ([#7844](https://github.com/omnigent-ai/omnigent/pull/7844), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Feature] `OMNIGENT_SEEDED_AGENTS` trims which built-in agents a deployment offers in the new-session picker ([#8495](https://github.com/omnigent-ai/omnigent/pull/8495), [@jsonmp-k8](https://github.com/jsonmp-k8)) - [UI / Bug fix] The new-session picker no longer shows an empty Harnesses list when a deployment trims its built-in agents ([#8498](https://github.com/omnigent-ai/omnigent/pull/8498), [@jsonmp-k8](https://github.com/jsonmp-k8)) - [UI / Feature] Hide individual harnesses and agents from the agent pickers (new chat, automations, project defaults) in Settings › Appearance ([#8499](https://github.com/omnigent-ai/omnigent/pull/8499), [@jsonmp-k8](https://github.com/jsonmp-k8)) - [UI / Feature / Docs / Test/CI / Breaking] `omnigent opencode` now runs on OpenCode 2.0 (`npm i -g @opencode/cli@2.0.32`; 2.0.18–2.0.x supported), with live text streaming, question forms and native `/compact`. **Breaking:** OpenCode 1.x (`opencode-ai`) is no longer supported. Hosts running it show the harness as outdated until they `npm rm -g opencode-ai` and install `@opencode/cli`. ([#8513](https://github.com/omnigent-ai/omnigent/pull/8513), [@landreville](https://github.com/landreville)) - [Bug fix] `openai-agents` agents can use Databricks-hosted Gemini models, including multi-step tool calls. ([#8655](https://github.com/omnigent-ai/omnigent/pull/8655), [@GirishS2093](https://github.com/GirishS2093)) - [Test/CI] test(cli): give each literal MCP fixture a valid transport ([#8743](https://github.com/omnigent-ai/omnigent/pull/8743), [@shekharkadyan](https://github.com/shekharkadyan)) - [Bug fix] Tool cards for ACP-harness agents show the tool's output text, with readable diff and terminal summaries, instead of a raw JSON dump ([#8980](https://github.com/omnigent-ai/omnigent/pull/8980), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Starting a session in a new worktree of a very large repository no longer times out while the worktree is checked out. ([#9136](https://github.com/omnigent-ai/omnigent/pull/9136), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Antigravity-native sessions keep their agy conversation history across host restarts and idle runner shutdowns; abandoned bridges are reclaimed after 7 days of inactivity. ([#9480](https://github.com/omnigent-ai/omnigent/pull/9480), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] fix(claude-native): keep side chats from inheriting running sub-agents ([#9602](https://github.com/omnigent-ai/omnigent/pull/9602), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Imported Codex threads keep their full history (the current rollout file, history inherited from forks and reverts, and turns before a compaction), and threads archived in Codex are imported as archived. A thread too large to import whole keeps its history from the last compaction onward. ([#9633](https://github.com/omnigent-ai/omnigent/pull/9633), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [Bug fix] A hidden browser tab or backgrounded Android app no longer redials an unreachable server every few seconds; it retries about once a minute and reconnects as soon as it is visible again. ([#9693](https://github.com/omnigent-ai/omnigent/pull/9693), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Claude Code and Codex SDK workers on a CLI login now list their probed models in Smart Routing and `sys_list_models` instead of appearing empty. ([#9700](https://github.com/omnigent-ai/omnigent/pull/9700), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] A session whose workspace directory was deleted on the host keeps working: the host recreates the directory and the chat shows a notice, instead of refusing every message with "workspace path does not exist". ([#9710](https://github.com/omnigent-ai/omnigent/pull/9710), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix] fix(web): let the landing's Smart Routing checkbox be unchecked ([#10097](https://github.com/omnigent-ai/omnigent/pull/10097), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Chore] perf(policies): cache compiled CEL policy programs ([#10101](https://github.com/omnigent-ai/omnigent/pull/10101), [@andrewreid](https://github.com/andrewreid)) - [UI / Bug fix] fix(skills): tell the Codex skill picker when `codex plugin list` fails ([#10193](https://github.com/omnigent-ai/omnigent/pull/10193), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Archiving or stopping a sub-agent no longer stops the host runner it shares with its parent session. ([#10251](https://github.com/omnigent-ai/omnigent/pull/10251), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Docs / Chore] chore: preserve paired runner tunnel close outcomes ([#10413](https://github.com/omnigent-ai/omnigent/pull/10413), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] A message sent to a Claude session while its terminal waits for a Databricks sign-in is now sent automatically once you sign in, instead of failing. ([#10539](https://github.com/omnigent-ai/omnigent/pull/10539), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(claude-native): stop telling sandbox sessions to run omni setup ([#10584](https://github.com/omnigent-ai/omnigent/pull/10584), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Claude Code sessions that used the advisor or web search before `/compact` now cold-resume without `API Error: 400`. ([#10587](https://github.com/omnigent-ai/omnigent/pull/10587), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] A Claude Code session whose screen another program wrote over no longer loses your next message and its terminal; Omnigent has Claude Code redraw and delivers it. ([#10615](https://github.com/omnigent-ai/omnigent/pull/10615), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Pi-native sessions report Pi-priced cost across restarts, and Fireworks model IDs resolve through the pricing catalog. ([#10787](https://github.com/omnigent-ai/omnigent/pull/10787), [@mdatla](https://github.com/mdatla)) - [Docs] docs: refresh seed feature maps ([#10839](https://github.com/omnigent-ai/omnigent/pull/10839), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Show the allowed models when a native session is pinned outside its model list ([#10980](https://github.com/omnigent-ai/omnigent/pull/10980), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Fix runner auth failing closed when a no-bearer managed mint 401s before session binding ([#11006](https://github.com/omnigent-ai/omnigent/pull/11006), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix] fix(web): keep unsent AskUserQuestion answers when leaving a session ([#11041](https://github.com/omnigent-ai/omnigent/pull/11041), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Servers using an OIDC provider that omits `auth_time`, such as Cloudflare Access, can now complete CLI and device sign-in by setting `OMNIGENT_OIDC_REQUIRE_REAUTH=0`. ([#11075](https://github.com/omnigent-ai/omnigent/pull/11075), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Feature] fix(daytona): stop a sandbox without deleting it ([#11177](https://github.com/omnigent-ai/omnigent/pull/11177), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Pi sessions in Omnigent keep your MCP servers and MCP logins from `~/.pi/agent` (or `PI_CODING_AGENT_DIR`) ([#11188](https://github.com/omnigent-ai/omnigent/pull/11188), [@vishwahaha](https://github.com/vishwahaha)) - [Bug fix] Fixed a race in the session policy cache that could make every message fail with "Denied by policy (policy evaluation error)" until the server was restarted. ([#11225](https://github.com/omnigent-ai/omnigent/pull/11225), [@Stellarain](https://github.com/Stellarain)) - [Bug fix] fix(codex-native): bound tool arguments in compacted replay ([#11315](https://github.com/omnigent-ai/omnigent/pull/11315), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix / Feature] feat(web): keyboard shortcuts for grid cells and split terminal panes ([#11368](https://github.com/omnigent-ai/omnigent/pull/11368), [@hzub](https://github.com/hzub)) - [UI / Feature] The folder picker accepts typed paths, arrow keys and sorting by date modified. The desktop app can also open Finder's folder dialog and take folders dragged in from Finder. ([#11369](https://github.com/omnigent-ai/omnigent/pull/11369), [@hzub](https://github.com/hzub)) - [UI / Feature] Reply to an agent directly from its Inbox row without opening the session, and hover a cut-off preview to read the agent's whole reply ([#11377](https://github.com/omnigent-ai/omnigent/pull/11377), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix / Docs / Test/CI] `!command` inputs in Codex web chat now run as shell commands and display their output; questions sent during a standalone shell command are answered after it finishes. ([#11396](https://github.com/omnigent-ai/omnigent/pull/11396), [@Desidero](https://github.com/Desidero)) - [Bug fix] fix(pi): preserve user resources across session directory relocation ([#11406](https://github.com/omnigent-ai/omnigent/pull/11406), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] fix(claude-native): don't report a pane Omnigent closed after a delivery timeout as a terminal exit ([#11465](https://github.com/omnigent-ai/omnigent/pull/11465), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(runner): explain an outdated Claude Code on terminal exit ([#11477](https://github.com/omnigent-ai/omnigent/pull/11477), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Claude Code turns whose error details never arrive now stop running after a few seconds and explain how to inspect the failure. ([#11485](https://github.com/omnigent-ai/omnigent/pull/11485), [@yaoharry](https://github.com/yaoharry)) - [Bug fix / Docs] fix(agents): scope caption absence claims to the element the driver checked ([#11491](https://github.com/omnigent-ai/omnigent/pull/11491), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix] Shells and programs in a web terminal, such as nushell and PowerShell, no longer lose input or see stray text like `28;1R` from a duplicated terminal reply ([#11495](https://github.com/omnigent-ai/omnigent/pull/11495), [@xanth](https://github.com/xanth)) - [UI / Feature / Docs] A deployment can name which agents New Chat offers and which one it starts on, without removing them from the server ([#11498](https://github.com/omnigent-ai/omnigent/pull/11498), [@jsonmp-k8](https://github.com/jsonmp-k8)) - [Bug fix / Docs] Command-line, host and device logins no longer ask the identity provider for `max_age=0`, which fixes the Authelia consent loop and stops Microsoft Entra ID issuing a token that expires on arrival; `OMNIGENT_OIDC_REAUTH_MAX_AGE` sets the window. ([#11499](https://github.com/omnigent-ai/omnigent/pull/11499), [@jsonmp-k8](https://github.com/jsonmp-k8)) - [UI / Feature] feat(web): fork Arclet sessions onto a new Arclet ([#11503](https://github.com/omnigent-ai/omnigent/pull/11503), [@dbczumar](https://github.com/dbczumar)) - [UI / Feature] feat(settings): show harness accounts in Settings, checked only on request (harness accounts v2, part 1) ([#11541](https://github.com/omnigent-ai/omnigent/pull/11541), [@zhengwin](https://github.com/zhengwin)) - [Bug fix / Feature] Mark finished scheduled tasks completed in persistent dispatch ([#11548](https://github.com/omnigent-ai/omnigent/pull/11548), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Bug fix / Feature] Scan linked pull requests in a compact list with checks, merge actions, and stored summaries that remain available while the host is offline. ([#11550](https://github.com/omnigent-ai/omnigent/pull/11550), [@daniellok-db](https://github.com/daniellok-db)) - [Bug fix] A one-off credential refresh blip no longer fails a running Claude or Codex turn ([#11567](https://github.com/omnigent-ai/omnigent/pull/11567), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] Turn on Codex Plan mode before your first prompt, with Codex's planning instructions preserved. ([#11570](https://github.com/omnigent-ai/omnigent/pull/11570), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Test/CI] test(e2e-ui): isolate per-process config, timings and artifacts for xdist ([#11571](https://github.com/omnigent-ai/omnigent/pull/11571), [@PattaraS](https://github.com/PattaraS)) - [Feature] feat(runner): report session PRs to the server and serve the PRs it vouches for ([#11573](https://github.com/omnigent-ai/omnigent/pull/11573), [@daniellok-db](https://github.com/daniellok-db)) - [Feature] feat(server): own each session's pull requests on the server ([#11574](https://github.com/omnigent-ai/omnigent/pull/11574), [@daniellok-db](https://github.com/daniellok-db)) - [UI / Feature] The Pull Requests tab, sidebar and Canvas keep showing a session's linked PRs, with their title and status, while its host is offline, and you can unlink a PR offline. ([#11575](https://github.com/omnigent-ai/omnigent/pull/11575), [@daniellok-db](https://github.com/daniellok-db)) - [UI / Bug fix] fix(web): offer /clear only when the server accepts the clear control ([#11579](https://github.com/omnigent-ai/omnigent/pull/11579), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Chore] Ask about host ownership once per page in the persistent scheduler ([#11603](https://github.com/omnigent-ai/omnigent/pull/11603), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Feature] Fold Codex commentary using its message phase ([#11605](https://github.com/omnigent-ai/omnigent/pull/11605), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] fix(native): keep native harness bridge dirs in the configured data dir ([#11606](https://github.com/omnigent-ai/omnigent/pull/11606), [@xanth](https://github.com/xanth)) - [UI / Feature] Tool calls in chat read as plain-language actions with their result on a second line, and expand to labeled fields instead of raw JSON. ([#11607](https://github.com/omnigent-ai/omnigent/pull/11607), [@PattaraS](https://github.com/PattaraS)) - [Feature / Docs / Test/CI] Private owner sessions can now delegate work and create independent workers by default; operators can disable new orchestration with `OMNIGENT_FEATURES=-session_orchestration` and a server restart. ([#11608](https://github.com/omnigent-ai/omnigent/pull/11608), [@PattaraS](https://github.com/PattaraS)) - chore(deps): bump unicode-width from 0.2.0 to 0.2.2 in /dev/omnidev ([#11611](https://github.com/omnigent-ai/omnigent/pull/11611), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump tokio from 1.53.2 to 1.53.3 in /dev/omnidev ([#11612](https://github.com/omnigent-ai/omnigent/pull/11612), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump libc from 0.2.190 to 0.2.191 in /dev/omnidev ([#11613](https://github.com/omnigent-ai/omnigent/pull/11613), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump tokio in /tests/codex_parity/sidecar ([#11614](https://github.com/omnigent-ai/omnigent/pull/11614), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump @streamdown/cjk from 1.0.3 to 1.0.4 ([#11625](https://github.com/omnigent-ai/omnigent/pull/11625), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump prettier from 3.9.5 to 3.9.10 ([#11626](https://github.com/omnigent-ai/omnigent/pull/11626), [@dependabot[bot]](https://github.com/apps/dependabot)) - [Bug fix / Test/CI] test(e2e): wait on the rendered toolbar after approving always ([#11638](https://github.com/omnigent-ai/omnigent/pull/11638), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] fix(server): reject provisional session IDs before store access ([#11666](https://github.com/omnigent-ai/omnigent/pull/11666), [@yaoharry](https://github.com/yaoharry)) - [Chore] fix(native): retain lifecycle evidence without a client message ID ([#11668](https://github.com/omnigent-ai/omnigent/pull/11668), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(native): offer retry for provider timeouts and high demand ([#11669](https://github.com/omnigent-ai/omnigent/pull/11669), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] fix(codex): name the model provider's token command when it fails ([#11677](https://github.com/omnigent-ai/omnigent/pull/11677), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Chore] chore(logging): retain failed status intake and connection evidence ([#11679](https://github.com/omnigent-ai/omnigent/pull/11679), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(host): preserve host lifecycle when console output closes ([#11684](https://github.com/omnigent-ai/omnigent/pull/11684), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Pi tool calls accept requests up to 16 MiB and return a clear error when a request exceeds the limit. ([#11686](https://github.com/omnigent-ai/omnigent/pull/11686), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(runner): record bound Future state for callback failures ([#11688](https://github.com/omnigent-ai/omnigent/pull/11688), [@yaoharry](https://github.com/yaoharry)) - [Chore] chore(runner): record cancellation requests and task state ([#11692](https://github.com/omnigent-ai/omnigent/pull/11692), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(host): correlate skill discovery failures with their session and cause ([#11698](https://github.com/omnigent-ai/omnigent/pull/11698), [@yaoharry](https://github.com/yaoharry)) - [Chore] N/A — internal diagnostics only. ([#11702](https://github.com/omnigent-ai/omnigent/pull/11702), [@yaoharry](https://github.com/yaoharry)) - [Chore] diagnostics: retain MCP proxy failure correlation ([#11704](https://github.com/omnigent-ai/omnigent/pull/11704), [@yaoharry](https://github.com/yaoharry)) - [Feature] Let config wrap the native Codex session app-server, and pass its -c before the subcommand ([#11717](https://github.com/omnigent-ai/omnigent/pull/11717), [@Edwinhe03](https://github.com/Edwinhe03)) - [Bug fix] fix(claude-native): honor configured launcher during model discovery ([#11718](https://github.com/omnigent-ai/omnigent/pull/11718), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Feature] feat(desktop): reconnect an offline Arca when a message is sent ([#11720](https://github.com/omnigent-ai/omnigent/pull/11720), [@dbczumar](https://github.com/dbczumar)) - [UI / Bug fix] fix(web): keep sidebar rows from shifting when Sessions collapses ([#11723](https://github.com/omnigent-ai/omnigent/pull/11723), [@bbqiu](https://github.com/bbqiu)) - [UI / Bug fix] Open files in the web viewer now update when another session or process edits them, without overwriting unsaved edits. ([#11728](https://github.com/omnigent-ai/omnigent/pull/11728), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] fix(attachments): preserve files in compaction snapshots ([#11731](https://github.com/omnigent-ai/omnigent/pull/11731), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(claude-native): release stdin reader after cancellation ([#11735](https://github.com/omnigent-ai/omnigent/pull/11735), [@yaoharry](https://github.com/yaoharry)) - [Bug fix / Docs / Test/CI] fix(claude-native): show forked skill agents in the Agents panel ([#11736](https://github.com/omnigent-ai/omnigent/pull/11736), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] N/A — small startup recovery fix. ([#11738](https://github.com/omnigent-ai/omnigent/pull/11738), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] N/A — small delivery fix. ([#11739](https://github.com/omnigent-ai/omnigent/pull/11739), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix / Feature] **Reconnect host** wakes an asleep sandbox, such as an Arclet, without sending a message ([#11740](https://github.com/omnigent-ai/omnigent/pull/11740), [@dbczumar](https://github.com/dbczumar)) - [UI / Feature] feat(settings): Codex sign-in and switch account from Settings (harness accounts v2, part 2) ([#11743](https://github.com/omnigent-ai/omnigent/pull/11743), [@zhengwin](https://github.com/zhengwin)) - [Bug fix] fix(tunnels): retain sender error evidence during close races ([#11748](https://github.com/omnigent-ai/omnigent/pull/11748), [@yaoharry](https://github.com/yaoharry)) - [Bug fix / Test/CI] fix(dependabot): allow more green branch refreshes ([#11749](https://github.com/omnigent-ai/omnigent/pull/11749), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] ci: pin Playwright jobs to ubuntu-24.04 ([#11751](https://github.com/omnigent-ai/omnigent/pull/11751), [@zhengwin](https://github.com/zhengwin)) - [Test/CI] ci: run Playwright UI jobs on ubuntu-24.04 ([#11752](https://github.com/omnigent-ai/omnigent/pull/11752), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] ci: pin every workflow runner to an explicit image ([#11754](https://github.com/omnigent-ai/omnigent/pull/11754), [@PattaraS](https://github.com/PattaraS)) - [UI / Feature / Docs] feat: show which manager created an independent worker ([#11755](https://github.com/omnigent-ai/omnigent/pull/11755), [@PattaraS](https://github.com/PattaraS)) - [Feature] feat(server): capture managed sandbox logs on session delete ([#11757](https://github.com/omnigent-ai/omnigent/pull/11757), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] Fix duplicate Codex user messages when resume replay overlaps live delivery ([#11758](https://github.com/omnigent-ai/omnigent/pull/11758), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Feature / Chore] Theme surfaces now use consistent palette-aware colors and glass treatments across light and dark modes. ([#11759](https://github.com/omnigent-ai/omnigent/pull/11759), [@ajayalfred](https://github.com/ajayalfred)) - [Feature / Docs] feat(automations): start and recover claimed runs, and route Run now through claims ([#11762](https://github.com/omnigent-ai/omnigent/pull/11762), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix / Feature / Docs] Open workspace folders and files in VS Code or Cursor from the Files panel, including online Arca and Arclet SSH workspaces in web and desktop. ([#11764](https://github.com/omnigent-ai/omnigent/pull/11764), [@daniellok-db](https://github.com/daniellok-db)) - [Test/CI] ci(e2e): run three pytest workers per E2E shard ([#11765](https://github.com/omnigent-ai/omnigent/pull/11765), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test(e2e-ui): drive the sidebar peek-click test with the page clock ([#11766](https://github.com/omnigent-ai/omnigent/pull/11766), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] An active turn remains recoverable when an offline host briefly reconnects and disconnects again. ([#11769](https://github.com/omnigent-ai/omnigent/pull/11769), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(server): retain peer close facts for disconnect reconciliation ([#11771](https://github.com/omnigent-ai/omnigent/pull/11771), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(host): survive closed console during registration and reconnect ([#11779](https://github.com/omnigent-ai/omnigent/pull/11779), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(codex-native): avoid rewriting an unchanged active turn ([#11783](https://github.com/omnigent-ai/omnigent/pull/11783), [@yaoharry](https://github.com/yaoharry)) - [Chore] chore(claude-native): observe errors deferred to StopFailure ([#11787](https://github.com/omnigent-ai/omnigent/pull/11787), [@yaoharry](https://github.com/yaoharry)) - [UI / Feature] feat(web): show MCP server display names on tool rows and the harness catalog ([#11792](https://github.com/omnigent-ai/omnigent/pull/11792), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Test/CI] test: reap detached runtimes after bundled-agent locale checks ([#11798](https://github.com/omnigent-ai/omnigent/pull/11798), [@yaoharry](https://github.com/yaoharry)) - [UI / Feature] feat(web): polish the expanded tool-call view ([#11799](https://github.com/omnigent-ai/omnigent/pull/11799), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Feature] Edit tool calls in chat show their added and removed line counts on the row and expand to a diff, one panel per file for multi-file patches. ([#11801](https://github.com/omnigent-ai/omnigent/pull/11801), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix / Docs] fix(automations): wait out the shutdown drain before failing an unbound sandbox run ([#11805](https://github.com/omnigent-ai/omnigent/pull/11805), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix] fix(web): apply Archived sessions filter to the Projects section ([#11810](https://github.com/omnigent-ai/omnigent/pull/11810), [@zhengwin](https://github.com/zhengwin)) - [Bug fix] The sidebar error marker now clears when a Claude native session's later turn succeeds after an earlier error ([#11811](https://github.com/omnigent-ai/omnigent/pull/11811), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix / Docs] fix(claude-native): persist turn settlement before acknowledging its hook ([#11816](https://github.com/omnigent-ai/omnigent/pull/11816), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(claude-native): preserve gateway model on refusals ([#11817](https://github.com/omnigent-ai/omnigent/pull/11817), [@yaoharry](https://github.com/yaoharry)) - [Bug fix / Docs] fix(claude-native): keep child hooks out of parent identity and completion ([#11821](https://github.com/omnigent-ai/omnigent/pull/11821), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(repl): wait for responses in Ctrl+L E2E ([#11823](https://github.com/omnigent-ai/omnigent/pull/11823), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix: preserve native Codex work after delivery transport failures ([#11825](https://github.com/omnigent-ai/omnigent/pull/11825), [@yaoharry](https://github.com/yaoharry)) - [Bug fix / Docs] fix(harness): restore missing IPC directories before spawn ([#11826](https://github.com/omnigent-ai/omnigent/pull/11826), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(web): wait for composer scroll geometry to settle ([#11827](https://github.com/omnigent-ai/omnigent/pull/11827), [@yaoharry](https://github.com/yaoharry)) - [Feature] feat(automations): add the scheduled-task session mode schema ([#11832](https://github.com/omnigent-ai/omnigent/pull/11832), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Feature / Docs] Automations can file every session they start into a project; pick one, or type a new name, in the automation dialog. ([#11833](https://github.com/omnigent-ai/omnigent/pull/11833), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] fix(claude-native): hide Claude Code's "No response requested." placeholder ([#11835](https://github.com/omnigent-ai/omnigent/pull/11835), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - feat(automations): let an automation continue one session across runs ([#11841](https://github.com/omnigent-ai/omnigent/pull/11841), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Feature] feat(web): open Reconfigure from New Chat's harness setup ([#11842](https://github.com/omnigent-ai/omnigent/pull/11842), [@zhengwin](https://github.com/zhengwin)) - [UI / Feature] feat(automations): automation detail page with run history and failure stages ([#11849](https://github.com/omnigent-ai/omnigent/pull/11849), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix] The sidebar error marker now clears when a resumed session recovers without a new message ([#11850](https://github.com/omnigent-ai/omnigent/pull/11850), [@TomeHirata](https://github.com/TomeHirata)) - [Feature] Automations can now use session orchestration: a scheduled run can message the owner's other sessions and start independent sessions, under the same ownership and privacy checks as an interactive turn. ([#11851](https://github.com/omnigent-ai/omnigent/pull/11851), [@TomeHirata](https://github.com/TomeHirata)) - [Test/CI] chore(ci): upgrade Claude Code CLI pin to 2.1.295 ([#11852](https://github.com/omnigent-ai/omnigent/pull/11852), [@PattaraS](https://github.com/PattaraS)) - [Docs] docs: clarify harness comparison and resource acceptance checks ([#11855](https://github.com/omnigent-ai/omnigent/pull/11855), [@PattaraS](https://github.com/PattaraS)) - Bump version to 0.21.0.dev0 ([#11863](https://github.com/omnigent-ai/omnigent/pull/11863), [@omnigent-ci[bot]](https://github.com/apps/omnigent-ci)) - docs(changelog): record v0.20.0 ([#11864](https://github.com/omnigent-ai/omnigent/pull/11864), [@omnigent-ci[bot]](https://github.com/apps/omnigent-ci)) - [Chore] fix(deps): pick up patched releases for open Dependabot alerts ([#11865](https://github.com/omnigent-ai/omnigent/pull/11865), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [Bug fix] fix(native): retain delivery uncertainty when restoring queued inputs ([#11867](https://github.com/omnigent-ai/omnigent/pull/11867), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] fix(web): preserve and reuse tabs for chat links ([#11873](https://github.com/omnigent-ai/omnigent/pull/11873), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Bug fix] fix(web): start prompt history recall only from empty text ([#11874](https://github.com/omnigent-ai/omnigent/pull/11874), [@dhruv0811](https://github.com/dhruv0811)) - [Test/CI] test(runner): verify heartbeats during cold bundle parsing ([#11876](https://github.com/omnigent-ai/omnigent/pull/11876), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(web): cover expired sign-in recovery on the selected host ([#11877](https://github.com/omnigent-ai/omnigent/pull/11877), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(auth): exercise broker retries through the token CLI ([#11878](https://github.com/omnigent-ai/omnigent/pull/11878), [@yaoharry](https://github.com/yaoharry)) - [Bug fix / Test/CI] fix(codex): recover first-turn running status after subscription ([#11880](https://github.com/omnigent-ai/omnigent/pull/11880), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(claude): cap forwarded tool output before event upload ([#11881](https://github.com/omnigent-ai/omnigent/pull/11881), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(host): synchronize login cancellation setup on entry ([#11882](https://github.com/omnigent-ai/omnigent/pull/11882), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Native sessions started directly in their terminal stay connected while work is running or waiting for input. ([#11883](https://github.com/omnigent-ai/omnigent/pull/11883), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] Inject scheduler heartbeat faults at the store clock read ([#11899](https://github.com/omnigent-ai/omnigent/pull/11899), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] fix(web): show page titles in browser tabs ([#11900](https://github.com/omnigent-ai/omnigent/pull/11900), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] fix(claude-native): redraw idle-compaction notices before delivery ([#11901](https://github.com/omnigent-ai/omnigent/pull/11901), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] Codex-native side chats and forked sub-agents no longer bill the parent conversation's tokens again, so Session cost is no longer inflated. ([#11903](https://github.com/omnigent-ai/omnigent/pull/11903), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix] fix(web): discover Arclet first-prompt skills through connected Arca ([#11904](https://github.com/omnigent-ai/omnigent/pull/11904), [@dhruv0811](https://github.com/dhruv0811)) - [Test/CI] fix(ci): sync PR priority after issue triage labels the linked issue ([#11906](https://github.com/omnigent-ai/omnigent/pull/11906), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] fix(claude-native): recover clipped input below stale prompt frames ([#11909](https://github.com/omnigent-ai/omnigent/pull/11909), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(host): verify runtime paths before orphan server cleanup ([#11910](https://github.com/omnigent-ai/omnigent/pull/11910), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] Initial Arca onboarding lets you finish browser sign-in on your laptop before connecting the remote host. ([#11911](https://github.com/omnigent-ai/omnigent/pull/11911), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] fix(host): forward OMNIGENT_CLAUDE_PATH to runners like the Codex and Pi overrides ([#11912](https://github.com/omnigent-ai/omnigent/pull/11912), [@Edwinhe03](https://github.com/Edwinhe03)) - [Bug fix] fix(runner): bound sys_session_list runner-status lookups ([#11916](https://github.com/omnigent-ai/omnigent/pull/11916), [@aravind-segu](https://github.com/aravind-segu)) - [UI / Bug fix] The chat no longer flickers at the bottom of a running turn when Reduce motion is turned on. ([#11921](https://github.com/omnigent-ai/omnigent/pull/11921), [@dhruv0811](https://github.com/dhruv0811)) - [Test/CI] test(host): exercise session delivery and fatal exit with closed console pipes ([#11926](https://github.com/omnigent-ai/omnigent/pull/11926), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(scheduled): wait for the committed heartbeat deadline ([#11930](https://github.com/omnigent-ai/omnigent/pull/11930), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(runner): own fallback Claude skills in bridge directory ([#11931](https://github.com/omnigent-ai/omnigent/pull/11931), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Keep session skill discovery available when a host symlink disappears ([#11935](https://github.com/omnigent-ai/omnigent/pull/11935), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Pi SDK sessions preserve compacted context across restart and fork, avoiding oversized history replay. ([#11937](https://github.com/omnigent-ai/omnigent/pull/11937), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Docs] Rewrite the scheduler README and document run states and interruptions ([#11944](https://github.com/omnigent-ai/omnigent/pull/11944), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] fix(codex-native): read idle-reaped goals without waking Codex ([#11948](https://github.com/omnigent-ai/omnigent/pull/11948), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(routing): decline non-object judge verdicts ([#11951](https://github.com/omnigent-ai/omnigent/pull/11951), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(server): preserve unreadable runner mutation failures ([#11953](https://github.com/omnigent-ai/omnigent/pull/11953), [@yaoharry](https://github.com/yaoharry)) - [Bug fix / Docs] fix(claude-native): offer recovery when a response stops arriving ([#11955](https://github.com/omnigent-ai/omnigent/pull/11955), [@yaoharry](https://github.com/yaoharry)) - [UI / Feature] feat: model and effort controls for generic side chats ([#11959](https://github.com/omnigent-ai/omnigent/pull/11959), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Feature] Change the model and reasoning effort for follow-up messages in native Codex side chats. ([#11960](https://github.com/omnigent-ai/omnigent/pull/11960), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix / Test/CI] fix(ci): capture benchmark failures while fonts are pending ([#11962](https://github.com/omnigent-ai/omnigent/pull/11962), [@daniellok-db](https://github.com/daniellok-db)) - [Bug fix] fix(server): close deferred elicitation coroutine on scheduling failure ([#11973](https://github.com/omnigent-ai/omnigent/pull/11973), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(cli): stop sub-agent turns before a host stop signals the daemon ([#11974](https://github.com/omnigent-ai/omnigent/pull/11974), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(e2e): scope MCP launch cleanup to its own runtime ([#11979](https://github.com/omnigent-ai/omnigent/pull/11979), [@yaoharry](https://github.com/yaoharry)) - [UI] perf(web): keep FilesPanel mounted behind file and shell tabs ([#11985](https://github.com/omnigent-ai/omnigent/pull/11985), [@hzub](https://github.com/hzub)) - [Bug fix] New native Pi compactions survive history reconstruction and forks, preserving recent context without replaying the full conversation. ([#11986](https://github.com/omnigent-ai/omnigent/pull/11986), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] fix(codex-native): keep forwarding after unsupported permission settings ([#11988](https://github.com/omnigent-ai/omnigent/pull/11988), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix / Docs / Test/CI] fix(automations): follow-ups to automation project filing ([#11990](https://github.com/omnigent-ai/omnigent/pull/11990), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] Keep sandbox launcher imports usable without site packages ([#11992](https://github.com/omnigent-ai/omnigent/pull/11992), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(codex-native): finish forwarder cleanup after task failures ([#11995](https://github.com/omnigent-ai/omnigent/pull/11995), [@yaoharry](https://github.com/yaoharry)) - [UI / Feature / Docs / Test/CI] Read, reply to, and start GitHub review conversations on lines or ranges directly in Pull Requests → Changes, with inline diffs for suggested changes. ([#11996](https://github.com/omnigent-ai/omnigent/pull/11996), [@daniellok-db](https://github.com/daniellok-db)) - [Feature] Let a deployment turn automations off per request ([#11997](https://github.com/omnigent-ai/omnigent/pull/11997), [@serena-ruan](https://github.com/serena-ruan)) - [Test/CI] ci: run CI-tooling tests in their own shard, only when tooling changes ([#11998](https://github.com/omnigent-ai/omnigent/pull/11998), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] Attaching to a live session from another host uses the session owner's replica, preventing a false offline check from replacing its running task. ([#12003](https://github.com/omnigent-ai/omnigent/pull/12003), [@serena-ruan](https://github.com/serena-ruan)) - [Test/CI] test: wait for Claude status error observation ([#12005](https://github.com/omnigent-ai/omnigent/pull/12005), [@PattaraS](https://github.com/PattaraS)) - [UI / Feature] Connect a machine you reach over SSH from the desktop app's Connect a host dialog; the app handles sign-in, SSH prompts and the port forward, with no terminal or SSH config changes. ([#12006](https://github.com/omnigent-ai/omnigent/pull/12006), [@PattaraS](https://github.com/PattaraS)) - [Chore] chore: pause issue triage and reviewer assignment for PattaraS ([#12007](https://github.com/omnigent-ai/omnigent/pull/12007), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] fix: honor Claude CLI retry and request timeout settings ([#12009](https://github.com/omnigent-ai/omnigent/pull/12009), [@serena-ruan](https://github.com/serena-ruan)) - [Chore] Share the sub-agent label, read-only rule and session query outside ChatPage ([#12010](https://github.com/omnigent-ai/omnigent/pull/12010), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Feature] Long model lists in the model picker have a search box and collapsible groups by model creator (Anthropic, OpenAI, Google, Moonshot AI, Z.ai, and more), with the current model's group open. ([#12011](https://github.com/omnigent-ai/omnigent/pull/12011), [@PattaraS](https://github.com/PattaraS)) - [Chore / Test/CI] chore: bump uv >= 0.13.4 ([#12012](https://github.com/omnigent-ai/omnigent/pull/12012), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix / Docs] fix: reuse the Codex effort catalog for side chats ([#12014](https://github.com/omnigent-ai/omnigent/pull/12014), [@serena-ruan](https://github.com/serena-ruan)) - [Test/CI] test(lint): flag fixed sleeps that an instant test assertion relies on ([#12015](https://github.com/omnigent-ai/omnigent/pull/12015), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test: wait on conditions instead of fixed sleeps in three timing-sensitive tests ([#12016](https://github.com/omnigent-ai/omnigent/pull/12016), [@PattaraS](https://github.com/PattaraS)) - [UI / Feature] New Settings option opens sub-agent chats as a tab in the Workspace panel, beside the main chat, instead of replacing it ([#12017](https://github.com/omnigent-ai/omnigent/pull/12017), [@serena-ruan](https://github.com/serena-ruan)) - [Test/CI] ci(ocr): raise review token budget and warn on budget-only partial reviews ([#12018](https://github.com/omnigent-ai/omnigent/pull/12018), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Bug fix] Editing a Markdown file with footnotes or reference-style links no longer deletes their definitions or rewrites them as inline links, and saves keep the file's final newline ([#12024](https://github.com/omnigent-ai/omnigent/pull/12024), [@serena-ruan](https://github.com/serena-ruan)) - [UI] Show tool rows as their title, and size expanded tool cards on one font step ([#12032](https://github.com/omnigent-ai/omnigent/pull/12032), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix / Feature] `omnigent start --open-in-desktop` opens the host UI in a supported desktop app, with browser fallback when the app cannot accept the request or the URL requires browser routing. ([#12034](https://github.com/omnigent-ai/omnigent/pull/12034), [@CarlosBueno99](https://github.com/CarlosBueno99)) - [UI / Bug fix] Keep tool errors inside expanded cards ([#12039](https://github.com/omnigent-ai/omnigent/pull/12039), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Bug fix] fix(web): collapse the open sidebar when the window narrows below md ([#12040](https://github.com/omnigent-ai/omnigent/pull/12040), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Chore] fix(deps): move mlflow to 3.17.2 and pick up msgpack and qs fixes ([#12041](https://github.com/omnigent-ai/omnigent/pull/12041), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [UI / Bug fix] fix(web): hide composer menu descriptions that don't fit on mobile ([#12042](https://github.com/omnigent-ai/omnigent/pull/12042), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix] fix(web): preselect the first option in question forms ([#12043](https://github.com/omnigent-ai/omnigent/pull/12043), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Chore] perf(web): pause the Pull Requests poll while the workspace rail is collapsed ([#12047](https://github.com/omnigent-ai/omnigent/pull/12047), [@hzub](https://github.com/hzub)) - [Bug fix] fix(elicitation): recover prompts whose answer landed on another replica ([#12051](https://github.com/omnigent-ai/omnigent/pull/12051), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [Bug fix] fix(server): attribute WebSocket debug logs to the connecting user ([#12052](https://github.com/omnigent-ai/omnigent/pull/12052), [@aravind-segu](https://github.com/aravind-segu)) - [UI / Bug fix] fix(web): restore Mermaid PNG downloads for multiline labels ([#12056](https://github.com/omnigent-ai/omnigent/pull/12056), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Bug fix] fix(web): recover pre-session skills after transient discovery failures ([#12057](https://github.com/omnigent-ai/omnigent/pull/12057), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Bug fix] fix(web): use consistent model names across chats ([#12059](https://github.com/omnigent-ai/omnigent/pull/12059), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] Native Pi sessions cache and refresh configured auth tokens so slow token commands do not time out on every model request. ([#12060](https://github.com/omnigent-ai/omnigent/pull/12060), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] fix(runner): record the last pane when a native agent dies during startup ([#12064](https://github.com/omnigent-ai/omnigent/pull/12064), [@aravind-segu](https://github.com/aravind-segu)) - [Bug fix] fix(codex): name a missing model provider when the app-server exits ([#12066](https://github.com/omnigent-ai/omnigent/pull/12066), [@aravind-segu](https://github.com/aravind-segu)) - [Bug fix] fix(claude-native): dismiss panels that appear during readiness ([#12070](https://github.com/omnigent-ai/omnigent/pull/12070), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(server): preserve runner crash causes after shutdown logs ([#12073](https://github.com/omnigent-ai/omnigent/pull/12073), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(pi-native): refresh cached credentials in the session workspace ([#12075](https://github.com/omnigent-ai/omnigent/pull/12075), [@PattaraS](https://github.com/PattaraS)) - [Feature] feat: carry session client surfaces into harness launches ([#12077](https://github.com/omnigent-ai/omnigent/pull/12077), [@yaoharry](https://github.com/yaoharry)) - [Chore] Cap MySQL BLOB metadata documents at 65,535 stored bytes ([#12078](https://github.com/omnigent-ai/omnigent/pull/12078), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [Chore] chore: correlate daemon attachment requests and binding changes ([#12079](https://github.com/omnigent-ai/omnigent/pull/12079), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] Claude Code sessions and the Claude Code model picker now work on machines with an enterprise `managed-mcp.json`; those sessions run without Omnigent's MCP tools. ([#12080](https://github.com/omnigent-ai/omnigent/pull/12080), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Feature] Automations can watch Jira, Slack, or GitHub: pick a trigger template, describe what to match and what to do, and each hourly run starts one session per new ticket, message, or issue. ([#12084](https://github.com/omnigent-ai/omnigent/pull/12084), [@TomeHirata](https://github.com/TomeHirata)) - [UI] Show a write that creates a file like an edit, counted and diffed ([#12088](https://github.com/omnigent-ai/omnigent/pull/12088), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix] fix(web): keep an expanded tool output expanded while it streams ([#12091](https://github.com/omnigent-ai/omnigent/pull/12091), [@bbqiu](https://github.com/bbqiu)) - [Feature] perf(native): answer policy hooks in the shell while no policies apply ([#12092](https://github.com/omnigent-ai/omnigent/pull/12092), [@bbqiu](https://github.com/bbqiu)) - [UI / Bug fix] fix(web): bring a queued message back to the composer after a reload ([#12093](https://github.com/omnigent-ai/omnigent/pull/12093), [@bbqiu](https://github.com/bbqiu)) - [UI / Feature] A project's New session opens with the agent, model, effort, and working directory of the last session you started in that project. ([#12094](https://github.com/omnigent-ai/omnigent/pull/12094), [@bbqiu](https://github.com/bbqiu)) - [UI / Feature] Sidebar project folders list five sessions at a time, with Show more to list five more ([#12096](https://github.com/omnigent-ai/omnigent/pull/12096), [@bbqiu](https://github.com/bbqiu)) - [Chore] fix(onboarding): name why a harness install failed instead of its exit code ([#12097](https://github.com/omnigent-ai/omnigent/pull/12097), [@kharerajat2014](https://github.com/kharerajat2014)) - perf(native): post tool observations to the relay with curl ([#12103](https://github.com/omnigent-ai/omnigent/pull/12103), [@bbqiu](https://github.com/bbqiu)) - [UI / Bug fix] fix(web): paint an opened transcript at its end from the first frame ([#12104](https://github.com/omnigent-ai/omnigent/pull/12104), [@bbqiu](https://github.com/bbqiu)) - [Feature] feat(runner): report what holds the runner thread pool when offloads back up ([#12107](https://github.com/omnigent-ai/omnigent/pull/12107), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Bug fix] fix(web): keep a following reader at the end when a reply finishes ([#12109](https://github.com/omnigent-ai/omnigent/pull/12109), [@bbqiu](https://github.com/bbqiu)) - [Bug fix / Docs] Imported Pi sessions preserve compaction summaries when continuing, while keeping their readable history. ([#12111](https://github.com/omnigent-ai/omnigent/pull/12111), [@PattaraS](https://github.com/PattaraS)) - [UI / Feature] Searching in the command palette (⌘K) now finds archived sessions and marks them Archived ([#12112](https://github.com/omnigent-ai/omnigent/pull/12112), [@bbqiu](https://github.com/bbqiu)) - [Bug fix] fix(codex): diagnose storage failures in provider auth ([#12113](https://github.com/omnigent-ai/omnigent/pull/12113), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] ci(e2e-ui): run browser-contract tests with the UI shards' worker count ([#12114](https://github.com/omnigent-ai/omnigent/pull/12114), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] Web terminals no longer print each command's name in front of its output when the shell names tmux windows, as zsh with oh-my-zsh does. ([#12115](https://github.com/omnigent-ai/omnigent/pull/12115), [@bbqiu](https://github.com/bbqiu)) - [Bug fix] fix(claude-native): stop a queued-message hint from looking like an unsent draft ([#12128](https://github.com/omnigent-ai/omnigent/pull/12128), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(server): wait longer for a runner the host confirmed spawning ([#12136](https://github.com/omnigent-ai/omnigent/pull/12136), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Codex sessions resumed on providers that pair tool results by position no longer fail with an invalid tool-message error. ([#12137](https://github.com/omnigent-ai/omnigent/pull/12137), [@yaoharry](https://github.com/yaoharry)) - [Bug fix / Chore] fix(claude-sdk): deny AskUserQuestion when its hook fails ([#12138](https://github.com/omnigent-ai/omnigent/pull/12138), [@serena-ruan](https://github.com/serena-ruan)) - [Test/CI] ci(e2e-ui): split browser-contract tests across two runners ([#12141](https://github.com/omnigent-ai/omnigent/pull/12141), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test: wait for complete Git SSH terminal result ([#12144](https://github.com/omnigent-ai/omnigent/pull/12144), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] fix(claude-native): name a terminal closed or tmux server killed outside Omnigent ([#12145](https://github.com/omnigent-ai/omnigent/pull/12145), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(codex-native): retry a launch whose thread another app-server still holds ([#12146](https://github.com/omnigent-ai/omnigent/pull/12146), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(runner): end a Claude turn as cancelled when Stop kills its terminal ([#12150](https://github.com/omnigent-ai/omnigent/pull/12150), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(runner): hold the idle watchdog for a native pane with live work ([#12153](https://github.com/omnigent-ai/omnigent/pull/12153), [@yaoharry](https://github.com/yaoharry)) - [UI / Feature] Cmd/Ctrl `+`, `-` and `0` inside an HTML file preview now zoom only the preview instead of the whole app ([#12154](https://github.com/omnigent-ai/omnigent/pull/12154), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Test/CI] test(host-launch): scale the connect-waiter wait as a hang guard ([#12155](https://github.com/omnigent-ai/omnigent/pull/12155), [@serena-ruan](https://github.com/serena-ruan)) - [Test/CI] test(desktop): skip the Chrome cookie sqlite reader where sqlite3 lacks JSON output ([#12156](https://github.com/omnigent-ai/omnigent/pull/12156), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test(server): wait on runner_exited logs with poll_until_async ([#12158](https://github.com/omnigent-ai/omnigent/pull/12158), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] Messages to Claude Code and other native terminal sessions no longer stall for minutes, or arrive twice, while the Changes or GitHub panel is slow on a large repository. ([#12159](https://github.com/omnigent-ai/omnigent/pull/12159), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] fix(runner): track every PR a batched shell create opens ([#12160](https://github.com/omnigent-ai/omnigent/pull/12160), [@bbqiu](https://github.com/bbqiu)) - [Test/CI] test: publish child PID atomically in cancelled Claude probe test ([#12162](https://github.com/omnigent-ai/omnigent/pull/12162), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Bug fix] Saving a Markdown file from the web editor now leaves the parts you didn't edit exactly as they were, instead of rewriting headings, lists, links, code blocks and tables ([#12163](https://github.com/omnigent-ai/omnigent/pull/12163), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix / Docs] Pi keeps your selected reasoning effort when switching models in an existing session. ([#12165](https://github.com/omnigent-ai/omnigent/pull/12165), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix] fix(web): keep a reply's actions hidden while its queued follow-up sends ([#12166](https://github.com/omnigent-ai/omnigent/pull/12166), [@bbqiu](https://github.com/bbqiu)) - [UI / Feature] A finished Codex turn folds its progress messages into one "Worked for …" row above the answer ([#12170](https://github.com/omnigent-ai/omnigent/pull/12170), [@bbqiu](https://github.com/bbqiu)) - [Bug fix] fix(host): read an absolute file target from the offline host fallback ([#12171](https://github.com/omnigent-ai/omnigent/pull/12171), [@hzub](https://github.com/hzub)) - [UI / Bug fix] fix(web): keep Working lit until a native agent picks up a sent message ([#12172](https://github.com/omnigent-ai/omnigent/pull/12172), [@bbqiu](https://github.com/bbqiu)) - [UI / Bug fix] fix(web): fold a finished turn's trace in place instead of jolting the answer ([#12174](https://github.com/omnigent-ai/omnigent/pull/12174), [@bbqiu](https://github.com/bbqiu)) - [UI / Bug fix] fix(web): make hidden panels actually inert so Tab can't shift the shell ([#12175](https://github.com/omnigent-ai/omnigent/pull/12175), [@serena-ruan](https://github.com/serena-ruan)) - [Test/CI] test(e2e-ui): cut ~3 min from two slow UI tests and make the sub-agent lull test able to fail ([#12177](https://github.com/omnigent-ai/omnigent/pull/12177), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix] fix(desktop): make Edit > Find reach off-screen transcript messages ([#12182](https://github.com/omnigent-ai/omnigent/pull/12182), [@hzub](https://github.com/hzub)) - [UI / Bug fix] You can close the Clone dialog while a large session is being cloned; a toast reports when the new session is ready. ([#12183](https://github.com/omnigent-ai/omnigent/pull/12183), [@hzub](https://github.com/hzub)) - [Bug fix] fix(pi-native): keep tool results ahead of messages sent during the call on cold resume ([#12184](https://github.com/omnigent-ai/omnigent/pull/12184), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] fix(onboarding): keep the installer timeout when a child holds stderr ([#12185](https://github.com/omnigent-ai/omnigent/pull/12185), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test(pi): recognize the persistent session link during routing startup ([#12187](https://github.com/omnigent-ai/omnigent/pull/12187), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] ci: split tests/db and tests/harnesses out of the misc pytest lane ([#12188](https://github.com/omnigent-ai/omnigent/pull/12188), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test: pin the reconnect jitter and scale the Codex startup deadline ([#12189](https://github.com/omnigent-ai/omnigent/pull/12189), [@PattaraS](https://github.com/PattaraS)) - [Feature] feat(automations): accept a delegation reference when creating a scheduled task ([#12190](https://github.com/omnigent-ai/omnigent/pull/12190), [@aravind-segu](https://github.com/aravind-segu)) - [Bug fix] fix(desktop): only open sign-in links the SSH machine is expected to print ([#12191](https://github.com/omnigent-ai/omnigent/pull/12191), [@PattaraS](https://github.com/PattaraS)) - [UI / Feature] The file editor's View settings menu has a Wrap lines toggle that wraps long lines at the pane edge; the choice is remembered and shared with the diff view. ([#12193](https://github.com/omnigent-ai/omnigent/pull/12193), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Track session PR refreshes by workspace as well as session id ([#12199](https://github.com/omnigent-ai/omnigent/pull/12199), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [Bug fix] Native terminals honor the configured runner idle timeout instead of closing after one hour. ([#12200](https://github.com/omnigent-ai/omnigent/pull/12200), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Bug fix / Test/CI] Opening Terminal automatically reconnects stopped sessions when their host is online, with manual retry available after a failure. ([#12201](https://github.com/omnigent-ai/omnigent/pull/12201), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Bug fix] fix(web): open linked folders in the Files tree instead of reporting them missing ([#12205](https://github.com/omnigent-ai/omnigent/pull/12205), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix] fix(claude-native): label messages from other sessions in chat ([#12206](https://github.com/omnigent-ai/omnigent/pull/12206), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] fix(server): keep a "/"-led queued message out of the lost list ([#12209](https://github.com/omnigent-ai/omnigent/pull/12209), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(host-launch): drop a removed connect-waiter timeout argument ([#12227](https://github.com/omnigent-ai/omnigent/pull/12227), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix / Docs / Test/CI] Answer Devin native questions directly in Chat or Inbox. ([#12231](https://github.com/omnigent-ai/omnigent/pull/12231), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] When a host restarts mid-turn, the session's runner is relaunched automatically; the interrupted turn reports that it was interrupted, and the next message runs without a manual resume. ([#12232](https://github.com/omnigent-ai/omnigent/pull/12232), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(server): report a connected runner's exit as a runner crash ([#12233](https://github.com/omnigent-ai/omnigent/pull/12233), [@yaoharry](https://github.com/yaoharry)) - [Docs / Test/CI] ci: expire Merge Ready results after 24 hours ([#12243](https://github.com/omnigent-ai/omnigent/pull/12243), [@dhruv0811](https://github.com/dhruv0811)) - [Chore] fix(deps): move brotli to 1.2.1 and virtualenv to 21.14.13 ([#12260](https://github.com/omnigent-ai/omnigent/pull/12260), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [Bug fix] fix(runner): name the cause when an agent spec fails to load ([#12261](https://github.com/omnigent-ai/omnigent/pull/12261), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix / Feature / Docs / Test/CI] feat(sandboxes): provider-owned profiles without database migrations ([#12265](https://github.com/omnigent-ai/omnigent/pull/12265), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] fix(auth): allow clock-skew leeway when validating OIDC id_token (OMNI-13438) ([#12271](https://github.com/omnigent-ai/omnigent/pull/12271), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix] fix(native): let the policy allow guard see event keys after closed metadata ([#12273](https://github.com/omnigent-ai/omnigent/pull/12273), [@bbqiu](https://github.com/bbqiu)) - perf(claude-native): post lifecycle hooks to the runner's relay with curl ([#12274](https://github.com/omnigent-ai/omnigent/pull/12274), [@bbqiu](https://github.com/bbqiu)) - perf(auth): resolve Databricks credentials once per launch, without the SDK for CLI profiles ([#12275](https://github.com/omnigent-ai/omnigent/pull/12275), [@bbqiu](https://github.com/bbqiu)) - [Chore] chore: remove PattaraS from area owners ([#12276](https://github.com/omnigent-ai/omnigent/pull/12276), [@PattaraS](https://github.com/PattaraS)) - [Chore] chore(triage): pause one more maintainer from issue assignment ([#12277](https://github.com/omnigent-ai/omnigent/pull/12277), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Feature] New automations always run on a host you pick (or a sandbox), and trigger automations sign what they post with "Sent with Omnigent" and warn when the agent lacks the Jira, Slack or GitHub tools they need. ([#12278](https://github.com/omnigent-ai/omnigent/pull/12278), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix] fix: enlarge mobile approval and plan touch targets ([#12281](https://github.com/omnigent-ai/omnigent/pull/12281), [@noelkonagai](https://github.com/noelkonagai)) - [Bug fix] Messages to a Claude Code session are delivered when another program's output was printed over Claude's input box, instead of failing with "input box could not be verified clear". ([#12284](https://github.com/omnigent-ai/omnigent/pull/12284), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(server): fail a side chat send the way its source would ([#12285](https://github.com/omnigent-ai/omnigent/pull/12285), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] `tmux` commands that Claude Code runs in an Omnigent session now reach your own tmux instead of closing Claude's terminal. ([#12290](https://github.com/omnigent-ai/omnigent/pull/12290), [@yaoharry](https://github.com/yaoharry)) - [UI / Feature] The composer highlights pull requests that need attention and previews each linked PR's status on hover or focus. ([#12296](https://github.com/omnigent-ai/omnigent/pull/12296), [@dhruv0811](https://github.com/dhruv0811)) - [Feature] Let a deployment pause the database scheduler and tune its poll interval live ([#12300](https://github.com/omnigent-ai/omnigent/pull/12300), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Bug fix] Choose multiple repositories when forking onto a compatible sandbox, with current pushed branches prefilled and a quiet fallback for local-only branches. ([#12301](https://github.com/omnigent-ai/omnigent/pull/12301), [@dhruv0811](https://github.com/dhruv0811)) - [Test/CI] test: synchronize terminal output with IME composition ([#12302](https://github.com/omnigent-ai/omnigent/pull/12302), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix / Feature] Changes groups sibling repositories and shows their complete current changes against HEAD, including deleted-file diffs. ([#12303](https://github.com/omnigent-ai/omnigent/pull/12303), [@dhruv0811](https://github.com/dhruv0811)) - [Feature / Docs / Test/CI] Sessions running on your computer can now open localhost apps in the desktop browser pane, through the agent, chat links and the address bar. ([#12305](https://github.com/omnigent-ai/omnigent/pull/12305), [@zhengwin](https://github.com/zhengwin)) - [Bug fix / Docs / Test/CI] fix(desktop): apply the agent network policy to subresources, WebSockets and workers ([#12306](https://github.com/omnigent-ai/omnigent/pull/12306), [@zhengwin](https://github.com/zhengwin)) - [Docs / Chore] refactor(desktop): name browser navigation policy enforcement for what it does ([#12307](https://github.com/omnigent-ai/omnigent/pull/12307), [@zhengwin](https://github.com/zhengwin)) - [UI / Bug fix / Feature] Recognized native edits outside Git preserve the first available original and explicitly show when the original is unavailable. ([#12308](https://github.com/omnigent-ai/omnigent/pull/12308), [@dhruv0811](https://github.com/dhruv0811)) - [Test/CI] ci(nightly-monitor): assign tracking issues to repo-automation owners ([#12311](https://github.com/omnigent-ai/omnigent/pull/12311), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix / Docs] A pull request panel failure stays inside the panel so chat and navigation remain available. ([#12312](https://github.com/omnigent-ai/omnigent/pull/12312), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Bug fix / Docs] fix(web): isolate page, drawer, and grid render failures ([#12313](https://github.com/omnigent-ai/omnigent/pull/12313), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Bug fix] fix(web): preserve PR panel state across session switches ([#12318](https://github.com/omnigent-ai/omnigent/pull/12318), [@daniellok-db](https://github.com/daniellok-db)) - [Docs / Chore / Test/CI] Attribute CI model usage to pipelines and GitHub runs ([#12320](https://github.com/omnigent-ai/omnigent/pull/12320), [@daniellok-db](https://github.com/daniellok-db)) - [Bug fix] fix(claude-native): preserve launcher installation prompts ([#12327](https://github.com/omnigent-ai/omnigent/pull/12327), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(claude-native): keep retired status pollers inactive ([#12330](https://github.com/omnigent-ai/omnigent/pull/12330), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(runner): keep old terminal callbacks out of replacement state ([#12331](https://github.com/omnigent-ai/omnigent/pull/12331), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(claude-native): find the input box under a title wider than the row ([#12335](https://github.com/omnigent-ai/omnigent/pull/12335), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(onboarding): report a failed harness upgrade as a failure ([#12337](https://github.com/omnigent-ai/omnigent/pull/12337), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] fix(server): keep a queued Claude ! command or exit word out of the lost list ([#12341](https://github.com/omnigent-ai/omnigent/pull/12341), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(claude-native): repaint a Claude Code the launcher runs outside the pane ([#12344](https://github.com/omnigent-ai/omnigent/pull/12344), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(claude-native): don't type a message into a full transcript disk ([#12349](https://github.com/omnigent-ai/omnigent/pull/12349), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] Restore app theme choices in embedded web and Electron ([#12350](https://github.com/omnigent-ai/omnigent/pull/12350), [@hzub](https://github.com/hzub)) - [UI / Feature] feat(ui): offer manual or template automation creation ([#12352](https://github.com/omnigent-ai/omnigent/pull/12352), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Feature / Docs / Test/CI] feat(web): add a first-visit Automations walkthrough ([#12353](https://github.com/omnigent-ai/omnigent/pull/12353), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] fix(models): read SDK worker catalogs for the CLI and route the child launches ([#12355](https://github.com/omnigent-ai/omnigent/pull/12355), [@PattaraS](https://github.com/PattaraS)) - [Docs] docs: explain separate child and peer messaging approval scopes ([#12356](https://github.com/omnigent-ai/omnigent/pull/12356), [@PattaraS](https://github.com/PattaraS)) - [UI / Feature / Chore / Test/CI] feat(ui): streamline automation setup and schedule controls ([#12357](https://github.com/omnigent-ai/omnigent/pull/12357), [@serena-ruan](https://github.com/serena-ruan)) - [Docs] docs: include Cursor in messaging approval rationale ([#12358](https://github.com/omnigent-ai/omnigent/pull/12358), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix] Preserve URL context through host-aware settings redirects ([#12359](https://github.com/omnigent-ai/omnigent/pull/12359), [@hzub](https://github.com/hzub)) - [UI] fix(web): simplify the trigger template help text ([#12371](https://github.com/omnigent-ai/omnigent/pull/12371), [@aravind-segu](https://github.com/aravind-segu)) - [UI / Bug fix] Text from dictation and snippet tools such as Wispr Flow lands in the composer again in Chrome 155+, and a new session's composer is focused once it's ready. ([#12373](https://github.com/omnigent-ai/omnigent/pull/12373), [@bbqiu](https://github.com/bbqiu)) - [UI] fix(web): clarify the trigger session cap and untrusted-source warning ([#12383](https://github.com/omnigent-ai/omnigent/pull/12383), [@aravind-segu](https://github.com/aravind-segu)) - [UI / Feature] feat(web): open the Codex approval-mode picker from /permissions ([#12384](https://github.com/omnigent-ai/omnigent/pull/12384), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] fix(pi): give the pre-turn gateway token refresh room on a busy host ([#12385](https://github.com/omnigent-ai/omnigent/pull/12385), [@Edwinhe03](https://github.com/Edwinhe03)) - [UI / Feature] Show sandbox reconnect progress in the host status dot ([#12387](https://github.com/omnigent-ai/omnigent/pull/12387), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Feature] Always steer is now on by default: follow-ups sent while the agent is working go into the running turn instead of the queue (turn it off in Settings → General). ([#12389](https://github.com/omnigent-ai/omnigent/pull/12389), [@bbqiu](https://github.com/bbqiu)) - [Bug fix] fix(claude-native): repaint Claude Code outside the pane before refusing ([#12390](https://github.com/omnigent-ai/omnigent/pull/12390), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] A message you send while Claude Code's input box can't be read, for example because a launcher printed over it, now waits for the box to clear and is then delivered, instead of failing. ([#12394](https://github.com/omnigent-ai/omnigent/pull/12394), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(automations): let the poll start Run now requests ([#12396](https://github.com/omnigent-ai/omnigent/pull/12396), [@aravind-segu](https://github.com/aravind-segu)) - [Bug fix] Native Codex terminals work again on Codex 0.166+ when a machine-managed Codex config sets the model provider. ([#12406](https://github.com/omnigent-ai/omnigent/pull/12406), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix] fix(electron): wait 30s before the reconnect overlay says the network is blocked ([#12409](https://github.com/omnigent-ai/omnigent/pull/12409), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Chore] chore(triage-v2): run issue prioritization as a team-owned prod job ([#12419](https://github.com/omnigent-ai/omnigent/pull/12419), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] fix(desktop): refuse an SSH connect to a server on this computer ([#12422](https://github.com/omnigent-ai/omnigent/pull/12422), [@PattaraS](https://github.com/PattaraS)) - [UI / Feature] feat(web): show example automations in the Automations walkthrough ([#12425](https://github.com/omnigent-ai/omnigent/pull/12425), [@TomeHirata](https://github.com/TomeHirata)) - [Chore / Breaking] The desktop app now runs on Electron 45.2.1 (Chromium 156) with current Chromium security fixes, and requires macOS 13 or later. ([#12436](https://github.com/omnigent-ai/omnigent/pull/12436), [@bbqiu](https://github.com/bbqiu)) - [UI / Bug fix / Docs / Test/CI] fix(web): open details directly for sessions with one PR ([#12445](https://github.com/omnigent-ai/omnigent/pull/12445), [@daniellok-db](https://github.com/daniellok-db)) - [Docs / Test/CI] ci(e2e): run the opencode-native journeys against a real OpenCode ([#12452](https://github.com/omnigent-ai/omnigent/pull/12452), [@PattaraS](https://github.com/PattaraS)) - chore(deps): bump notify from 8.2.0 to 8.2.1 in /dev/omnidev ([#12457](https://github.com/omnigent-ai/omnigent/pull/12457), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump tokio from 1.53.3 to 1.54.1 in /dev/omnidev ([#12458](https://github.com/omnigent-ai/omnigent/pull/12458), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump tokio in /tests/codex_parity/sidecar ([#12461](https://github.com/omnigent-ai/omnigent/pull/12461), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump ruby/setup-ruby from 1.329.0 to 1.335.0 ([#12474](https://github.com/omnigent-ai/omnigent/pull/12474), [@dependabot[bot]](https://github.com/apps/dependabot)) - [Feature] Automation runs tell the agent that no one is watching, so it works toward the goal instead of stopping to ask questions or for permission. The note appears in the run's session after the prompt; the automation keeps the prompt as written. ([#12501](https://github.com/omnigent-ai/omnigent/pull/12501), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix / Feature / Docs / Test/CI] Improve automation template discovery with gallery tabs ([#12502](https://github.com/omnigent-ai/omnigent/pull/12502), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Bug fix] Disable automation workspace browsing for offline connected hosts ([#12506](https://github.com/omnigent-ai/omnigent/pull/12506), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix / Test/CI] Fix PID publication race in Claude model probe test ([#12510](https://github.com/omnigent-ai/omnigent/pull/12510), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix / Test/CI] fix(polly): keep reviews running through subagent completion ([#12512](https://github.com/omnigent-ai/omnigent/pull/12512), [@daniellok-db](https://github.com/daniellok-db)) - [Bug fix] fix(runner): support managed IDs in session messaging ([#12513](https://github.com/omnigent-ai/omnigent/pull/12513), [@serena-ruan](https://github.com/serena-ruan)) - [Test/CI] Fix flaky dispatch scheduler tests ([#12514](https://github.com/omnigent-ai/omnigent/pull/12514), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix / Test/CI] Show complete automation approval context and validate runner origin ([#12515](https://github.com/omnigent-ai/omnigent/pull/12515), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] fix(codex): repair surrogate text when writing private config ([#12521](https://github.com/omnigent-ai/omnigent/pull/12521), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(harnesses): escape surrogate text during runner forwarding ([#12524](https://github.com/omnigent-ai/omnigent/pull/12524), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(claude-native): disable unsupported gateway advisor tools ([#12526](https://github.com/omnigent-ai/omnigent/pull/12526), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(runner): cancel live streams after clean terminal exits ([#12527](https://github.com/omnigent-ai/omnigent/pull/12527), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] fix(web): disable launch settings for continued automation sessions ([#12532](https://github.com/omnigent-ai/omnigent/pull/12532), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] fix(codex-native): report an IP access list refusal as a turn failure ([#12534](https://github.com/omnigent-ai/omnigent/pull/12534), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(claude-native): confirm a 1M model pick by the name Claude reports ([#12537](https://github.com/omnigent-ai/omnigent/pull/12537), [@yaoharry](https://github.com/yaoharry)) - [Bug fix / Test/CI] Clarify automation agent-switch permissions and tighten regression coverage ([#12538](https://github.com/omnigent-ai/omnigent/pull/12538), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] Automations and agents in sessions shared view-only can message your other sessions and start workers again; only edit sharing blocks them ([#12543](https://github.com/omnigent-ai/omnigent/pull/12543), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix] Pi sessions that use an Omnigent-provided model now apply your global `~/.pi/agent/AGENTS.md`, unless the agent sets `context_files: false`. ([#12545](https://github.com/omnigent-ai/omnigent/pull/12545), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] fix(codex-native): don't let a stuck subscription block session delivery ([#12551](https://github.com/omnigent-ai/omnigent/pull/12551), [@Edwinhe03](https://github.com/Edwinhe03)) - [UI / Bug fix] Onboarding recovery steps now appear separately from error messages. ([#12565](https://github.com/omnigent-ai/omnigent/pull/12565), [@noelkonagai](https://github.com/noelkonagai)) - [Bug fix] fix(terminals): preserve replacements during stale launch cleanup ([#12578](https://github.com/omnigent-ai/omnigent/pull/12578), [@yaoharry](https://github.com/yaoharry)) - [Bug fix / Docs] Chats no longer stay stuck working when a returning host replaces their runner. ([#12579](https://github.com/omnigent-ai/omnigent/pull/12579), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(runner): wait for OSC peer startup before sending error input ([#12588](https://github.com/omnigent-ai/omnigent/pull/12588), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(claude-native): isolate provider mocks from workflow imports ([#12598](https://github.com/omnigent-ai/omnigent/pull/12598), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] The "Require Approval for File & Shell Operations" policy now also asks before terminal tools launch, type into, read, or close a terminal ([#12712](https://github.com/omnigent-ai/omnigent/pull/12712), [@dbczumar](https://github.com/dbczumar)) ## [v0.20.0] — 2026-10-27 - [Bug fix] Claude Code plugin commands now appear in the composer's `/` menu next to the plugin's skills, including commands in subdirectories and those declared in the plugin manifest. ([#6512](https://github.com/omnigent-ai/omnigent/pull/6512), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] fix(harnesses): replay tool-call history into forked Claude SDK and OpenAI Agents sessions ([#6574](https://github.com/omnigent-ai/omnigent/pull/6574), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] fix(files): stop listing Omnigent's injected .cursor plumbing as session changes ([#6709](https://github.com/omnigent-ai/omnigent/pull/6709), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix / Test/CI] Pi model pickers honor native enabledModels patterns while retaining the current model. ([#7064](https://github.com/omnigent-ai/omnigent/pull/7064), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] fix(antigravity-native): notify the old conversation after /clear ([#7293](https://github.com/omnigent-ai/omnigent/pull/7293), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix / Docs / Test/CI] `harness: pi` agent bundles now load their `.pi/extensions`, `.pi/skills` and bundle-root `AGENTS.md` in sessions, including under an `os_env` sandbox. ([#7715](https://github.com/omnigent-ai/omnigent/pull/7715), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix / Test/CI] Resumed Pi own-login sessions keep their selected provider and model instead of being rewritten through the default gateway. ([#7725](https://github.com/omnigent-ai/omnigent/pull/7725), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix] A `.tsv` file can be attached from the web composer, matching the file types the server already accepts. ([#7729](https://github.com/omnigent-ai/omnigent/pull/7729), [@lavneethora](https://github.com/lavneethora)) - [UI / Bug fix] The Pull Requests tab shows cancelled and skipped checks in their own grey pills instead of counting them as failed or passed. ([#7746](https://github.com/omnigent-ai/omnigent/pull/7746), [@daniellok-db](https://github.com/daniellok-db)) - [Bug fix] fix(opencode-native): deep-merge all user config files like opencode does ([#7827](https://github.com/omnigent-ai/omnigent/pull/7827), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Claude's New Chat model picker and in-session selector now list the same models, and on machines with Claude Code managed settings they show the managed gateway that inference actually uses. ([#7854](https://github.com/omnigent-ai/omnigent/pull/7854), [@Edwinhe03](https://github.com/Edwinhe03)) - [Bug fix] A repository URL containing credentials is now refused in the sandbox repository field instead of failing the session create, so the token never leaves the browser. ([#7856](https://github.com/omnigent-ai/omnigent/pull/7856), [@lavneethora](https://github.com/lavneethora)) - [Feature] Add a top-level `tool_groups:` block so an agent can switch off the browser, scheduled-task, comment, policy, or agent-discovery tool groups it cannot use and keep its advertised tool payload within a provider's limit. ([#8584](https://github.com/omnigent-ai/omnigent/pull/8584), [@jsonmp-k8](https://github.com/jsonmp-k8)) - [Bug fix] Claude-native sessions, including Polly sub-agent dispatches, no longer leave a multi-line or long prompt unsent in Claude Code's input box. ([#8997](https://github.com/omnigent-ai/omnigent/pull/8997), [@fabriciodelocco](https://github.com/fabriciodelocco)) - [Bug fix] claude-sdk sessions no longer record each tool call twice after the model uses Claude Code's `Skill` or `ToolSearch` tool ([#9033](https://github.com/omnigent-ai/omnigent/pull/9033), [@lin826](https://github.com/lin826)) - [Chore / Test/CI] chore(deps): align KaTeX renderers and styles on 0.18.10 ([#9181](https://github.com/omnigent-ai/omnigent/pull/9181), [@dependabot[bot]](https://github.com/apps/dependabot)) - [Docs] N/A (documentation only). ([#9224](https://github.com/omnigent-ai/omnigent/pull/9224), [@lavneethora](https://github.com/lavneethora)) - [UI / Bug fix] fix(web): keep the macOS shell's narrow-window controls clear of the traffic lights ([#9225](https://github.com/omnigent-ai/omnigent/pull/9225), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix] Custom agents that run on a native harness such as Claude Code — including extra built-ins seeded with `OMNIGENT_BUILTIN_AGENT_DIRS` — now appear in the New Chat and Project settings agent pickers as their own rows, named by their own name, instead of being labelled with or hidden behind the stock harness entry. ([#9269](https://github.com/omnigent-ai/omnigent/pull/9269), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix / Docs / Test/CI] Session cost and token usage keep updating after the Pi process behind a ([#9336](https://github.com/omnigent-ai/omnigent/pull/9336), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Feature / Docs] Databricks Sandboxes as managed hosts, created and run as each user through their Databricks account connection, with no SSH and no shared credential inside the Sandbox ([#9475](https://github.com/omnigent-ai/omnigent/pull/9475), [@randypitcherii](https://github.com/randypitcherii)) - [Bug fix / Test/CI] fix(runner): log and cover a file download that shrinks mid-stream ([#9582](https://github.com/omnigent-ai/omnigent/pull/9582), [@jsonmp-k8](https://github.com/jsonmp-k8)) - [Bug fix] Resuming a native-harness session no longer fails with a misleading ([#9687](https://github.com/omnigent-ai/omnigent/pull/9687), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] fix(codex): crash-reap the native model-probe app-server ([#9704](https://github.com/omnigent-ai/omnigent/pull/9704), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix / Docs / Test/CI] Kiro approvals: show unconfirmed delivery and offer manual retry ([#9843](https://github.com/omnigent-ai/omnigent/pull/9843), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix] The Terminal view now explains why a session's harness stopped (for example a runner that failed to start) instead of showing only a generic "not running" message. ([#9871](https://github.com/omnigent-ai/omnigent/pull/9871), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] A multi-line draft left in the Claude terminal is no longer sent along with a message or setting change from the web. ([#9880](https://github.com/omnigent-ai/omnigent/pull/9880), [@craiuconstantintiberiu](https://github.com/craiuconstantintiberiu)) - [Bug fix] Fix nightly reconnect E2E: stop counting the undelivered-message notice as a Claude reply ([#9892](https://github.com/omnigent-ai/omnigent/pull/9892), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Hosts now forward `OMNIGENT_NATIVE_PANE_IDLE_TIMEOUT_S` and `OMNIGENT_HARNESS_IDLE_TIMEOUT_S` to their runners, allowing idle reaping to be tuned or disabled for hosts run as a service. ([#9908](https://github.com/omnigent-ai/omnigent/pull/9908), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Feature] fix(web): offer Copy path when right-clicking a chat file link ([#9910](https://github.com/omnigent-ai/omnigent/pull/9910), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [Bug fix] The terminal REPL no longer auto-approves a pending policy approval when a different elicitation in the session is resolved; only your answer, or a resolution of that same approval from another client, settles it. ([#9913](https://github.com/omnigent-ai/omnigent/pull/9913), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] fix(codex): retain refused input while compaction settles ([#9919](https://github.com/omnigent-ai/omnigent/pull/9919), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(host): answer the server when the launch handler raises ([#10030](https://github.com/omnigent-ai/omnigent/pull/10030), [@kharerajat2014](https://github.com/kharerajat2014)) - [Feature / Docs] Servers can deliver more attachment types to Claude Code and Codex sessions as files with `filesystem_attachment_allowed_extensions`, including `"*"` for every file that can't be inlined. ([#10045](https://github.com/omnigent-ai/omnigent/pull/10045), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [Bug fix] `omnigent host` reuses the running host daemon when another URL points at the same Databricks workspace, instead of starting a second daemon that keeps taking over its connection. ([#10056](https://github.com/omnigent-ai/omnigent/pull/10056), [@bbqiu](https://github.com/bbqiu)) - [UI / Bug fix] fix(web): withhold the selection Reply popup when the composer is read-only ([#10078](https://github.com/omnigent-ai/omnigent/pull/10078), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Claude Code sessions keep their compacted context after an Omnigent restart instead of resuming with the full pre-compaction history. ([#10088](https://github.com/omnigent-ai/omnigent/pull/10088), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Claude SDK agents whose host has no working Claude Code login now fail with "Claude Code could not authenticate" and a next step (sign in with `claude auth login` or configure a credential) instead of Claude Code's raw error text. ([#10145](https://github.com/omnigent-ai/omnigent/pull/10145), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix] fix(web): anchor repeated Markdown words to their source positions ([#10187](https://github.com/omnigent-ai/omnigent/pull/10187), [@serena-ruan](https://github.com/serena-ruan)) - [Chore] chore(ios): auto-pick an installed iPhone simulator in just run-ios ([#10191](https://github.com/omnigent-ai/omnigent/pull/10191), [@erifyc1](https://github.com/erifyc1)) - chore(deps): bump cursor-sdk from 0.1.7 to 1.0.37 ([#10234](https://github.com/omnigent-ai/omnigent/pull/10234), [@dependabot[bot]](https://github.com/apps/dependabot)) - [Bug fix / Test/CI] Pi sessions keep saved own-login models after restart even when those models are hidden from the picker. ([#10269](https://github.com/omnigent-ai/omnigent/pull/10269), [@PattaraS](https://github.com/PattaraS)) - [Bug fix / Docs / Test/CI] Pi Smart Routing applies the selected model from both the composer and native terminal. ([#10274](https://github.com/omnigent-ai/omnigent/pull/10274), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test(runner): cover the MCP execute, summarize and elicitation routes (29% → 99%) ([#10276](https://github.com/omnigent-ai/omnigent/pull/10276), [@jsonmp-k8](https://github.com/jsonmp-k8)) - [Bug fix / Test/CI] Pi handles typed-text replies and distinct tool-call IDs through the MLflow Chat gateway, preserving Gemini tool signatures across subsequent requests. ([#10278](https://github.com/omnigent-ai/omnigent/pull/10278), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] fix(web): recover a missed model report before failing a native first message ([#10294](https://github.com/omnigent-ai/omnigent/pull/10294), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [Feature] feat(harnesses): attribute Unity Gateway requests to the coding agent and Omnigent ([#10410](https://github.com/omnigent-ai/omnigent/pull/10410), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] fix(web): keep sidebar menu tooltips closed when their menu closes ([#10463](https://github.com/omnigent-ai/omnigent/pull/10463), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix / Feature / Docs / Test/CI] Configure native Antigravity with Gemini API gateways or Databricks profiles through `omni setup`; existing gateways retain their routing until Gemini is explicitly selected. ([#10465](https://github.com/omnigent-ai/omnigent/pull/10465), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] An idle Claude Code session no longer keeps re-reading its transcript and finished sub-agent files when one sub-agent's spawn record is missing, so runner CPU no longer grows with those files' size. ([#10485](https://github.com/omnigent-ai/omnigent/pull/10485), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix / Docs / Test/CI] Native Pi forks and cold resumes preserve matched tool-result names required by Gemini. ([#10488](https://github.com/omnigent-ai/omnigent/pull/10488), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Docs / Chore] chore(logging): name the failing launch step on native startup failures ([#10536](https://github.com/omnigent-ai/omnigent/pull/10536), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(codex-native): respawn a silent app-server once on the same transport ([#10556](https://github.com/omnigent-ai/omnigent/pull/10556), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] fix(claude-native): clear a typed shell command that blocks web input ([#10667](https://github.com/omnigent-ai/omnigent/pull/10667), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(cli): let running turns finish before host enable replaces the host ([#10673](https://github.com/omnigent-ai/omnigent/pull/10673), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Pi-native sessions keep mirroring replies past the server token lifetime when you type directly in the Pi terminal. ([#10700](https://github.com/omnigent-ai/omnigent/pull/10700), [@remenberl](https://github.com/remenberl)) - [Bug fix / Feature / Chore / Test/CI] `omnigent run --server ` consistently discovers registered agents, requires `--agent ` for headless runs with multiple choices, launches runners on this machine's connected host for new interactive and one-shot sessions, and cleans up runners launched for one-shots. ([#10744](https://github.com/omnigent-ai/omnigent/pull/10744), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] Allow nested bubblewrap on Phoenix hosts ([#10749](https://github.com/omnigent-ai/omnigent/pull/10749), [@serena-ruan](https://github.com/serena-ruan)) - [Chore] fix(claude-native): say when Claude queued a web message, and which build did ([#10764](https://github.com/omnigent-ai/omnigent/pull/10764), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] fix(web): open files from harness file-tool rows in the FileViewer ([#10766](https://github.com/omnigent-ai/omnigent/pull/10766), [@zhengwin](https://github.com/zhengwin)) - [UI / Bug fix / Feature / Docs / Chore / Test/CI] Pi extension confirmations and input prompts appear as Omnigent cards and return answers without stopping the session. ([#10768](https://github.com/omnigent-ai/omnigent/pull/10768), [@PattaraS](https://github.com/PattaraS)) - [UI / Feature] Add runner-backed workspace content search ([#10780](https://github.com/omnigent-ai/omnigent/pull/10780), [@hzub](https://github.com/hzub)) - chore(deps): bump lucide-react from 1.25.0 to 1.57.0 ([#10805](https://github.com/omnigent-ai/omnigent/pull/10805), [@dependabot[bot]](https://github.com/apps/dependabot)) - [Chore] chore(deps): bump @shikijs/monaco from 4.2.0 to 4.5.0 ([#10811](https://github.com/omnigent-ai/omnigent/pull/10811), [@dependabot[bot]](https://github.com/apps/dependabot)) - [Chore] chore(deps): bump kubernetes from 36.0.2 to 37.0.1 ([#10812](https://github.com/omnigent-ai/omnigent/pull/10812), [@dependabot[bot]](https://github.com/apps/dependabot)) - [Bug fix / Feature / Docs / Test/CI] feat(preferences): persist shared edits, retries, and conflicts ([#10826](https://github.com/omnigent-ai/omnigent/pull/10826), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] fix(cursor): surface approval cards after a cold-resumed relaunch ([#10835](https://github.com/omnigent-ai/omnigent/pull/10835), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix] fix(github): show submitted review bodies in PR comments ([#10855](https://github.com/omnigent-ai/omnigent/pull/10855), [@fanzeyi](https://github.com/fanzeyi)) - [UI] fix(web): list a connected Arca host under My machines on desktop ([#10860](https://github.com/omnigent-ai/omnigent/pull/10860), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] fix(claude-native): close side chats after idle cleanup ([#10861](https://github.com/omnigent-ai/omnigent/pull/10861), [@fanzeyi](https://github.com/fanzeyi)) - [Chore] fix(auth): log why Databricks SDK auth failed to resolve ([#10865](https://github.com/omnigent-ai/omnigent/pull/10865), [@Edwinhe03](https://github.com/Edwinhe03)) - [Chore / Test/CI] chore(deps): upgrade Ruff to 0.17.0 and apply compatibility cleanup ([#10879](https://github.com/omnigent-ai/omnigent/pull/10879), [@dependabot[bot]](https://github.com/apps/dependabot)) - [Chore] chore(deps): bump radix-ui from 1.7.0 to 1.8.1 ([#10883](https://github.com/omnigent-ai/omnigent/pull/10883), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump @streamdown/mermaid from 1.0.2 to 1.0.3 ([#10886](https://github.com/omnigent-ai/omnigent/pull/10886), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump wrangler from 4.129.0 to 4.149.0 ([#10887](https://github.com/omnigent-ai/omnigent/pull/10887), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump actions/setup-java from 4.8.0 to 6.1.0 ([#10895](https://github.com/omnigent-ai/omnigent/pull/10895), [@dependabot[bot]](https://github.com/apps/dependabot)) - [Bug fix] Closing a desktop window with Cmd+W while the find bar is open no longer shows a "JavaScript error occurred in the main process" dialog ([#10902](https://github.com/omnigent-ai/omnigent/pull/10902), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] perf(web): keep cached folder listings visible while they refresh ([#10903](https://github.com/omnigent-ai/omnigent/pull/10903), [@yaoharry](https://github.com/yaoharry)) - [Bug fix / Docs / Breaking] Local single-user HTTP agent uploads and configuration edits now enforce the same bundle restrictions as multi-user servers; bundles with server-side callable/source-file tools, unregistered policy handlers, or absolute/escaping working directories must migrate to operator startup registration or supported uploaded-agent settings. ([#10906](https://github.com/omnigent-ai/omnigent/pull/10906), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix] fix(host,server): stop only the runner a relaunch actually replaced ([#10908](https://github.com/omnigent-ai/omnigent/pull/10908), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Claude Code sessions no longer resend their initial prompt when the terminal restarts. ([#10911](https://github.com/omnigent-ai/omnigent/pull/10911), [@fanzeyi](https://github.com/fanzeyi)) - [Bug fix / Test/CI] ci: upgrade Codex and fix compatibility checks ([#10913](https://github.com/omnigent-ai/omnigent/pull/10913), [@PattaraS](https://github.com/PattaraS)) - [Bug fix / Test/CI] ci(merge-ready): re-read checks that lag their completed workflow run ([#10921](https://github.com/omnigent-ai/omnigent/pull/10921), [@PattaraS](https://github.com/PattaraS)) - [Bug fix / Docs / Test/CI] fix(cli): clarify Databricks prerequisite and verify host onboarding ([#10922](https://github.com/omnigent-ai/omnigent/pull/10922), [@PattaraS](https://github.com/PattaraS)) - [UI / Feature] feat(web): link CI checks to their runs in the PR panel ([#10944](https://github.com/omnigent-ai/omnigent/pull/10944), [@daniellok-db](https://github.com/daniellok-db)) - Bump version to 0.20.0.dev0 ([#10945](https://github.com/omnigent-ai/omnigent/pull/10945), [@omnigent-ci[bot]](https://github.com/apps/omnigent-ci)) - docs(changelog): record v0.19.0 ([#10946](https://github.com/omnigent-ai/omnigent/pull/10946), [@omnigent-ci[bot]](https://github.com/apps/omnigent-ci)) - [UI / Feature] Add feature-gated session grids with a shared workspace ([#10948](https://github.com/omnigent-ai/omnigent/pull/10948), [@hzub](https://github.com/hzub)) - [Test/CI] test(compat): expect registry MCP servers from 0.19.0 servers ([#10953](https://github.com/omnigent-ai/omnigent/pull/10953), [@daniellok-db](https://github.com/daniellok-db)) - [UI] fix(web): match the Workspace "+" to its neighbours and drop tab scroll arrows ([#10954](https://github.com/omnigent-ai/omnigent/pull/10954), [@daniellok-db](https://github.com/daniellok-db)) - [UI] fix(web): make the PR picker toolbar refresh button icon-only ([#10958](https://github.com/omnigent-ai/omnigent/pull/10958), [@daniellok-db](https://github.com/daniellok-db)) - [Bug fix] fix(codex-native): retry, then start fresh, when a resume finds no rollout ([#10961](https://github.com/omnigent-ai/omnigent/pull/10961), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Refuse Claude input injection when composer capture is unavailable ([#10965](https://github.com/omnigent-ai/omnigent/pull/10965), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix / Feature] `/clear` is available in the web chat for Claude Code and Codex sessions and starts a fresh context on the same machine; running `/clear` in a Codex terminal now moves the session view to the new chat too. ([#10966](https://github.com/omnigent-ai/omnigent/pull/10966), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix] fix(server): refuse a message to a session whose host-less runner is gone ([#10968](https://github.com/omnigent-ai/omnigent/pull/10968), [@yaoharry](https://github.com/yaoharry)) - [UI / Feature] feat: add include and exclude filters to workspace content search ([#10969](https://github.com/omnigent-ai/omnigent/pull/10969), [@hzub](https://github.com/hzub)) - [Chore] chore(deps): upgrade omnidev terminal dependencies together ([#10976](https://github.com/omnigent-ai/omnigent/pull/10976), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix / Chore / Test/CI] Fix grid recovery and share workspace resource discovery ([#10981](https://github.com/omnigent-ai/omnigent/pull/10981), [@hzub](https://github.com/hzub)) - [Feature] Extra OpenShell configuration ([#10996](https://github.com/omnigent-ai/omnigent/pull/10996), [@SeanCondon](https://github.com/SeanCondon)) - [Bug fix] fix(server): let in-flight managed launches bind their host before shutdown ([#10999](https://github.com/omnigent-ai/omnigent/pull/10999), [@Edwinhe03](https://github.com/Edwinhe03)) - [UI] feat(sharing): nest host scope under default sharing toggle ([#11010](https://github.com/omnigent-ai/omnigent/pull/11010), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Bug fix / Docs] fix(web): hide dbcert banner in unsupported desktop shells ([#11013](https://github.com/omnigent-ai/omnigent/pull/11013), [@fanzeyi](https://github.com/fanzeyi)) - [UI / Bug fix / Docs] fix(web): preserve remote dbcert renewal without Electron ([#11020](https://github.com/omnigent-ai/omnigent/pull/11020), [@fanzeyi](https://github.com/fanzeyi)) - [UI / Bug fix / Docs / Test/CI] The desktop app checks laptop credentials before creating an Arclet sandbox, offers a refresh banner when needed, and lets you skip a pending check for that launch. ([#11023](https://github.com/omnigent-ai/omnigent/pull/11023), [@dbczumar](https://github.com/dbczumar)) - [UI / Feature] feat(grid): toggle chat and terminal per cell ([#11026](https://github.com/omnigent-ai/omnigent/pull/11026), [@hzub](https://github.com/hzub)) - [UI / Bug fix] fix(sandbox): block launch only when a provider is certain no model fits ([#11027](https://github.com/omnigent-ai/omnigent/pull/11027), [@Edwinhe03](https://github.com/Edwinhe03)) - [UI] Compact sharing settings into a described dropdown ([#11028](https://github.com/omnigent-ai/omnigent/pull/11028), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] A turn running on a laptop that sleeps or loses its network now waits for the laptop to come back, for up to 24 hours, instead of failing as disconnected. ([#11031](https://github.com/omnigent-ai/omnigent/pull/11031), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(server): reject a Claude model the terminal can't select as invalid input ([#11034](https://github.com/omnigent-ai/omnigent/pull/11034), [@yaoharry](https://github.com/yaoharry)) - [Chore] fix(server): add log event when deferring runner session init ([#11040](https://github.com/omnigent-ai/omnigent/pull/11040), [@aravind-segu](https://github.com/aravind-segu)) - [UI] The embedded browser can now import the current site's cookies from your local ([#11048](https://github.com/omnigent-ai/omnigent/pull/11048), [@fanzeyi](https://github.com/fanzeyi)) - [Bug fix] Claude-native compaction preserves retained context and no longer repeats completion notifications while retrying snapshot saves. ([#11052](https://github.com/omnigent-ai/omnigent/pull/11052), [@fanzeyi](https://github.com/fanzeyi)) - [Bug fix] fix(claude-native): stamp the passed --effort as the session's reasoning effort ([#11053](https://github.com/omnigent-ai/omnigent/pull/11053), [@fanzeyi](https://github.com/fanzeyi)) - [Test/CI] chore: run Ruff lint fixes before formatting ([#11058](https://github.com/omnigent-ai/omnigent/pull/11058), [@droctothorpe](https://github.com/droctothorpe)) - [UI / Feature] Add and remove a GitHub pull request's labels from the Pull Requests tab ([#11059](https://github.com/omnigent-ai/omnigent/pull/11059), [@daniellok-db](https://github.com/daniellok-db)) - [Chore / Test/CI] chore: format Python examples in docstrings with Ruff ([#11060](https://github.com/omnigent-ai/omnigent/pull/11060), [@droctothorpe](https://github.com/droctothorpe)) - [Chore / Test/CI] chore: align Ruff with the Python 3.12 minimum ([#11061](https://github.com/omnigent-ai/omnigent/pull/11061), [@droctothorpe](https://github.com/droctothorpe)) - [Chore / Test/CI] chore: remove package-wide terminal lint exemptions ([#11062](https://github.com/omnigent-ai/omnigent/pull/11062), [@droctothorpe](https://github.com/droctothorpe)) - [Bug fix] fix(runner): keep native Codex credential lookup off the event loop ([#11063](https://github.com/omnigent-ai/omnigent/pull/11063), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(claude-native): send panel-only built-in commands as plain text ([#11065](https://github.com/omnigent-ai/omnigent/pull/11065), [@yaoharry](https://github.com/yaoharry)) - [Docs] docs(feature-agent): clarify checked demo uploads ([#11067](https://github.com/omnigent-ai/omnigent/pull/11067), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] Codex sessions recover a stopped native backend before sending a new message. ([#11068](https://github.com/omnigent-ai/omnigent/pull/11068), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(native): refresh approval hook credentials off the runner event loop ([#11070](https://github.com/omnigent-ai/omnigent/pull/11070), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(e2e): shorten Pi and Kimi regression wait budgets ([#11072](https://github.com/omnigent-ai/omnigent/pull/11072), [@PattaraS](https://github.com/PattaraS)) - [Bug fix / Docs / Chore / Test/CI] Allow routine Dependabot updates with full compatibility CI ([#11073](https://github.com/omnigent-ai/omnigent/pull/11073), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test: wait for parent dispatch reply before nudging a running child ([#11076](https://github.com/omnigent-ai/omnigent/pull/11076), [@PattaraS](https://github.com/PattaraS)) - chore(deps): bump aiohttp from 3.14.3 to 3.14.4 ([#11077](https://github.com/omnigent-ai/omnigent/pull/11077), [@dependabot[bot]](https://github.com/apps/dependabot)) - [Bug fix / Docs] fix(claude-sdk): generate background titles through user-settings Bedrock gateways ([#11078](https://github.com/omnigent-ai/omnigent/pull/11078), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Test/CI] test: shorten native startup and refused-delivery waits ([#11081](https://github.com/omnigent-ai/omnigent/pull/11081), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] fix(runner): resolve native title providers off the event loop ([#11082](https://github.com/omnigent-ai/omnigent/pull/11082), [@yaoharry](https://github.com/yaoharry)) - [Bug fix / Test/CI] fix(benchmarks): register policy for validated bundle uploads ([#11084](https://github.com/omnigent-ai/omnigent/pull/11084), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] fix(kimi-native): refresh hook credentials off the runner event loop ([#11086](https://github.com/omnigent-ai/omnigent/pull/11086), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test: shorten offline-host reconnect waits in UI coverage ([#11088](https://github.com/omnigent-ai/omnigent/pull/11088), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test: tolerate timer rounding in offline-host grace assertions ([#11092](https://github.com/omnigent-ai/omnigent/pull/11092), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] Opening a side chat no longer automatically repeats the main chat's unfinished work. ([#11095](https://github.com/omnigent-ai/omnigent/pull/11095), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Feature] feat(web): add session rename keyboard shortcut ([#11096](https://github.com/omnigent-ai/omnigent/pull/11096), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(runner): rebuild malformed cached agent bundles ([#11097](https://github.com/omnigent-ai/omnigent/pull/11097), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(codex-native): order replayed tool outputs across metadata ([#11100](https://github.com/omnigent-ai/omnigent/pull/11100), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(claude-native): wait through unreadable submit captures ([#11101](https://github.com/omnigent-ai/omnigent/pull/11101), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(runner): keep bundle resolution off the event loop ([#11103](https://github.com/omnigent-ai/omnigent/pull/11103), [@yaoharry](https://github.com/yaoharry)) - [Chore / Test/CI] Add scheduled-task dispatch schema migration ([#11111](https://github.com/omnigent-ai/omnigent/pull/11111), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] fix(server): guard offline sweeps after runner replacement ([#11116](https://github.com/omnigent-ai/omnigent/pull/11116), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix / Docs / Test/CI] fix(grid): desktop-only access and highlight all member sessions ([#11120](https://github.com/omnigent-ai/omnigent/pull/11120), [@hzub](https://github.com/hzub)) - [UI / Bug fix / Docs] fix: allow custom agent edits without revision headers ([#11121](https://github.com/omnigent-ai/omnigent/pull/11121), [@hzub](https://github.com/hzub)) - [Test/CI] test: stabilize Codex settings forwarding during startup ([#11122](https://github.com/omnigent-ai/omnigent/pull/11122), [@PattaraS](https://github.com/PattaraS)) - [Docs / Chore / Test/CI] Close PRs after 60 days of inactivity and a 14-day warning ([#11123](https://github.com/omnigent-ai/omnigent/pull/11123), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test: await cancelled mirror receipt publication ([#11124](https://github.com/omnigent-ai/omnigent/pull/11124), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test: drive sign-in wait outcomes with explicit events ([#11125](https://github.com/omnigent-ai/omnigent/pull/11125), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test: keep refused upstream port distinct from proxies ([#11126](https://github.com/omnigent-ai/omnigent/pull/11126), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test: replace scheduled time after picker focus settles ([#11127](https://github.com/omnigent-ai/omnigent/pull/11127), [@PattaraS](https://github.com/PattaraS)) - [UI / Feature] View MCP servers enabled for a running session with `/mcp` in the composer. ([#11128](https://github.com/omnigent-ai/omnigent/pull/11128), [@hzub](https://github.com/hzub)) - [Bug fix / Test/CI] fix(ci): separate Dependabot approval from merge readiness ([#11130](https://github.com/omnigent-ai/omnigent/pull/11130), [@PattaraS](https://github.com/PattaraS)) - chore(deps): bump aiohttp from 3.14.4 to 3.14.5 ([#11131](https://github.com/omnigent-ai/omnigent/pull/11131), [@dependabot[bot]](https://github.com/apps/dependabot)) - [UI / Bug fix] Show remote launch progress and keep discovery off session host pins ([#11133](https://github.com/omnigent-ai/omnigent/pull/11133), [@PattaraS](https://github.com/PattaraS)) - [Bug fix / Feature / Docs / Test/CI] Pi native agents now receive their agent spec’s instructions and can disable automatic context files or replace Pi’s base prompt. ([#11134](https://github.com/omnigent-ai/omnigent/pull/11134), [@PattaraS](https://github.com/PattaraS)) - [Chore / Test/CI] ci(stale): process least recently updated items first ([#11136](https://github.com/omnigent-ai/omnigent/pull/11136), [@PattaraS](https://github.com/PattaraS)) - [Feature / Test/CI] feat(claude-sdk): support the Claude Code system prompt preset ([#11137](https://github.com/omnigent-ai/omnigent/pull/11137), [@serena-ruan](https://github.com/serena-ruan)) - [Feature / Test/CI] feat(resolve): trial the Claude Code system prompt ([#11139](https://github.com/omnigent-ai/omnigent/pull/11139), [@serena-ruan](https://github.com/serena-ruan)) - [Test/CI] test: control Kiro child delivery abandonment grace ([#11140](https://github.com/omnigent-ai/omnigent/pull/11140), [@PattaraS](https://github.com/PattaraS)) - [Bug fix / Test/CI] fix(cli): preserve instruction files when applying overrides ([#11142](https://github.com/omnigent-ai/omnigent/pull/11142), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test: cancel idle parent teardown SSE readers ([#11144](https://github.com/omnigent-ai/omnigent/pull/11144), [@PattaraS](https://github.com/PattaraS)) - [Feature] Add the automations v2 feature flag ([#11145](https://github.com/omnigent-ai/omnigent/pull/11145), [@serena-ruan](https://github.com/serena-ruan)) - [Feature] Keep persistent task schedules stable across restarts ([#11146](https://github.com/omnigent-ai/omnigent/pull/11146), [@serena-ruan](https://github.com/serena-ruan)) - [Feature] Persist scheduled task claims and startup leases ([#11147](https://github.com/omnigent-ai/omnigent/pull/11147), [@serena-ruan](https://github.com/serena-ruan)) - [Feature] Dispatch due scheduled tasks and renew startup leases ([#11148](https://github.com/omnigent-ai/omnigent/pull/11148), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Feature] Merge a pull request, or turn off its auto-merge, from the Summary tab of the Pull Requests panel ([#11161](https://github.com/omnigent-ai/omnigent/pull/11161), [@daniellok-db](https://github.com/daniellok-db)) - [UI / Feature / Chore] Request reviews from people or teams, and withdraw pending requests, from the Pull Requests tab ([#11167](https://github.com/omnigent-ai/omnigent/pull/11167), [@daniellok-db](https://github.com/daniellok-db)) - [Bug fix] fix(pi-native): mint the per-turn bearer off the event loop ([#11183](https://github.com/omnigent-ai/omnigent/pull/11183), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [Chore] chore(security): add OSS Scanner Dockerfile and threat model ([#11189](https://github.com/omnigent-ai/omnigent/pull/11189), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix] Hosts for different workspaces behind one Databricks account URL (`?o=`) no longer reuse or retarget each other ([#11190](https://github.com/omnigent-ai/omnigent/pull/11190), [@Edwinhe03](https://github.com/Edwinhe03)) - [Bug fix] Android Databricks workspace sign-in can use a private callback instead of a verified HTTPS app link; register `ai.omnigent.android://mobile-redirect` for the public OAuth client before updating the app. ([#11191](https://github.com/omnigent-ai/omnigent/pull/11191), [@fanzeyi](https://github.com/fanzeyi)) - [Chore] chore(electron): bump desktop app version to 0.18.1 ([#11192](https://github.com/omnigent-ai/omnigent/pull/11192), [@fanzeyi](https://github.com/fanzeyi)) - [Chore] chore(deps): bump storybook from 10.6.1 to 10.6.2 ([#11193](https://github.com/omnigent-ai/omnigent/pull/11193), [@dependabot[bot]](https://github.com/apps/dependabot)) - [Chore] chore(deps): bump vite from 8.1.0 to 8.1.6 ([#11194](https://github.com/omnigent-ai/omnigent/pull/11194), [@dependabot[bot]](https://github.com/apps/dependabot)) - [Bug fix] fix(images): bump gh to 2.103.0 for the eMudhra CA compromise ([#11195](https://github.com/omnigent-ai/omnigent/pull/11195), [@lin826](https://github.com/lin826)) - [UI] feat(android): show app version and build in server selection ([#11199](https://github.com/omnigent-ai/omnigent/pull/11199), [@fanzeyi](https://github.com/fanzeyi)) - chore(deps): bump virtualenv from 21.14.5 to 21.14.7 ([#11201](https://github.com/omnigent-ai/omnigent/pull/11201), [@dependabot[bot]](https://github.com/apps/dependabot)) - [Bug fix / Test/CI] The server and desktop app no longer trust the compromised eMudhra intermediate CAs (certifi 2026.10.19, Electron 42.11.16) ([#11203](https://github.com/omnigent-ai/omnigent/pull/11203), [@fanzeyi](https://github.com/fanzeyi)) - [Test/CI] ci(stale): increase the cleanup budget to 1,000 operations ([#11204](https://github.com/omnigent-ai/omnigent/pull/11204), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix / Docs / Chore / Test/CI] Sandbox automations no longer lose their prompt when the server restarts or a different replica serves the sandbox, and their runs appear in history as soon as they fire. ([#11208](https://github.com/omnigent-ai/omnigent/pull/11208), [@aravind-segu](https://github.com/aravind-segu)) - [Bug fix / Test/CI] fix(host): preserve explicitly configured credentials in background hosts ([#11209](https://github.com/omnigent-ai/omnigent/pull/11209), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] A foreground `omnigent host` no longer freezes when its terminal stops reading output, for example after the terminal client disconnects. ([#11212](https://github.com/omnigent-ai/omnigent/pull/11212), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [UI / Feature] Open new chats with `?prompt=` links to review a prefilled message before sending. ([#11213](https://github.com/omnigent-ai/omnigent/pull/11213), [@yaoharry](https://github.com/yaoharry)) - [UI / Feature] feat(files): copy the absolute file path from the viewer header ([#11214](https://github.com/omnigent-ai/omnigent/pull/11214), [@fanzeyi](https://github.com/fanzeyi)) - docs(changelog): record v0.19.1 ([#11216](https://github.com/omnigent-ai/omnigent/pull/11216), [@omnigent-ci[bot]](https://github.com/apps/omnigent-ci)) - [Bug fix / Test/CI] fix(homebrew): honor uv.toml cooldown exemptions when resolving the formula ([#11217](https://github.com/omnigent-ai/omnigent/pull/11217), [@aravind-segu](https://github.com/aravind-segu)) - fix(claude-native): say what a blocked terminal needs when a model switch fails ([#11221](https://github.com/omnigent-ai/omnigent/pull/11221), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Feature] feat: report when a managed launch needs the user to act ([#11223](https://github.com/omnigent-ai/omnigent/pull/11223), [@dbczumar](https://github.com/dbczumar)) - [Test/CI] test: wait for managed automation failure transcript to persist ([#11224](https://github.com/omnigent-ai/omnigent/pull/11224), [@PattaraS](https://github.com/PattaraS)) - [Feature] Route native Codex's Databricks gateway and auth through ucode state ([#11226](https://github.com/omnigent-ai/omnigent/pull/11226), [@Edwinhe03](https://github.com/Edwinhe03)) - [Feature / Docs / Test/CI] Add explicit cloud configuration save and reviewed import ([#11227](https://github.com/omnigent-ai/omnigent/pull/11227), [@PattaraS](https://github.com/PattaraS)) - [Feature / Docs] feat(server): capture stacks during event-loop stalls ([#11228](https://github.com/omnigent-ai/omnigent/pull/11228), [@serena-ruan](https://github.com/serena-ruan)) - [Feature] feat(server): name the sandbox provider on launch-stage debug rows ([#11232](https://github.com/omnigent-ai/omnigent/pull/11232), [@dbczumar](https://github.com/dbczumar)) - [Test/CI] ci: run regular E2E across eight shards ([#11234](https://github.com/omnigent-ai/omnigent/pull/11234), [@PattaraS](https://github.com/PattaraS)) - [Chore / Test/CI] Clarify recurrence COUNT guards and cover calendar seeking ([#11236](https://github.com/omnigent-ai/omnigent/pull/11236), [@serena-ruan](https://github.com/serena-ruan)) - [Feature / Docs / Test/CI] Recover expired scheduled startups and clean up deleted tasks ([#11237](https://github.com/omnigent-ai/omnigent/pull/11237), [@serena-ruan](https://github.com/serena-ruan)) - [Test/CI] Isolate malformed-proxy CLI test from parallel server cleanup ([#11238](https://github.com/omnigent-ai/omnigent/pull/11238), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix / Test/CI] fix(ci): skip empty test matrices before expansion ([#11242](https://github.com/omnigent-ai/omnigent/pull/11242), [@PattaraS](https://github.com/PattaraS)) - [Bug fix / Docs / Test/CI] fix(pi): preserve native APPEND_SYSTEM.md rules with authored instructions ([#11243](https://github.com/omnigent-ai/omnigent/pull/11243), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test: avoid decades of reference iteration in schedule preview checks ([#11244](https://github.com/omnigent-ai/omnigent/pull/11244), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Feature] Shell commands in the chat now look like a terminal: `$ command`, its output and exit status in one block, with the raw parameters one click away ([#11245](https://github.com/omnigent-ai/omnigent/pull/11245), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test: allow slow disk writes in mixed-provider concurrency check ([#11246](https://github.com/omnigent-ai/omnigent/pull/11246), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] Exclude deleted scheduled tasks from list queries ([#11247](https://github.com/omnigent-ai/omnigent/pull/11247), [@serena-ruan](https://github.com/serena-ruan)) - [Test/CI] test: synchronize REPL cancellation with active request and follow-up reply ([#11248](https://github.com/omnigent-ai/omnigent/pull/11248), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Bug fix] fix(grid): improve workspace sizing and layout dragging ([#11249](https://github.com/omnigent-ai/omnigent/pull/11249), [@hzub](https://github.com/hzub)) - [Bug fix] Interrupting an opencode-native session now stops the running turn, and a sub-agent dispatch reports it as cancelled ([#11250](https://github.com/omnigent-ai/omnigent/pull/11250), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test: follow installed Pydantic error documentation version ([#11251](https://github.com/omnigent-ai/omnigent/pull/11251), [@PattaraS](https://github.com/PattaraS)) - [Docs] Clarify scheduled task cleanup and scheduler rollout documentation ([#11252](https://github.com/omnigent-ai/omnigent/pull/11252), [@serena-ruan](https://github.com/serena-ruan)) - [Test/CI] test(electron): match desktop feature expectations to the simulated platform ([#11253](https://github.com/omnigent-ai/omnigent/pull/11253), [@PattaraS](https://github.com/PattaraS)) - [UI / Feature] Edit a pull request's title and description, and paste images or videos into it, from the Pull Requests tab ([#11254](https://github.com/omnigent-ai/omnigent/pull/11254), [@daniellok-db](https://github.com/daniellok-db)) - [UI / Bug fix] fix(web): even out padding in the Link PR bar ([#11255](https://github.com/omnigent-ai/omnigent/pull/11255), [@daniellok-db](https://github.com/daniellok-db)) - [Chore] chore(deps): upgrade pinned Pi CLI to 1.3.0 ([#11260](https://github.com/omnigent-ai/omnigent/pull/11260), [@PattaraS](https://github.com/PattaraS)) - [UI / Feature] feat(web): split the terminal view into shell panes (flagged) ([#11261](https://github.com/omnigent-ai/omnigent/pull/11261), [@hzub](https://github.com/hzub)) - [Test/CI] test: allow slow MCP startup in native parent teardown ([#11262](https://github.com/omnigent-ai/omnigent/pull/11262), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix / Test/CI] ci: run visual snapshots on web dependency bumps and regenerate baselines ([#11263](https://github.com/omnigent-ai/omnigent/pull/11263), [@hzub](https://github.com/hzub)) - [Test/CI] test(e2e): keep the pi-native smart-routing launch transcript on failure ([#11265](https://github.com/omnigent-ai/omnigent/pull/11265), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] opencode-native sessions now start in workspaces whose path contains non-ASCII characters ([#11266](https://github.com/omnigent-ai/omnigent/pull/11266), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] Codex side chats opened after switching the main chat's model or effort now use the new settings instead of failing on an unsupported reasoning effort. ([#11267](https://github.com/omnigent-ai/omnigent/pull/11267), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] fix(pi): preserve reasoning capability for gateway GPT models ([#11269](https://github.com/omnigent-ai/omnigent/pull/11269), [@PattaraS](https://github.com/PattaraS)) - [Bug fix / Docs / Test/CI] fix(cli): omit host recovery advice for configuration copy errors ([#11270](https://github.com/omnigent-ai/omnigent/pull/11270), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] ci: install the pinned codex and pi CLIs for their real-CLI tests ([#11271](https://github.com/omnigent-ai/omnigent/pull/11271), [@PattaraS](https://github.com/PattaraS)) - [UI / Feature] Chat file links open line ranges like `file.ts:10-20` or `#L10-L20` with the range highlighted, and show just the file name, with the full path on hover ([#11273](https://github.com/omnigent-ai/omnigent/pull/11273), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix / Docs / Test/CI] Log late scheduler lease-write failures and clarify lifecycle behavior ([#11276](https://github.com/omnigent-ai/omnigent/pull/11276), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix / Feature / Docs / Test/CI] Wire persistent scheduling into the server behind automations_v2 ([#11278](https://github.com/omnigent-ai/omnigent/pull/11278), [@serena-ruan](https://github.com/serena-ruan)) - [UI] fix(grid): calmer active-pane styling and grid-aware sidebar highlight ([#11280](https://github.com/omnigent-ai/omnigent/pull/11280), [@hzub](https://github.com/hzub)) - [Chore] fix(deps): upgrade Pillow to 13.0.0 for image security fixes ([#11282](https://github.com/omnigent-ai/omnigent/pull/11282), [@PattaraS](https://github.com/PattaraS)) - [Chore] fix(deps): refresh compatible npm security patches ([#11283](https://github.com/omnigent-ai/omnigent/pull/11283), [@PattaraS](https://github.com/PattaraS)) - [Chore / Test/CI] chore(deps): remove vulnerable Tinypool via Vitest 4.1.12 ([#11287](https://github.com/omnigent-ai/omnigent/pull/11287), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] Finished native sessions no longer pile up on long-running hosts: idle panes are closed along with their forwarder, helper server and tool relay, and the next message brings the pane back. ([#11289](https://github.com/omnigent-ai/omnigent/pull/11289), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix] fix(web): preserve interleaved replies and pasted images in side chats ([#11301](https://github.com/omnigent-ai/omnigent/pull/11301), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] fix(codex-native): keep a model pick made while Codex is still relaunching ([#11303](https://github.com/omnigent-ai/omnigent/pull/11303), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(claude-native): report a launcher password prompt instead of timing out ([#11305](https://github.com/omnigent-ai/omnigent/pull/11305), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(cli): validate workspace selectors before saving login state ([#11311](https://github.com/omnigent-ai/omnigent/pull/11311), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] fix(server): prefer explicit native failure details over partial output ([#11316](https://github.com/omnigent-ai/omnigent/pull/11316), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(runner): keep native credential resolution off the event loop ([#11321](https://github.com/omnigent-ai/omnigent/pull/11321), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(claude-native): keep completed turns healthy when old failure hooks replay ([#11322](https://github.com/omnigent-ai/omnigent/pull/11322), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] Drag-selecting one line in a chat no longer jumps the selection to earlier messages when the drag ends beside or below the text ([#11324](https://github.com/omnigent-ai/omnigent/pull/11324), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix] Claude directory approvals now let you allow the displayed directories for the session without changing Auto mode. ([#11325](https://github.com/omnigent-ai/omnigent/pull/11325), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] fix(codex-native): drop interrupted history before ordering replay ([#11327](https://github.com/omnigent-ai/omnigent/pull/11327), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Claude web messages and controls no longer fail or include a leftover draft because it contains a box-drawing line. ([#11328](https://github.com/omnigent-ai/omnigent/pull/11328), [@yaoharry](https://github.com/yaoharry)) - [Chore] chore(logging): explain missing Claude failure context ([#11329](https://github.com/omnigent-ai/omnigent/pull/11329), [@yaoharry](https://github.com/yaoharry)) - [Docs / Chore] chore(runner): capture stacks while the event loop is stalled ([#11330](https://github.com/omnigent-ai/omnigent/pull/11330), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(runner): keep native policy setup responsive during auth ([#11332](https://github.com/omnigent-ai/omnigent/pull/11332), [@yaoharry](https://github.com/yaoharry)) - [Bug fix / Feature / Docs / Test/CI] feat: add private-owner session orchestration behind a release flag ([#11334](https://github.com/omnigent-ai/omnigent/pull/11334), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] fix(deps): allow Pillow 12.2+ so cooldown mirrors can still install ([#11335](https://github.com/omnigent-ai/omnigent/pull/11335), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Feature] `/mcp` shows whether each MCP service is connected and offers an inline Sign in when it is not ([#11338](https://github.com/omnigent-ai/omnigent/pull/11338), [@jsonmp-k8](https://github.com/jsonmp-k8)) - [UI / Feature] Press Shift+Tab in a running Claude, Codex, or Devin native session's chat composer to cycle its permission mode without leaving the keyboard. ([#11343](https://github.com/omnigent-ai/omnigent/pull/11343), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Docs / Test/CI] ci(deps): flag young dependency floors and require a second maintainer for waivers ([#11344](https://github.com/omnigent-ai/omnigent/pull/11344), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] fix(pi): don't warn of expired login when Pi's token command works ([#11345](https://github.com/omnigent-ai/omnigent/pull/11345), [@dbczumar](https://github.com/dbczumar)) - [Test/CI] test(resilience): reserve proxy ports during Linux refusal faults ([#11348](https://github.com/omnigent-ai/omnigent/pull/11348), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test(scheduled): synchronize heartbeat timeout setup ([#11355](https://github.com/omnigent-ai/omnigent/pull/11355), [@yaoharry](https://github.com/yaoharry)) - [Chore] chore(deps): upgrade markdown-it to 14.3.3 ([#11358](https://github.com/omnigent-ai/omnigent/pull/11358), [@PattaraS](https://github.com/PattaraS)) - [Chore] chore(deps): bump opentelemetry-api from 1.44.0 to 1.45.1 ([#11359](https://github.com/omnigent-ai/omnigent/pull/11359), [@dependabot[bot]](https://github.com/apps/dependabot)) - [Chore] chore(deps): bump gitpython from 3.1.62 to 3.2.1 ([#11360](https://github.com/omnigent-ai/omnigent/pull/11360), [@dependabot[bot]](https://github.com/apps/dependabot)) - [Chore] chore(deps): bump graphql-core from 3.2.11 to 3.2.12 ([#11361](https://github.com/omnigent-ai/omnigent/pull/11361), [@dependabot[bot]](https://github.com/apps/dependabot)) - [Docs / Test/CI] Clarify scheduler lifecycle contracts and extend regression coverage ([#11364](https://github.com/omnigent-ai/omnigent/pull/11364), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Bug fix] fix(web): explain the model picker wait while a disconnected session wakes ([#11365](https://github.com/omnigent-ai/omnigent/pull/11365), [@hzub](https://github.com/hzub)) - [Bug fix] Keep scheduler recovery and deletion cleanup progressing ([#11366](https://github.com/omnigent-ai/omnigent/pull/11366), [@serena-ruan](https://github.com/serena-ruan)) - [Docs / Chore] chore(server): trace runner initialization decisions and native input receipt ([#11371](https://github.com/omnigent-ai/omnigent/pull/11371), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Feature] Support a default reasoning effort in Project settings ([#11372](https://github.com/omnigent-ai/omnigent/pull/11372), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix / Test/CI] Reset scheduler recovery scan state on stop ([#11373](https://github.com/omnigent-ai/omnigent/pull/11373), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Feature / Docs] feat(web): offer a new git worktree when continuing in another directory ([#11376](https://github.com/omnigent-ai/omnigent/pull/11376), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Feature] `/mcp` shows whether a host MCP server needs sign-in and links to its sign-in page when the host reports it ([#11378](https://github.com/omnigent-ai/omnigent/pull/11378), [@jsonmp-k8](https://github.com/jsonmp-k8)) - [Bug fix] Claude Code sessions no longer stall at startup on Claude's "Make auto mode your default permission mode?" question; your configured default mode is kept. ([#11379](https://github.com/omnigent-ai/omnigent/pull/11379), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix] fix(pi-native): preserve allowlisted literal model IDs ([#11402](https://github.com/omnigent-ai/omnigent/pull/11402), [@PattaraS](https://github.com/PattaraS)) - [Bug fix / Test/CI] fix(pi): align SDK and native thinking compatibility ([#11403](https://github.com/omnigent-ai/omnigent/pull/11403), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] fix(pi): retry persisted native history without duplicates ([#11404](https://github.com/omnigent-ai/omnigent/pull/11404), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] fix(pi-native): recover unmatched tool outputs on fork and resume ([#11405](https://github.com/omnigent-ai/omnigent/pull/11405), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix] fix(pi): preserve editor text in Chat dialogs ([#11408](https://github.com/omnigent-ai/omnigent/pull/11408), [@PattaraS](https://github.com/PattaraS)) - [UI] fix(web): give shell card actions their own row on narrow cards ([#11415](https://github.com/omnigent-ai/omnigent/pull/11415), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix] fix(web): make Share dialog Copy link work without async clipboard ([#11416](https://github.com/omnigent-ai/omnigent/pull/11416), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Test/CI] test(runner): cover helper release when an idle reap's pane close fails ([#11419](https://github.com/omnigent-ai/omnigent/pull/11419), [@PattaraS](https://github.com/PattaraS)) - [UI / Feature / Docs / Test/CI] Agents can open workspace files in the current session's UI using `ui_open_file` or the session file-opening API, without switching sessions or discarding unsaved edits. ([#11421](https://github.com/omnigent-ai/omnigent/pull/11421), [@droctothorpe](https://github.com/droctothorpe)) - [Bug fix] fix: resume idle runners before downloading workspace files ([#11422](https://github.com/omnigent-ai/omnigent/pull/11422), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Bug fix] fix(web): keep disabled Start tooltips open after clicks ([#11430](https://github.com/omnigent-ai/omnigent/pull/11430), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] fix: track session PRs after pushes across repositories ([#11433](https://github.com/omnigent-ai/omnigent/pull/11433), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Bug fix] fix(canvas): show only your sessions ([#11436](https://github.com/omnigent-ai/omnigent/pull/11436), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] fix(host): rediscover credentials after tunnel authentication rejection ([#11441](https://github.com/omnigent-ai/omnigent/pull/11441), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] Conversation history no longer appears blank after returning to a hidden session. ([#11444](https://github.com/omnigent-ai/omnigent/pull/11444), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] fix(server): reject unsupported Claude auth commands before queuing ([#11445](https://github.com/omnigent-ai/omnigent/pull/11445), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(claude-native): show the model-unavailable card for a model_not_found stop ([#11458](https://github.com/omnigent-ai/omnigent/pull/11458), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] When a Claude Code turn ends in an error, the session now shows one failure with the error message, instead of a blank failure followed by the message. ([#11463](https://github.com/omnigent-ai/omnigent/pull/11463), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(server): say when a held turn's host came back without its runner ([#11469](https://github.com/omnigent-ai/omnigent/pull/11469), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(claude-native): report a terminal tmux no longer shows as no longer running ([#11476](https://github.com/omnigent-ai/omnigent/pull/11476), [@yaoharry](https://github.com/yaoharry)) - [UI / Feature] Add model and effort cycling shortcuts with menu previews ([#11486](https://github.com/omnigent-ai/omnigent/pull/11486), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Bug fix] Side chats now queue and steer follow-ups while their agent is working, the same way the main composer does. ([#11490](https://github.com/omnigent-ai/omnigent/pull/11490), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix] fix(web): prompt each shell command and follow the terminal theme ([#11494](https://github.com/omnigent-ai/omnigent/pull/11494), [@PattaraS](https://github.com/PattaraS)) - [Docs / Test/CI] ci(deps): let any maintainer, the author included, approve a floor waiver ([#11496](https://github.com/omnigent-ai/omnigent/pull/11496), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] The `/` menu in native Claude sessions lists your Claude Code custom commands from `~/.claude/commands` and the project's `.claude/commands`. ([#11500](https://github.com/omnigent-ai/omnigent/pull/11500), [@dbczumar](https://github.com/dbczumar)) - [UI / Bug fix] Reconnect an offline Arca host from the current chat with a single click, including Arca hosts connected from the CLI. ([#11501](https://github.com/omnigent-ai/omnigent/pull/11501), [@dbczumar](https://github.com/dbczumar)) - [Feature / Docs / Test/CI] feat(dev): install the commit and push hooks from just ensure ([#11506](https://github.com/omnigent-ai/omnigent/pull/11506), [@jsonmp-k8](https://github.com/jsonmp-k8)) - [UI / Bug fix] While a new managed sandbox starts, the session's model picker lists the sandbox provider's models instead of none. ([#11515](https://github.com/omnigent-ai/omnigent/pull/11515), [@dbczumar](https://github.com/dbczumar)) - [UI / Bug fix] fix(web): clear a send's error card once its message turns out delivered ([#11525](https://github.com/omnigent-ai/omnigent/pull/11525), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] Pi preserves native session history and token accounting across same-host runner restarts for seven days after the last activity. ([#11526](https://github.com/omnigent-ai/omnigent/pull/11526), [@remenberl](https://github.com/remenberl)) - [UI / Feature] feat(web): show the Arclet's name in the host selector tooltip ([#11527](https://github.com/omnigent-ai/omnigent/pull/11527), [@dbczumar](https://github.com/dbczumar)) - [UI / Bug fix] fix(web): scroll the composer chip tray instead of growing past the window ([#11528](https://github.com/omnigent-ai/omnigent/pull/11528), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix] fix(desktop): only report an Arca reconnect once the session's host is online ([#11529](https://github.com/omnigent-ai/omnigent/pull/11529), [@dbczumar](https://github.com/dbczumar)) - [UI / Bug fix] fix(settings): make the credential card the harness warning ([#11530](https://github.com/omnigent-ai/omnigent/pull/11530), [@zhengwin](https://github.com/zhengwin)) - [UI / Bug fix] fix(web): replace the empty-state Link a PR button with the link form ([#11531](https://github.com/omnigent-ai/omnigent/pull/11531), [@daniellok-db](https://github.com/daniellok-db)) - [UI / Bug fix] fix(web): expand a collapsed file when jumping to it from the PR changes sidebar ([#11532](https://github.com/omnigent-ai/omnigent/pull/11532), [@daniellok-db](https://github.com/daniellok-db)) - [Bug fix / Chore / Test/CI] fix(ci): unblock covered Dependabot updates and stale branches ([#11538](https://github.com/omnigent-ai/omnigent/pull/11538), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix] fix(web): keep selected text readable in a pinned terminal-theme card ([#11540](https://github.com/omnigent-ai/omnigent/pull/11540), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test(schedules): freeze the recurrence search clock in schedule tests ([#11543](https://github.com/omnigent-ai/omnigent/pull/11543), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Feature] Post GitHub PR comments from the Comments tab, with Markdown preview and drafts preserved while switching tabs or PRs. ([#11546](https://github.com/omnigent-ai/omnigent/pull/11546), [@daniellok-db](https://github.com/daniellok-db)) - [UI / Bug fix] fix(web): keep large model pickers compact ([#11551](https://github.com/omnigent-ai/omnigent/pull/11551), [@PattaraS](https://github.com/PattaraS)) - [Feature] Allow the completed scheduled-task state in the schema ([#11552](https://github.com/omnigent-ai/omnigent/pull/11552), [@serena-ruan](https://github.com/serena-ruan)) - [Feature] Log structured scheduler events for automation success metrics ([#11553](https://github.com/omnigent-ai/omnigent/pull/11553), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Feature] Session search lists sessions whose title matches first, with sessions that only match in their messages grouped below under "In messages". ([#11554](https://github.com/omnigent-ai/omnigent/pull/11554), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Feature] Add opt-in setting to show only the final answer in finished turns ([#11555](https://github.com/omnigent-ai/omnigent/pull/11555), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Test/CI] test(inner): publish child PID files atomically in process-tree tests ([#11558](https://github.com/omnigent-ai/omnigent/pull/11558), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] fix: preserve ucode auth argv and timeout in native Codex launches ([#11563](https://github.com/omnigent-ai/omnigent/pull/11563), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(server): carry the original drop onto a held turn's failure row ([#11568](https://github.com/omnigent-ai/omnigent/pull/11568), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(claude-native): record the input box's shape when a draft cannot be cleared ([#11569](https://github.com/omnigent-ai/omnigent/pull/11569), [@yaoharry](https://github.com/yaoharry)) - [Feature] feat(db): add a pull_requests column to conversation metadata ([#11572](https://github.com/omnigent-ai/omnigent/pull/11572), [@daniellok-db](https://github.com/daniellok-db)) - [Bug fix / Docs] Keep scheduler event logs from changing scheduling outcomes ([#11576](https://github.com/omnigent-ai/omnigent/pull/11576), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] fix(search): match LIKE wildcards literally and wait for server info ([#11578](https://github.com/omnigent-ai/omnigent/pull/11578), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] fix(server): keep late ancestor elicitation mirrors from reverting parent cards ([#11602](https://github.com/omnigent-ai/omnigent/pull/11602), [@serena-ruan](https://github.com/serena-ruan)) - [Test/CI] test(e2e-ui): wait for the live stream before publishing oversized-session failures ([#11604](https://github.com/omnigent-ai/omnigent/pull/11604), [@serena-ruan](https://github.com/serena-ruan)) - chore(deps): bump tailwind-merge from 3.6.0 to 3.7.0 ([#11629](https://github.com/omnigent-ai/omnigent/pull/11629), [@dependabot[bot]](https://github.com/apps/dependabot)) - [Test/CI] test(e2e): wait on the rendered REPL screen in the Ctrl+R search test ([#11635](https://github.com/omnigent-ai/omnigent/pull/11635), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test(e2e): read the transient-attachment probe on fresh connections ([#11640](https://github.com/omnigent-ai/omnigent/pull/11640), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix] fix(web): say a terminal permission prompt needs approval instead of showing Working ([#11642](https://github.com/omnigent-ai/omnigent/pull/11642), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] A model switch blocked by an open Claude prompt now shows a notice instead of failing the session ([#11647](https://github.com/omnigent-ai/omnigent/pull/11647), [@yaoharry](https://github.com/yaoharry)) - [Bug fix / Chore] fix(db): merge concurrent completed-state and pull-request migrations ([#11652](https://github.com/omnigent-ai/omnigent/pull/11652), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix / Test/CI] Resume imported Claude sessions while their original background jobs continue running, without creating duplicate imports. ([#11653](https://github.com/omnigent-ai/omnigent/pull/11653), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] fix(host): refresh stale CLI versions behind unchanged launchers ([#11654](https://github.com/omnigent-ai/omnigent/pull/11654), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Feature] feat(sidebar): group sessions by harness ([#11655](https://github.com/omnigent-ai/omnigent/pull/11655), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] Claude sessions recover message and settings delivery when a short terminal clips the input box. ([#11657](https://github.com/omnigent-ai/omnigent/pull/11657), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix / Test/CI] fix(polly): preserve CLI overrides and bound review runtime ([#11695](https://github.com/omnigent-ai/omnigent/pull/11695), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix / Chore] fix(claude-native): retain hook identity when diagnostics fail ([#11701](https://github.com/omnigent-ai/omnigent/pull/11701), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] fix(web): open markdown editor links with one click ([#11705](https://github.com/omnigent-ai/omnigent/pull/11705), [@dbczumar](https://github.com/dbczumar)) - [Bug fix / Test/CI] fix(sessions): confirm model aliases and preserve newer picks on failure ([#11706](https://github.com/omnigent-ai/omnigent/pull/11706), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] fix(web): fall back when the browser speech service is blocked ([#11710](https://github.com/omnigent-ai/omnigent/pull/11710), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Bug fix] fix(web): fold sub-agent notices into the "Worked for" rows ([#11711](https://github.com/omnigent-ai/omnigent/pull/11711), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] fix(claude): honor configured auth helpers over inherited tokens ([#11716](https://github.com/omnigent-ai/omnigent/pull/11716), [@dhruv0811](https://github.com/dhruv0811)) ## [v0.19.1] — 2026-10-21 - [Bug fix / Test/CI] The server and desktop app no longer trust the compromised eMudhra intermediate CAs (certifi 2026.10.19, Electron 42.11.16) ([#11210](https://github.com/omnigent-ai/omnigent/pull/11210), [@fanzeyi](https://github.com/fanzeyi)) ## [v0.19.0] — 2026-10-20 - [UI / Bug fix] Antigravity's web approval card now shows the action description and the always-allow (persist) choices from agy's own permission menu, instead of only Approve / Reject. ([#6653](https://github.com/omnigent-ai/omnigent/pull/6653), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix / Docs / Test/CI] fix(repro): deliver incremental mock Responses events ([#7257](https://github.com/omnigent-ai/omnigent/pull/7257), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] fix(host): report configured acp: agents in the harness readiness map ([#7544](https://github.com/omnigent-ai/omnigent/pull/7544), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix / Feature / Docs / Test/CI] feat(agy): configure Gemini gateways and Databricks profiles in setup ([#7636](https://github.com/omnigent-ai/omnigent/pull/7636), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test(slack): wait for turns to finish instead of polling heuristics ([#7775](https://github.com/omnigent-ai/omnigent/pull/7775), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Feature] feat(android): add configurable Databricks OAuth protocol core ([#7957](https://github.com/omnigent-ai/omnigent/pull/7957), [@fanzeyi](https://github.com/fanzeyi)) - [Feature] feat(android): persist and refresh Databricks OAuth credentials ([#7958](https://github.com/omnigent-ai/omnigent/pull/7958), [@fanzeyi](https://github.com/fanzeyi)) - [UI / Feature] Databricks workspace connections on Android now sign in through the system browser and keep each workspace session in isolated browser storage. ([#7961](https://github.com/omnigent-ai/omnigent/pull/7961), [@fanzeyi](https://github.com/fanzeyi)) - [UI / Feature] Android workspace sessions recover without losing the current page, and local sign-out clears the selected workspace without immediately reconnecting. ([#7964](https://github.com/omnigent-ai/omnigent/pull/7964), [@fanzeyi](https://github.com/fanzeyi)) - [Chore] refactor(android): distinguish workspace authentication from Databricks Apps ([#7967](https://github.com/omnigent-ai/omnigent/pull/7967), [@fanzeyi](https://github.com/fanzeyi)) - [UI / Test/CI] Debug Android builds now include workspace authentication fault injection for testing recovery and sign-in behavior. ([#8071](https://github.com/omnigent-ai/omnigent/pull/8071), [@fanzeyi](https://github.com/fanzeyi)) - [UI / Bug fix / Feature / Docs / Test/CI] Connect managed MCP accounts in Settings and select their tools for local hosts or sandboxes through a server gateway with shared policy checks. ([#8157](https://github.com/omnigent-ai/omnigent/pull/8157), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] Terminal connections now close when you switch away from a terminal. ([#8453](https://github.com/omnigent-ai/omnigent/pull/8453), [@craiuconstantintiberiu](https://github.com/craiuconstantintiberiu)) - [UI / Bug fix / Docs / Test/CI / Breaking] OIDC CLI, Slack, and mobile logins require an updated client and browser approval; ([#8505](https://github.com/omnigent-ai/omnigent/pull/8505), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Feature] Claude SDK and Codex SDK sessions now expose the reasoning-effort control in the web UI, derived from the harness's declared capabilities rather than only native terminal harnesses. ([#8591](https://github.com/omnigent-ai/omnigent/pull/8591), [@jsonmp-k8](https://github.com/jsonmp-k8)) - [Bug fix] The Pi model picker now lists the custom providers declared in Pi's own `~/.pi/agent/models.json` (Ollama, DigitalOcean, any OpenAI-compatible endpoint) when Pi runs on its own login. ([#8793](https://github.com/omnigent-ai/omnigent/pull/8793), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - test: fix flaky tests/runner/test_app_sessions_native_terminals_runtime.py::test_codex_tui_recovery_preserves_live_control_plane ([#8934](https://github.com/omnigent-ai/omnigent/pull/8934), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Resuming an idle-reaped native Codex session no longer resubmits the original `omnigent codex ""` launch prompt; only newly typed input starts work. ([#8963](https://github.com/omnigent-ai/omnigent/pull/8963), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] fix(claude-native): deduplicate transcript cost by response identity ([#8975](https://github.com/omnigent-ai/omnigent/pull/8975), [@LouisLotter](https://github.com/LouisLotter)) - [Bug fix] Codex model and effort picks can recover when the app-server has stopped but its terminal pane is still open. ([#9209](https://github.com/omnigent-ai/omnigent/pull/9209), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Picking a model for a Claude session that isn't running no longer fails while its terminal is still starting. ([#9216](https://github.com/omnigent-ai/omnigent/pull/9216), [@yaoharry](https://github.com/yaoharry)) - [Bug fix / Test/CI] test(e2e_ui): clean up the right-panel seed file where it is actually written ([#9367](https://github.com/omnigent-ai/omnigent/pull/9367), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - fix(claude-native): preserve retained messages in compaction snapshots ([#9421](https://github.com/omnigent-ai/omnigent/pull/9421), [@arthivjkumar](https://github.com/arthivjkumar)) - [Feature / Docs] Sandboxed agents can use approved Git repositories over SSH without receiving the SSH key, with optional push access per repository. ([#9462](https://github.com/omnigent-ai/omnigent/pull/9462), [@mxatone](https://github.com/mxatone)) - [Feature] feat(server): accept the Android app redirect for native OIDC sign-in ([#9466](https://github.com/omnigent-ai/omnigent/pull/9466), [@fanzeyi](https://github.com/fanzeyi)) - [Bug fix] fix(android): don't treat a restored activity as an explicit connect ([#9467](https://github.com/omnigent-ai/omnigent/pull/9467), [@fanzeyi](https://github.com/fanzeyi)) - [Chore] refactor(android): share OAuth plumbing and read the server manifest ([#9468](https://github.com/omnigent-ai/omnigent/pull/9468), [@fanzeyi](https://github.com/fanzeyi)) - [Feature] feat(android): add native OIDC credentials and Auth Tab sign-in ([#9469](https://github.com/omnigent-ai/omnigent/pull/9469), [@fanzeyi](https://github.com/fanzeyi)) - [UI / Feature] The Android app signs in to OIDC servers through Auth Tab and renews expired sessions without opening the browser. ([#9474](https://github.com/omnigent-ai/omnigent/pull/9474), [@fanzeyi](https://github.com/fanzeyi)) - [UI / Feature] The Android app keeps OIDC sessions fresh before they expire and signs out from the app or the web UI. ([#9476](https://github.com/omnigent-ai/omnigent/pull/9476), [@fanzeyi](https://github.com/fanzeyi)) - [Docs / Test/CI] feat(android): add OIDC debug faults and document native sign-in ([#9477](https://github.com/omnigent-ai/omnigent/pull/9477), [@fanzeyi](https://github.com/fanzeyi)) - [Bug fix] fix(codex-native): correlate standalone terminal errors with their turn ([#9506](https://github.com/omnigent-ai/omnigent/pull/9506), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix / Feature / Docs / Test/CI] Watch agent verification recordings directly in chat and file previews, and navigate actions using optional standard WebVTT chapter files. ([#9557](https://github.com/omnigent-ai/omnigent/pull/9557), [@vasvlasov](https://github.com/vasvlasov)) - [Test/CI] ci(dependabot): grouped version updates, uv ecosystem, every manifest… ([#9584](https://github.com/omnigent-ai/omnigent/pull/9584), [@jsonmp-k8](https://github.com/jsonmp-k8)) - [Bug fix] Codex orchestrator sessions are now woken when an independent sub-agent they ([#9612](https://github.com/omnigent-ai/omnigent/pull/9612), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Containers and Databricks Apps now shut down gracefully on `SIGTERM` instead of ([#9636](https://github.com/omnigent-ai/omnigent/pull/9636), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] A side chat keeps working after its parent's runner exits: the next message or Resume restarts the parent's runner and continues the side chat on it. ([#9654](https://github.com/omnigent-ai/omnigent/pull/9654), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [Bug fix] fix(omnidev): use pinned Python for sidebar fixture seeding ([#9800](https://github.com/omnigent-ai/omnigent/pull/9800), [@hzub](https://github.com/hzub)) - [UI / Bug fix / Docs / Test/CI] Messages and attachments sent while a managed sandbox starts survive closing the browser and are delivered in order. ([#9814](https://github.com/omnigent-ai/omnigent/pull/9814), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] fix(terminals): clean up unregistered failed launches ([#9833](https://github.com/omnigent-ai/omnigent/pull/9833), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix: retain background task counts in session telemetry ([#9836](https://github.com/omnigent-ai/omnigent/pull/9836), [@fanzeyi](https://github.com/fanzeyi)) - [UI / Bug fix] fix(web): keep the iOS side-chat composer above the keyboard ([#9846](https://github.com/omnigent-ai/omnigent/pull/9846), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [UI / Bug fix] Web links in Markdown and notebook file previews open in a new tab or your browser instead of replacing the app, which in the desktop app also dropped a Databricks workspace connection ([#9847](https://github.com/omnigent-ai/omnigent/pull/9847), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [UI / Feature] feat(settings): make harness warnings fixable from Settings (v1) ([#9849](https://github.com/omnigent-ai/omnigent/pull/9849), [@zhengwin](https://github.com/zhengwin)) - [Bug fix] fix(codex): finish child turns without writing parent bridge state ([#9851](https://github.com/omnigent-ai/omnigent/pull/9851), [@PattaraS](https://github.com/PattaraS)) - [Bug fix / Test/CI] fix(telemetry): suppress CI usage telemetry on the server ([#9853](https://github.com/omnigent-ai/omnigent/pull/9853), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix / Test/CI] fix(web): avoid duplicate diff computation in hidden responsive viewer ([#9854](https://github.com/omnigent-ai/omnigent/pull/9854), [@serena-ruan](https://github.com/serena-ruan)) - Bump version to 0.19.0.dev0 ([#9855](https://github.com/omnigent-ai/omnigent/pull/9855), [@omnigent-ci[bot]](https://github.com/apps/omnigent-ci)) - docs(changelog): record v0.18.0 ([#9856](https://github.com/omnigent-ai/omnigent/pull/9856), [@omnigent-ci[bot]](https://github.com/apps/omnigent-ci)) - [UI / Bug fix / Test/CI] perf(web): overlap linked diff requests and editor initialization ([#9857](https://github.com/omnigent-ai/omnigent/pull/9857), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Feature] feat(web): add /new to the chat composer ([#9858](https://github.com/omnigent-ai/omnigent/pull/9858), [@serena-ruan](https://github.com/serena-ruan)) - [Feature / Docs / Test/CI] Add timed captions to Otto Repro and Resolve recordings ([#9860](https://github.com/omnigent-ai/omnigent/pull/9860), [@serena-ruan](https://github.com/serena-ruan)) - [Docs / Chore / Test/CI] chore(host): add correlated tunnel keepalive diagnostics ([#9862](https://github.com/omnigent-ai/omnigent/pull/9862), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix] Fix sidebar styles (grouped and ungrouped) ([#9863](https://github.com/omnigent-ai/omnigent/pull/9863), [@hzub](https://github.com/hzub)) - [Docs] docs: map dictation and session read-state controls ([#9868](https://github.com/omnigent-ai/omnigent/pull/9868), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] fix(images): build the web SPA on the build platform, not under QEMU ([#9875](https://github.com/omnigent-ai/omnigent/pull/9875), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Cloning a session whose agent bundle is no longer stored now explains that another agent must be chosen instead of failing with an internal error. ([#9881](https://github.com/omnigent-ai/omnigent/pull/9881), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Docs] docs: refresh seed feature maps ([#9885](https://github.com/omnigent-ai/omnigent/pull/9885), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Docs] docs: add skill for drafting package release notes ([#9891](https://github.com/omnigent-ai/omnigent/pull/9891), [@TomeHirata](https://github.com/TomeHirata)) - [Test/CI] test: stabilize account, fork, and Canvas checks ([#9894](https://github.com/omnigent-ai/omnigent/pull/9894), [@PattaraS](https://github.com/PattaraS)) - [Bug fix / Test/CI] fix: honor the selected Pi executable through host startup ([#9895](https://github.com/omnigent-ai/omnigent/pull/9895), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix] Fix macOS editor shortcuts in rebundled embeds ([#9896](https://github.com/omnigent-ai/omnigent/pull/9896), [@PattaraS](https://github.com/PattaraS)) - [Bug fix / Docs] fix(agents): assert the captioned element is visible and quote only rendered text ([#9906](https://github.com/omnigent-ai/omnigent/pull/9906), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Feature / Docs] Polish managed MCP selection and remember choices ([#9917](https://github.com/omnigent-ai/omnigent/pull/9917), [@dhruv0811](https://github.com/dhruv0811)) - [Chore] chore(logging): identify failing tmux operations during Claude delivery ([#9922](https://github.com/omnigent-ai/omnigent/pull/9922), [@yaoharry](https://github.com/yaoharry)) - [Bug fix / Docs] Local Codex import now discovers sessions stored in Omnigent's private Codex homes. ([#9926](https://github.com/omnigent-ai/omnigent/pull/9926), [@Edwinhe03](https://github.com/Edwinhe03)) - [Bug fix] fix(claude): preserve input after target and submit refusals ([#9927](https://github.com/omnigent-ai/omnigent/pull/9927), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] Links in the Markdown editor now show a popup with an Open button, so you can follow a link without knowing about ⌘/Ctrl-click ([#9928](https://github.com/omnigent-ai/omnigent/pull/9928), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [UI / Bug fix / Docs / Test/CI] Allow opting out of MCPs during registry outages ([#9929](https://github.com/omnigent-ai/omnigent/pull/9929), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] fix(runner): skip history recovery while a message forward is in flight ([#9931](https://github.com/omnigent-ai/omnigent/pull/9931), [@Edwinhe03](https://github.com/Edwinhe03)) - [Bug fix] fix: deliver Claude-native input to a pane scrolled back in copy mode ([#9932](https://github.com/omnigent-ai/omnigent/pull/9932), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [Bug fix] fix(claude-native): refuse a web message while the input box is held in shell mode ([#9936](https://github.com/omnigent-ai/omnigent/pull/9936), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(claude-native): escape web slash commands with a space, not U+FEFF ([#9939](https://github.com/omnigent-ai/omnigent/pull/9939), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test: wait for MCP cleanup and side-chat completion ([#9947](https://github.com/omnigent-ai/omnigent/pull/9947), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test(cli): isolate scripted preflight credential discovery ([#9948](https://github.com/omnigent-ai/omnigent/pull/9948), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] Web messages sent to a Claude terminal that has exited stay available for resend. ([#9953](https://github.com/omnigent-ai/omnigent/pull/9953), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Improve recovery from silent or stalled runner tunnels while preserving active streamed requests. ([#9957](https://github.com/omnigent-ai/omnigent/pull/9957), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Runner reconnect recovery keeps processing requests and keepalives. ([#9960](https://github.com/omnigent-ai/omnigent/pull/9960), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test: make Codex effort models configurable ([#9963](https://github.com/omnigent-ai/omnigent/pull/9963), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix] fix(ui): match attach-to-agent and comment pill styling ([#9968](https://github.com/omnigent-ai/omnigent/pull/9968), [@serena-ruan](https://github.com/serena-ruan)) - [Test/CI] test(canvas): keep selection checks bound to their session nodes ([#9969](https://github.com/omnigent-ai/omnigent/pull/9969), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] Make the steering CI scenario wait for active work and verify receipt of the steering message. ([#9972](https://github.com/omnigent-ai/omnigent/pull/9972), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] fix(web): label submitted comments as Sent ([#9979](https://github.com/omnigent-ai/omnigent/pull/9979), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix] fix(web): show which fork-form field blocks Clone & start ([#9980](https://github.com/omnigent-ai/omnigent/pull/9980), [@hzub](https://github.com/hzub)) - [Docs] docs: refresh seed feature maps ([#9981](https://github.com/omnigent-ai/omnigent/pull/9981), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Test/CI] test(acp): wait for the forking agent's pid before reading it ([#9982](https://github.com/omnigent-ai/omnigent/pull/9982), [@yaoharry](https://github.com/yaoharry)) - [Chore] chore(logging): correlate native Codex lifecycle failures with their session ([#10000](https://github.com/omnigent-ai/omnigent/pull/10000), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(routing): respect native Codex tool-search compatibility ([#10001](https://github.com/omnigent-ai/omnigent/pull/10001), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(web): support custom upstream headers in the Vite proxy ([#10005](https://github.com/omnigent-ai/omnigent/pull/10005), [@hzub](https://github.com/hzub)) - [UI / Bug fix] fix(codex-native): explain unsupported models with ChatGPT login ([#10006](https://github.com/omnigent-ai/omnigent/pull/10006), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix / Test/CI] Claude sessions waiting for a classifier-billing y/n choice keep the terminal available for the owner to answer instead of timing out and closing it. ([#10008](https://github.com/omnigent-ai/omnigent/pull/10008), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix / Breaking] The browser new-session shortcut changes from Cmd/Ctrl+Alt+N to Cmd/Ctrl+Shift+O, including focused embedded apps. Browser users must switch to the new shortcut; native shells retain Cmd/Ctrl+Alt+N. ([#10009](https://github.com/omnigent-ai/omnigent/pull/10009), [@PattaraS](https://github.com/PattaraS)) - [UI / Feature] See pending reviewers and submitted review states in the Pull Requests panel, with distinct colors for conversation-comment authors. ([#10010](https://github.com/omnigent-ai/omnigent/pull/10010), [@PattaraS](https://github.com/PattaraS)) - [Docs / Chore] chore(logging): snapshot Codex startup state before cleanup ([#10012](https://github.com/omnigent-ai/omnigent/pull/10012), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(cli): observe recalled history turns without draining markers ([#10013](https://github.com/omnigent-ai/omnigent/pull/10013), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(server): wait for turn completion before replica assertions ([#10020](https://github.com/omnigent-ai/omnigent/pull/10020), [@yaoharry](https://github.com/yaoharry)) - [Bug fix / Test/CI] test(resilience): reserve upstream ports while proxies start ([#10022](https://github.com/omnigent-ai/omnigent/pull/10022), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] fix(web): collapse offline hosts in the new-session host picker ([#10025](https://github.com/omnigent-ai/omnigent/pull/10025), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix / Feature] feat(web): add stable Created sorting to the session sidebar ([#10026](https://github.com/omnigent-ai/omnigent/pull/10026), [@hzub](https://github.com/hzub)) - [Bug fix / Docs] In accounts mode, changing or resetting a password now signs that user out of their other browsers and CLIs; connected hosts must sign in again before they can launch sessions. ([#10029](https://github.com/omnigent-ai/omnigent/pull/10029), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix / Feature] feat(web): split sidebar date grouping into Created and Updated ([#10035](https://github.com/omnigent-ai/omnigent/pull/10035), [@hzub](https://github.com/hzub)) - [Bug fix / Breaking] Workspace file deletion now checks write reach, preserves symlink targets, and reports success only after removal. Deletes fail with 403 when safe traversal is unavailable: native Windows workspace deletes are disabled, and macOS 12 requires readable parent directories. ([#10039](https://github.com/omnigent-ai/omnigent/pull/10039), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix / Docs] The desktop embedded browser now refuses agent navigation to internal addresses written in any IP form, or reached through a hostname that resolves to one. ([#10040](https://github.com/omnigent-ai/omnigent/pull/10040), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix / Chore / Test/CI] chore(ci): upgrade Pi CLI pin to 1.0.4 ([#10042](https://github.com/omnigent-ai/omnigent/pull/10042), [@PattaraS](https://github.com/PattaraS)) - [UI / Feature] feat(web): show the host name and connection status on hover ([#10043](https://github.com/omnigent-ai/omnigent/pull/10043), [@goelise](https://github.com/goelise)) - [UI / Feature] feat(web): show the model id when hovering a model picker row ([#10046](https://github.com/omnigent-ai/omnigent/pull/10046), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [Bug fix] fix(runner): run filesystem helper scripts in isolated mode ([#10047](https://github.com/omnigent-ai/omnigent/pull/10047), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Feature] The pull request panel shows comments in their own Comments tab, labeled with the comment count ([#10048](https://github.com/omnigent-ai/omnigent/pull/10048), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [UI / Bug fix] fix(web): mark a mid-turn message until the native agent reads it ([#10050](https://github.com/omnigent-ai/omnigent/pull/10050), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [UI / Bug fix] Sidebar sessions that share the same update time keep one stable order instead of reordering after a background refresh or shifting under the pointer mid-click. ([#10052](https://github.com/omnigent-ai/omnigent/pull/10052), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] fix(os-env): spawn the bwrap helper from a thread that outlives requests ([#10058](https://github.com/omnigent-ai/omnigent/pull/10058), [@zozo123](https://github.com/zozo123)) - [Feature] Policies can now get access to conversation_name in the `PolicyEvent` context. ([#10065](https://github.com/omnigent-ai/omnigent/pull/10065), [@ArshSiddiqui](https://github.com/ArshSiddiqui)) - fix(server): let deployments declare host sharding for wrong_replica ([#10071](https://github.com/omnigent-ai/omnigent/pull/10071), [@Leemoonsoo](https://github.com/Leemoonsoo)) - Fail fast with an accurate hint when the runner tunnel has no credential ([#10072](https://github.com/omnigent-ai/omnigent/pull/10072), [@bbqiu](https://github.com/bbqiu)) - [UI / Bug fix] fix(web): title the Pull Requests panel in its empty state ([#10076](https://github.com/omnigent-ai/omnigent/pull/10076), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Feature] feat: let a managed create choose its sandbox host id ([#10080](https://github.com/omnigent-ai/omnigent/pull/10080), [@Edwinhe03](https://github.com/Edwinhe03)) - [Bug fix] fix(codex-native): reject runner-owned transport args in `omnigent codex` ([#10086](https://github.com/omnigent-ai/omnigent/pull/10086), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(terminal): tell the user to install tmux instead of pointing at the runner log ([#10092](https://github.com/omnigent-ai/omnigent/pull/10092), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Codex sessions launched with `--add-dir` start on Codex 0.156 and later instead of exiting with "--add-dir is not supported with --remote" ([#10093](https://github.com/omnigent-ai/omnigent/pull/10093), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(claude-native): read the don't-ask footer so the mode picker can leave it ([#10098](https://github.com/omnigent-ai/omnigent/pull/10098), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] fix(host): report a runner refused on credentials as a sign-in problem ([#10112](https://github.com/omnigent-ai/omnigent/pull/10112), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(codex-native): show the missing Databricks profile fix instead of "see the runner log" ([#10114](https://github.com/omnigent-ai/omnigent/pull/10114), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(claude-native): report a sign-in running elsewhere instead of reaping the pane ([#10118](https://github.com/omnigent-ai/omnigent/pull/10118), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Messages sent from the web UI to Claude Code no longer get stuck when keyboard focus was left in the terminal's footer. ([#10122](https://github.com/omnigent-ai/omnigent/pull/10122), [@Edwinhe03](https://github.com/Edwinhe03)) - [Bug fix] fix(claude-native): settle refused web auth commands ([#10123](https://github.com/omnigent-ai/omnigent/pull/10123), [@fanzeyi](https://github.com/fanzeyi)) - fix(web): retry the viewer identity probe after a transient failure ([#10125](https://github.com/omnigent-ai/omnigent/pull/10125), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [Bug fix] fix(claude-native): preserve API error details in failed-turn events ([#10128](https://github.com/omnigent-ai/omnigent/pull/10128), [@fanzeyi](https://github.com/fanzeyi)) - [Bug fix / Docs] Native terminal messages rejected before handoff no longer surface later as misleading “Web message missing from native transcript” errors. ([#10129](https://github.com/omnigent-ai/omnigent/pull/10129), [@fanzeyi](https://github.com/fanzeyi)) - [UI / Bug fix] fix(web): disable Share grant controls for unshareable workspaces ([#10131](https://github.com/omnigent-ai/omnigent/pull/10131), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [Bug fix / Docs / Test/CI] Codex model and effort changes now recover when the terminal was idle-cleaned, is still starting, or needs its saved thread resumed. ([#10141](https://github.com/omnigent-ai/omnigent/pull/10141), [@fanzeyi](https://github.com/fanzeyi)) - [Bug fix] fix(native): retry session API throttling during startup and resume ([#10142](https://github.com/omnigent-ai/omnigent/pull/10142), [@fanzeyi](https://github.com/fanzeyi)) - [Bug fix] fix(cli): bundle symlinked agent files instead of dropping them ([#10143](https://github.com/omnigent-ai/omnigent/pull/10143), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix / Breaking] Per-user Slack clients require delegated credentials before ordinary requests or event streaming, including after a cached token is cleared. Login discovery remains available. Targets without per-user authentication are no longer supported by the Slack integration. ([#10172](https://github.com/omnigent-ai/omnigent/pull/10172), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix / Breaking] Agent-created or updated scheduled tasks now require explicit approval, including inherited settings. The mandatory gate is installed across policy-engine construction paths and cannot be skipped by the no-policy fast path. Owner UI/API scheduling remains unchanged. Approval follows existing session permissions: the owner or a collaborator with edit access can approve; this is not an owner-only gate. ([#10174](https://github.com/omnigent-ai/omnigent/pull/10174), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix / Breaking] Scheduled tasks bound recurrence input, time combinations, and search work. Existing hourly-equivalent minute and second rules remain supported, including stored schedules loaded after a restart. Searches stop at an eight-year horizon, a 100,000-step work budget, or a 250 ms monotonic deadline. Work includes calendar candidates, position selections and inner time-filter searches. Each BY list is normalized, deduplicated and capped at 24 distinct values; time combinations remain capped at 24. ([#10176](https://github.com/omnigent-ai/omnigent/pull/10176), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix] Desktop browser actions use validated snapshot, click and type requests. Stock older desktop/UI pairs can upgrade in either order through v0.20; compatibility adapters will be removed in v0.21. Updated desktops reject custom raw scripts. ([#10178](https://github.com/omnigent-ai/omnigent/pull/10178), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix / Breaking] All renderer navigation is subject to the URL policy, including URL-bar requests claiming user intent. Main-owned Arca preview eligibility remains supported. Other internal sites must be opened in a separate browser. Desktop fixture setup moves to the main-process test driver. ([#10184](https://github.com/omnigent-ai/omnigent/pull/10184), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix] fix(server): defer idle reconnect initialization without stranding orphans ([#10190](https://github.com/omnigent-ai/omnigent/pull/10190), [@fanzeyi](https://github.com/fanzeyi)) - [Bug fix / Test/CI] Pi SDK sessions refresh gateway credentials during long tool turns without restarting or losing conversation history, and report failed refreshes instead of reusing stale tokens. ([#10194](https://github.com/omnigent-ai/omnigent/pull/10194), [@PattaraS](https://github.com/PattaraS)) - [Chore] refactor(resolve-agent): share the Polly/OCR review loop as an agent skill ([#10199](https://github.com/omnigent-ai/omnigent/pull/10199), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] Claude sessions no longer report `/fork`, `/branch`, or a rejected `/model` sent from the web as "Message not delivered". ([#10202](https://github.com/omnigent-ai/omnigent/pull/10202), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix] Improve onboarding server selection and dropdown styling ([#10203](https://github.com/omnigent-ai/omnigent/pull/10203), [@hzub](https://github.com/hzub)) - [Bug fix] fix(runner): retry the agent spec fetch when the server throttles it ([#10211](https://github.com/omnigent-ai/omnigent/pull/10211), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(codex): accept launch retry log detail changes ([#10213](https://github.com/omnigent-ai/omnigent/pull/10213), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix / Feature / Test/CI] Show session import progress in the sidebar ([#10215](https://github.com/omnigent-ai/omnigent/pull/10215), [@PattaraS](https://github.com/PattaraS)) - chore(deps): bump https://github.com/pre-commit/pre-commit-hooks ([#10219](https://github.com/omnigent-ai/omnigent/pull/10219), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump notify-debouncer-full in /dev/omnidev ([#10225](https://github.com/omnigent-ai/omnigent/pull/10225), [@dependabot[bot]](https://github.com/apps/dependabot)) - [Test/CI] test(codex): isolate routing replies from background titles ([#10227](https://github.com/omnigent-ai/omnigent/pull/10227), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(resolve-agent): harden the review-loop helper against partial GitHub responses ([#10229](https://github.com/omnigent-ai/omnigent/pull/10229), [@serena-ruan](https://github.com/serena-ruan)) - chore(deps): bump packaging from 25.0 to 26.3 ([#10231](https://github.com/omnigent-ai/omnigent/pull/10231), [@dependabot[bot]](https://github.com/apps/dependabot)) - [UI / Bug fix / Docs / Test/CI] Automation approval prompts now describe the requested schedule, execution, permission and cost settings. ([#10235](https://github.com/omnigent-ai/omnigent/pull/10235), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - chore(deps): bump rich from 14.3.4 to 15.0.0 ([#10237](https://github.com/omnigent-ai/omnigent/pull/10237), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump cachetools from 6.2.6 to 7.2.1 ([#10238](https://github.com/omnigent-ai/omnigent/pull/10238), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump argon2-cffi from 23.1.0 to 25.1.0 ([#10240](https://github.com/omnigent-ai/omnigent/pull/10240), [@dependabot[bot]](https://github.com/apps/dependabot)) - [Bug fix] fix(pi-native): bound token helpers and preserve auth failure notices ([#10241](https://github.com/omnigent-ai/omnigent/pull/10241), [@PattaraS](https://github.com/PattaraS)) - [Chore] refactor(resolve-agent): drop the review_cycle.py compatibility link ([#10243](https://github.com/omnigent-ai/omnigent/pull/10243), [@serena-ruan](https://github.com/serena-ruan)) - chore(deps): bump actions/setup-node from 4.4.0 to 7.1.0 ([#10245](https://github.com/omnigent-ai/omnigent/pull/10245), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump actions/setup-python from 6.2.0 to 7.0.0 ([#10246](https://github.com/omnigent-ai/omnigent/pull/10246), [@dependabot[bot]](https://github.com/apps/dependabot)) - [Chore] refactor(resolve-agent): share review remediation as an agent skill ([#10247](https://github.com/omnigent-ai/omnigent/pull/10247), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] fix(pi): resolve npm installs before sandbox launch ([#10249](https://github.com/omnigent-ai/omnigent/pull/10249), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix] Model-unavailable errors in Claude SDK and Pi sessions now show a recovery hint: switch models with the model picker or /model, or check the provider configuration and account access. ([#10255](https://github.com/omnigent-ai/omnigent/pull/10255), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Pi native and SDK sessions honor reasoning effort for catalog-recognized configured providers across tool calls and follow-up turns. ([#10257](https://github.com/omnigent-ai/omnigent/pull/10257), [@PattaraS](https://github.com/PattaraS)) - [Bug fix / Feature / Docs / Test/CI] Claude-native sessions use Claude's status reports by default for working and blocked indicators, with legacy fallback and a host/runner kill switch (`OMNIGENT_FEATURES=-claude_osc_status`). ([#10259](https://github.com/omnigent-ai/omnigent/pull/10259), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test: wait for replica completion before checking handoff status ([#10260](https://github.com/omnigent-ai/omnigent/pull/10260), [@yaoharry](https://github.com/yaoharry)) - [Chore / Test/CI] ci: auto-merge tested routine dependency upgrades ([#10261](https://github.com/omnigent-ai/omnigent/pull/10261), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] Pi sessions now preserve the chosen reasoning effort for reasoning-capable gateway models instead of forcing thinking off. ([#10264](https://github.com/omnigent-ai/omnigent/pull/10264), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] fix(agents): film likely_repro facets and try the recorder before skipping footage ([#10267](https://github.com/omnigent-ai/omnigent/pull/10267), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] hermes, goose, kiro, devin, qwen and kimi native terminals now honor the agent's `os_env.sandbox` (for example `type: none`) instead of always using the platform-default sandbox ([#10268](https://github.com/omnigent-ai/omnigent/pull/10268), [@bobbyhyam](https://github.com/bobbyhyam)) - [Chore] refactor(resolve-agent): share impact assessment and PR CI/preview steps ([#10271](https://github.com/omnigent-ai/omnigent/pull/10271), [@serena-ruan](https://github.com/serena-ruan)) - [Feature] feat(feature-agent): add an Otto agent that builds one feature per ticket ([#10273](https://github.com/omnigent-ai/omnigent/pull/10273), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Bug fix / Test/CI] The Markdown file editor reflows hard-wrapped paragraphs to the full viewer width, matching Preview. ([#10275](https://github.com/omnigent-ai/omnigent/pull/10275), [@hzub](https://github.com/hzub)) - [Test/CI] test(inner): cover the worker liveness wrapper end to end ([#10277](https://github.com/omnigent-ai/omnigent/pull/10277), [@jsonmp-k8](https://github.com/jsonmp-k8)) - [Test/CI] test(server): cover the Codex goal routes and their runner-wake helpers (48% → 99%) ([#10279](https://github.com/omnigent-ai/omnigent/pull/10279), [@jsonmp-k8](https://github.com/jsonmp-k8)) - [Feature] Update individual custom-agent settings through a conditional PATCH API while preserving credentials and bundled files. ([#10280](https://github.com/omnigent-ai/omnigent/pull/10280), [@hzub](https://github.com/hzub)) - [Test/CI] test(inner): cover the signer process's parsers, config, supervisor and main (54% → 69%) ([#10281](https://github.com/omnigent-ai/omnigent/pull/10281), [@jsonmp-k8](https://github.com/jsonmp-k8)) - [UI / Bug fix] Hide the offline indicator for new sandbox selections ([#10285](https://github.com/omnigent-ai/omnigent/pull/10285), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] Recover when a live harness loses its Unix socket ([#10288](https://github.com/omnigent-ai/omnigent/pull/10288), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] perf(claude-native): skip httpx's CLI import and module teardown in the policy hook ([#10290](https://github.com/omnigent-ai/omnigent/pull/10290), [@fabriciodelocco](https://github.com/fabriciodelocco)) - [Bug fix / Test/CI] Running an Omnigent server or tests inside an agent sandbox no longer breaks other live sessions with "No such file or directory" harness errors ([#10291](https://github.com/omnigent-ai/omnigent/pull/10291), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] Claude-native chats no longer show Claude Code's injected `` context as an extra user message with Claude Code 2.1.300 and later ([#10293](https://github.com/omnigent-ai/omnigent/pull/10293), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [Test/CI] test: isolate inherited debug-log delivery credentials ([#10295](https://github.com/omnigent-ai/omnigent/pull/10295), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(codex-native): validate saved transport args before preparing startup ([#10296](https://github.com/omnigent-ai/omnigent/pull/10296), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(runner): rebuild incomplete agent bundle caches before initialization ([#10297](https://github.com/omnigent-ai/omnigent/pull/10297), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(runner): scope cancellation cleanup to its turn generation ([#10299](https://github.com/omnigent-ai/omnigent/pull/10299), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(runner): preserve interrupt ownership during harness lookup ([#10302](https://github.com/omnigent-ai/omnigent/pull/10302), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test: stabilize terminal Ctrl-C and log-redaction timing checks ([#10309](https://github.com/omnigent-ai/omnigent/pull/10309), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] Old codex-native session data under `~/.omnigent/codex-native` from before v0.13.0 is now cleaned up after 7 days of inactivity instead of being kept forever ([#10311](https://github.com/omnigent-ai/omnigent/pull/10311), [@Edwinhe03](https://github.com/Edwinhe03)) - [Bug fix] Claude SDK agents with skill-less agent bundles no longer fail to launch when `disableSideloadFlags` is enabled. ([#10315](https://github.com/omnigent-ai/omnigent/pull/10315), [@ytelang](https://github.com/ytelang)) - [Test/CI] test(server): route incidental host-launch hang guards through budget() ([#10319](https://github.com/omnigent-ai/omnigent/pull/10319), [@jsonmp-k8](https://github.com/jsonmp-k8)) - [Docs] docs(agents): add reuse/naming guidance and unit-test expectations ([#10320](https://github.com/omnigent-ai/omnigent/pull/10320), [@jsonmp-k8](https://github.com/jsonmp-k8)) - [Bug fix / Test/CI] Preserve self-registering sandbox host metadata and disconnect cleanup ([#10322](https://github.com/omnigent-ai/omnigent/pull/10322), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] fix(claude-native): dismiss task details panels that close on "Esc/Enter/Space" ([#10327](https://github.com/omnigent-ai/omnigent/pull/10327), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(claude-native): retry throttled history pages before resuming Claude ([#10329](https://github.com/omnigent-ai/omnigent/pull/10329), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(runner): wait for a pending host sign-in before failing the launch ([#10333](https://github.com/omnigent-ai/omnigent/pull/10333), [@yaoharry](https://github.com/yaoharry)) - [Bug fix / Docs / Test/CI] The installer now includes Databricks workspace-login dependencies by default; use `--no-databricks` to opt out. ([#10334](https://github.com/omnigent-ai/omnigent/pull/10334), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] fix(cli): retry transient local readiness transport errors ([#10343](https://github.com/omnigent-ai/omnigent/pull/10343), [@yaoharry](https://github.com/yaoharry)) - [UI / Feature] Export desktop sign-in diagnostics from the Server menu without enabling Developer Mode. ([#10348](https://github.com/omnigent-ai/omnigent/pull/10348), [@fanzeyi](https://github.com/fanzeyi)) - [Bug fix] fix(runner): scope terminal liveness cache to its instance ([#10351](https://github.com/omnigent-ai/omnigent/pull/10351), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(runner): preserve replacement backends during Codex teardown ([#10354](https://github.com/omnigent-ai/omnigent/pull/10354), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(server,runner): don't fail sessions of a runner that shut down idle ([#10358](https://github.com/omnigent-ai/omnigent/pull/10358), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(android): default the Databricks OAuth client ID to omnigent ([#10360](https://github.com/omnigent-ai/omnigent/pull/10360), [@fanzeyi](https://github.com/fanzeyi)) - [Bug fix] fix(debug-logging): attribute client rows to their workspace from startup ([#10366](https://github.com/omnigent-ai/omnigent/pull/10366), [@Edwinhe03](https://github.com/Edwinhe03)) - [Test/CI] fix(polly): bound PR scope by the linked issue ([#10374](https://github.com/omnigent-ai/omnigent/pull/10374), [@serena-ruan](https://github.com/serena-ruan)) - chore(deps): bump the python-security group across 1 directory with 8 updates ([#10382](https://github.com/omnigent-ai/omnigent/pull/10382), [@dependabot[bot]](https://github.com/apps/dependabot)) - [UI / Bug fix / Docs] Side chats now open the slash-command menu, run typed `/skills`, answer `/help` locally, and keep the skill receipt visible in the transcript ([#10384](https://github.com/omnigent-ai/omnigent/pull/10384), [@jsonmp-k8](https://github.com/jsonmp-k8)) - chore(deps): bump actions/checkout from 5.0.0 to 7.0.1 ([#10387](https://github.com/omnigent-ai/omnigent/pull/10387), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump actions/cache in /.github/actions/e2e-run ([#10392](https://github.com/omnigent-ai/omnigent/pull/10392), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump pnpm/action-setup in /.github/actions/setup-pnpm ([#10395](https://github.com/omnigent-ai/omnigent/pull/10395), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump shadcn ([#10398](https://github.com/omnigent-ai/omnigent/pull/10398), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump react-hook-form from 7.82.0 to 7.89.0 ([#10399](https://github.com/omnigent-ai/omnigent/pull/10399), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump radix-ui from 1.6.3 to 1.7.0 ([#10400](https://github.com/omnigent-ai/omnigent/pull/10400), [@dependabot[bot]](https://github.com/apps/dependabot)) - [Bug fix] fix(resolve): forward the Linear key when launching a ticket-only run ([#10402](https://github.com/omnigent-ai/omnigent/pull/10402), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] fix(pi-native): fix two native Pi resume failures (bound picker IDs, tool-result adjacency) ([#10405](https://github.com/omnigent-ai/omnigent/pull/10405), [@Edwinhe03](https://github.com/Edwinhe03)) - [Bug fix] fix(server): settle relay-bound sessions of an idle-shut-down runner at disconnect ([#10408](https://github.com/omnigent-ai/omnigent/pull/10408), [@yaoharry](https://github.com/yaoharry)) - [Feature] feat(server): let a replica hand a runner's tunnel to another replica ([#10409](https://github.com/omnigent-ai/omnigent/pull/10409), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test: preserve explicitly advertised Codex service routes ([#10414](https://github.com/omnigent-ai/omnigent/pull/10414), [@yaoharry](https://github.com/yaoharry)) - [Docs / Chore] chore: relay native startup cause context to server logs ([#10417](https://github.com/omnigent-ai/omnigent/pull/10417), [@yaoharry](https://github.com/yaoharry)) - [Bug fix / Docs] fix(codex-native): diagnose unavailable bridge state without decode crashes ([#10419](https://github.com/omnigent-ai/omnigent/pull/10419), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(server): initialize connected native sessions before first input ([#10420](https://github.com/omnigent-ai/omnigent/pull/10420), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(desktop): stop session-expiry recording on teardown ([#10422](https://github.com/omnigent-ai/omnigent/pull/10422), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix / Docs / Chore / Test/CI] fix(ci): unblock automatic merges of individual Dependabot updates ([#10423](https://github.com/omnigent-ai/omnigent/pull/10423), [@PattaraS](https://github.com/PattaraS)) - [UI / Feature] feat(ui): edit custom agents from Settings ([#10426](https://github.com/omnigent-ai/omnigent/pull/10426), [@hzub](https://github.com/hzub)) - [UI / Bug fix] "Run on Arca" now opens sign-in automatically when your Arca instance isn't signed in, instead of asking you to click "Sign in and retry" ([#10428](https://github.com/omnigent-ai/omnigent/pull/10428), [@zhengwin](https://github.com/zhengwin)) - [UI / Bug fix / Feature] fix(web): stabilize Status grouping and simplify sidebar labels ([#10433](https://github.com/omnigent-ai/omnigent/pull/10433), [@hzub](https://github.com/hzub)) - chore(deps): bump toml from 0.8.23 to 1.1.8+spec-1.1.0 in /dev/omnidev ([#10435](https://github.com/omnigent-ai/omnigent/pull/10435), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump anyhow from 1.0.103 to 1.0.104 in /dev/omnidev ([#10436](https://github.com/omnigent-ai/omnigent/pull/10436), [@dependabot[bot]](https://github.com/apps/dependabot)) - [Chore / Test/CI] chore(deps): bump pytest-playwright from 0.8.0 to 0.10.0 ([#10442](https://github.com/omnigent-ai/omnigent/pull/10442), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump openshell from 0.0.89 to 0.1.2 ([#10445](https://github.com/omnigent-ai/omnigent/pull/10445), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump anyhow in /tests/codex_parity/sidecar ([#10449](https://github.com/omnigent-ai/omnigent/pull/10449), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump @testing-library/react from 16.3.2 to 16.3.3 ([#10450](https://github.com/omnigent-ai/omnigent/pull/10450), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump electron from 42.7.0 to 42.11.12 ([#10457](https://github.com/omnigent-ai/omnigent/pull/10457), [@dependabot[bot]](https://github.com/apps/dependabot)) - [Chore] chore(harnesses): retire the harness_settings_ui release feature ([#10459](https://github.com/omnigent-ai/omnigent/pull/10459), [@hzub](https://github.com/hzub)) - [Bug fix / Chore] Revert premature native agy gateway merge (#7636) ([#10460](https://github.com/omnigent-ai/omnigent/pull/10460), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] Preserve prepared repro agent in worktrees ([#10462](https://github.com/omnigent-ai/omnigent/pull/10462), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Bug fix] fix(web): label the Automations create button "New automation" ([#10464](https://github.com/omnigent-ai/omnigent/pull/10464), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix] fix(web): keep the Select panel tooltip closed after a mouse pick ([#10466](https://github.com/omnigent-ai/omnigent/pull/10466), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Chore / Test/CI] chore(deps): consolidate cache action upgrades to v6.1.0 ([#10468](https://github.com/omnigent-ai/omnigent/pull/10468), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix / Docs] fix(ui): align custom agents table and edit configurations inline ([#10487](https://github.com/omnigent-ai/omnigent/pull/10487), [@hzub](https://github.com/hzub)) - [Docs] docs(claude-native): correct the policy hook's shutdown-order note ([#10501](https://github.com/omnigent-ai/omnigent/pull/10501), [@fabriciodelocco](https://github.com/fabriciodelocco)) - [Bug fix] fix(server): keep a runner exit's cause in the stored session error ([#10504](https://github.com/omnigent-ai/omnigent/pull/10504), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [UI / Bug fix] A Codex session whose turns keep failing while compacting on its previous model now explains why and offers a fork that continues on the selected model; spent-budget error cards are gray instead of red ([#10505](https://github.com/omnigent-ai/omnigent/pull/10505), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [Bug fix] Active sessions no longer disconnect because the server's system clock is corrected. ([#10515](https://github.com/omnigent-ai/omnigent/pull/10515), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Sessions keep updating when other transcript streams on the same runner are retrying. ([#10518](https://github.com/omnigent-ai/omnigent/pull/10518), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(runner): keep closed preview tunnels on the HTTP error path ([#10520](https://github.com/omnigent-ai/omnigent/pull/10520), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] A Codex turn that hits a rate limit no longer asks you to run `codex login`. ([#10524](https://github.com/omnigent-ai/omnigent/pull/10524), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Resumed Codex sessions no longer fail on Kimi models after parallel tool calls. ([#10526](https://github.com/omnigent-ai/omnigent/pull/10526), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] An MCP server's certificate problem no longer fails Codex turns as a model connection error. ([#10530](https://github.com/omnigent-ai/omnigent/pull/10530), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] fix(ui): show a launching sandbox in the composer host chip ([#10531](https://github.com/omnigent-ai/omnigent/pull/10531), [@dbczumar](https://github.com/dbczumar)) - [Bug fix / Test/CI] Codex sessions created with `/new` keep working across terminal relaunches, model changes, and side-chat requests. ([#10535](https://github.com/omnigent-ai/omnigent/pull/10535), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(runner): keep a busy-pane Claude model switch queued when the turn settles mid-wait ([#10541](https://github.com/omnigent-ai/omnigent/pull/10541), [@yaoharry](https://github.com/yaoharry)) - [Docs / Chore / Test/CI] chore(logging): retain structured native provider failure facts ([#10542](https://github.com/omnigent-ai/omnigent/pull/10542), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] fix(web): blur the backdrop behind the slash and file-mention menus in dark mode ([#10546](https://github.com/omnigent-ai/omnigent/pull/10546), [@jsonmp-k8](https://github.com/jsonmp-k8)) - [Chore / Test/CI] test: preserve parallel workers and wait for signer readiness ([#10555](https://github.com/omnigent-ai/omnigent/pull/10555), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] A Claude Code approval that was waiting when your machine lost its network now reappears on the web once the connection returns. ([#10564](https://github.com/omnigent-ai/omnigent/pull/10564), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(server): end the tunnel as a peer close when a send loses the race ([#10568](https://github.com/omnigent-ai/omnigent/pull/10568), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(server): cancel a deleted session's runner relays ([#10573](https://github.com/omnigent-ai/omnigent/pull/10573), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(claude-native): preserve bridge updates across concurrent writers ([#10574](https://github.com/omnigent-ai/omnigent/pull/10574), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(server): count a disconnect as a failure only when the turn is lost ([#10579](https://github.com/omnigent-ai/omnigent/pull/10579), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(claude-native): preserve poller resync across concurrent ticks ([#10588](https://github.com/omnigent-ai/omnigent/pull/10588), [@fanzeyi](https://github.com/fanzeyi)) - [Test/CI] test(e2e_ui): make terminal reconnect test deterministic ([#10591](https://github.com/omnigent-ai/omnigent/pull/10591), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(e2e_ui): keep the recorded journey filming until its screencast has frames ([#10595](https://github.com/omnigent-ai/omnigent/pull/10595), [@yaoharry](https://github.com/yaoharry)) - [Bug fix / Docs] fix(server): don't fail a session from its previous runner's leftover relay ([#10617](https://github.com/omnigent-ai/omnigent/pull/10617), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(harness): don't start a turn for a mid-turn steer that missed its turn ([#10618](https://github.com/omnigent-ai/omnigent/pull/10618), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(native): make six native-harness unit tests survive slow CI runners ([#10626](https://github.com/omnigent-ai/omnigent/pull/10626), [@yaoharry](https://github.com/yaoharry)) - Pin reasoning_effort high on CI agents that left it unset ([#10627](https://github.com/omnigent-ai/omnigent/pull/10627), [@dbczumar](https://github.com/dbczumar)) - [Test/CI] test(server): wait for the tunnel ping evidence and scale raw hang guards ([#10640](https://github.com/omnigent-ai/omnigent/pull/10640), [@yaoharry](https://github.com/yaoharry)) - [Bug fix / Test/CI] fix(proc): keep process-tree identity stable across wall-clock steps ([#10641](https://github.com/omnigent-ai/omnigent/pull/10641), [@yaoharry](https://github.com/yaoharry)) - [Bug fix / Test/CI] fix(benchmarks): re-send a SIGTERM cancel that httpx swallowed ([#10642](https://github.com/omnigent-ai/omnigent/pull/10642), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(inner): replace faulthandler stack watchdog that segfaults xdist workers ([#10645](https://github.com/omnigent-ai/omnigent/pull/10645), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(codex): give the fake app-server process a pid no real process can hold ([#10648](https://github.com/omnigent-ai/omnigent/pull/10648), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] A web message sent while the session's host is offline now waits and sends when the host reconnects, instead of failing. ([#10666](https://github.com/omnigent-ai/omnigent/pull/10666), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(codex-native): launch on the default when the spec pins the same unlisted model ([#10669](https://github.com/omnigent-ai/omnigent/pull/10669), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] A message you send while Claude Code is asking you a question or for permission now waits for your answer and is then delivered, instead of failing. ([#10671](https://github.com/omnigent-ai/omnigent/pull/10671), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(pi-native): post a re-routed model pick as a notice, not an error ([#10675](https://github.com/omnigent-ai/omnigent/pull/10675), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Claude hook refusals stop automatic submit retries while preserving unconfirmed message delivery. ([#10683](https://github.com/omnigent-ai/omnigent/pull/10683), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Sending a message while Claude Code shows a settings-error or folder-trust dialog no longer closes Claude Code; the dialog stays up for you to answer. ([#10692](https://github.com/omnigent-ai/omnigent/pull/10692), [@yaoharry](https://github.com/yaoharry)) - [UI / Chore] chore(web): upgrade TipTap to 3.31.4 ([#10698](https://github.com/omnigent-ai/omnigent/pull/10698), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix] fix(web): refresh managed session shells after provisioning ([#10705](https://github.com/omnigent-ai/omnigent/pull/10705), [@dbczumar](https://github.com/dbczumar)) - [UI / Bug fix] fix(ui): keep the terminal on "Starting up" while a sandbox launches ([#10706](https://github.com/omnigent-ai/omnigent/pull/10706), [@dbczumar](https://github.com/dbczumar)) - chore(deps): bump mcp from 1.28.1 to 1.30.0 ([#10708](https://github.com/omnigent-ai/omnigent/pull/10708), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump claude-agent-sdk from 0.2.94 to 0.2.121 ([#10709](https://github.com/omnigent-ai/omnigent/pull/10709), [@dependabot[bot]](https://github.com/apps/dependabot)) - [UI / Bug fix] fix(ui): keep a CLI session's first message through a long sandbox launch ([#10710](https://github.com/omnigent-ai/omnigent/pull/10710), [@dbczumar](https://github.com/dbczumar)) - [Chore / Test/CI] chore(deps): bundle remaining cache and pnpm action upgrades ([#10711](https://github.com/omnigent-ai/omnigent/pull/10711), [@PattaraS](https://github.com/PattaraS)) - [Chore] chore(deps): bundle omnidev ignore and libc patches ([#10712](https://github.com/omnigent-ai/omnigent/pull/10712), [@PattaraS](https://github.com/PattaraS)) - [Chore] chore(deps): bundle web icons and telemetry updates ([#10713](https://github.com/omnigent-ai/omnigent/pull/10713), [@PattaraS](https://github.com/PattaraS)) - [Chore / Test/CI] chore(deps): bundle aligned Storybook, Vitest and esbuild updates ([#10714](https://github.com/omnigent-ai/omnigent/pull/10714), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix / Test/CI] File viewers avoid duplicate rendering and preserve unsaved edits and comment drafts when resizing between desktop and mobile. ([#10715](https://github.com/omnigent-ai/omnigent/pull/10715), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix] Markdown files with many code blocks open with fewer repeated browser layouts. ([#10723](https://github.com/omnigent-ai/omnigent/pull/10723), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test: reap resumption daemons before later CLI tests ([#10724](https://github.com/omnigent-ai/omnigent/pull/10724), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test: bind telemetry session to its own host daemon ([#10725](https://github.com/omnigent-ai/omnigent/pull/10725), [@PattaraS](https://github.com/PattaraS)) - [Docs / Test/CI] test(web): define a repeatable Markdown editor CUJ ([#10729](https://github.com/omnigent-ai/omnigent/pull/10729), [@PattaraS](https://github.com/PattaraS)) - fix(claude-native): keep a held permission prompt alive across a lapsed login ([#10730](https://github.com/omnigent-ai/omnigent/pull/10730), [@dbczumar](https://github.com/dbczumar)) - [UI / Feature] feat(ui): warn when a host's dbcert expires and refresh it in one click ([#10731](https://github.com/omnigent-ai/omnigent/pull/10731), [@dbczumar](https://github.com/dbczumar)) - chore(ci): upgrade Claude Code CLI pin to 2.1.283 ([#10732](https://github.com/omnigent-ai/omnigent/pull/10732), [@dbczumar](https://github.com/dbczumar)) - fix(ui): give back a message whose send a reload cut off ([#10735](https://github.com/omnigent-ai/omnigent/pull/10735), [@dbczumar](https://github.com/dbczumar)) - [Bug fix / Test/CI] Codex subagents show live work, and native child mirrors no longer offer terminals they do not own. ([#10736](https://github.com/omnigent-ai/omnigent/pull/10736), [@dbczumar](https://github.com/dbczumar)) - [Docs / Test/CI] docs: standardize SDK and native harness acceptance checklist ([#10737](https://github.com/omnigent-ai/omnigent/pull/10737), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] fix(dev): keep the Linear key off the runner under CI's credential proxy ([#10738](https://github.com/omnigent-ai/omnigent/pull/10738), [@serena-ruan](https://github.com/serena-ruan)) - [Docs] docs(feature-agent): upload demo clips with gh pr comment --attach ([#10741](https://github.com/omnigent-ai/omnigent/pull/10741), [@serena-ruan](https://github.com/serena-ruan)) - [Test/CI] test: share hermetic provider resolution across model-resolution tests ([#10742](https://github.com/omnigent-ai/omnigent/pull/10742), [@PattaraS](https://github.com/PattaraS)) - [Chore / Test/CI] test: share the resilience lab's port reservation as reserve_port ([#10743](https://github.com/omnigent-ai/omnigent/pull/10743), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix] Markdown table row/column controls and "Delete table" work in managed Omnigent ([#10747](https://github.com/omnigent-ai/omnigent/pull/10747), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Bug fix] Devin/omni 12227 queued prompt reordering doesnt work on iphone ([#10748](https://github.com/omnigent-ai/omnigent/pull/10748), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix] Large Markdown files with task lists and tables open faster in the rich-text editor. ([#10751](https://github.com/omnigent-ai/omnigent/pull/10751), [@PattaraS](https://github.com/PattaraS)) - [Bug fix / Docs / Test/CI] test: reject managed routing in Claude mock journeys ([#10753](https://github.com/omnigent-ai/omnigent/pull/10753), [@PattaraS](https://github.com/PattaraS)) - [Chore] chore(deps): bundle Serde patches for Rust tooling ([#10754](https://github.com/omnigent-ai/omnigent/pull/10754), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] fix(runner): keep harness connections alive longer than the runner's client ([#10756](https://github.com/omnigent-ai/omnigent/pull/10756), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(e2e): pick a free port for the newer-build database rejection check ([#10759](https://github.com/omnigent-ai/omnigent/pull/10759), [@PattaraS](https://github.com/PattaraS)) - [Bug fix / Chore / Test/CI] ci: scope dependency tests across all configured ecosystems ([#10760](https://github.com/omnigent-ai/omnigent/pull/10760), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] ci: allow 25 minutes for Browser Contract UI ([#10761](https://github.com/omnigent-ai/omnigent/pull/10761), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix] Markdown files with very long lines open without crashing during heading detection. ([#10762](https://github.com/omnigent-ai/omnigent/pull/10762), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test(browser): wait for Markdown selection before editing ([#10767](https://github.com/omnigent-ai/omnigent/pull/10767), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test(web): strengthen Markdown heading compatibility checks ([#10769](https://github.com/omnigent-ai/omnigent/pull/10769), [@PattaraS](https://github.com/PattaraS)) - [Bug fix / Docs / Test/CI] fix(skills): keep Codex plugin skills when inventory fails ([#10771](https://github.com/omnigent-ai/omnigent/pull/10771), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix] Typing in large Markdown files is more responsive by deferring full-document conversion until saving. ([#10772](https://github.com/omnigent-ai/omnigent/pull/10772), [@PattaraS](https://github.com/PattaraS)) - [Docs / Chore] refactor(config): add scoped preference resolution foundation ([#10773](https://github.com/omnigent-ai/omnigent/pull/10773), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test(resilience): retire lab connections before server idle timeout ([#10774](https://github.com/omnigent-ai/omnigent/pull/10774), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix] Fix pull request diff errors and add refresh recovery ([#10775](https://github.com/omnigent-ai/omnigent/pull/10775), [@hzub](https://github.com/hzub)) - [Bug fix] fix(runner): keep a Claude model switch that landed before its budget lapsed ([#10777](https://github.com/omnigent-ai/omnigent/pull/10777), [@yaoharry](https://github.com/yaoharry)) - [Chore] chore(deps): bundle compatible Android toolchain updates ([#10779](https://github.com/omnigent-ai/omnigent/pull/10779), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix] perf(web): defer code-block language options until interaction ([#10783](https://github.com/omnigent-ai/omnigent/pull/10783), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test(claude): wait for recorded hook refusal before checking retries ([#10785](https://github.com/omnigent-ai/omnigent/pull/10785), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] fix(claude-native): respawn the harness when a relaunch moves the session's bridge ([#10793](https://github.com/omnigent-ai/omnigent/pull/10793), [@yaoharry](https://github.com/yaoharry)) - chore(deps): bump fastlane from 2.240.1 to 2.241.0 in /web/ios ([#10795](https://github.com/omnigent-ai/omnigent/pull/10795), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump actions/create-github-app-token from 3.2.0 to 3.3.0 ([#10796](https://github.com/omnigent-ai/omnigent/pull/10796), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump docker/login-action from 4.2.0 to 4.6.0 ([#10797](https://github.com/omnigent-ai/omnigent/pull/10797), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump actions/download-artifact from 8.0.1 to 8.0.2 ([#10798](https://github.com/omnigent-ai/omnigent/pull/10798), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump imjasonh/setup-crane from 0.6 to 0.7 ([#10799](https://github.com/omnigent-ai/omnigent/pull/10799), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump actions/stale from 10.3.0 to 11.0.0 ([#10800](https://github.com/omnigent-ai/omnigent/pull/10800), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump docker/setup-qemu-action from 4.1.0 to 4.4.0 ([#10801](https://github.com/omnigent-ai/omnigent/pull/10801), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump actions/upload-artifact from 4.6.2 to 7.0.2 ([#10802](https://github.com/omnigent-ai/omnigent/pull/10802), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump click from 8.4.1 to 8.5.0 ([#10803](https://github.com/omnigent-ai/omnigent/pull/10803), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump astral-sh/setup-uv from 10.1.0 to 10.3.0 ([#10804](https://github.com/omnigent-ai/omnigent/pull/10804), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump docker/build-push-action from 7.2.0 to 7.4.0 ([#10806](https://github.com/omnigent-ai/omnigent/pull/10806), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump @testing-library/user-event from 14.6.5 to 14.6.7 ([#10807](https://github.com/omnigent-ai/omnigent/pull/10807), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump serde_json from 1.0.150 to 1.0.154 in /dev/omnidev ([#10808](https://github.com/omnigent-ai/omnigent/pull/10808), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump tokio from 1.52.3 to 1.53.2 in /dev/omnidev ([#10809](https://github.com/omnigent-ai/omnigent/pull/10809), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump clap from 4.6.1 to 4.6.7 in /dev/omnidev ([#10810](https://github.com/omnigent-ai/omnigent/pull/10810), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump tokio in /tests/codex_parity/sidecar ([#10813](https://github.com/omnigent-ai/omnigent/pull/10813), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump serde_json in /tests/codex_parity/sidecar ([#10814](https://github.com/omnigent-ai/omnigent/pull/10814), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump @tanstack/react-virtual from 3.14.10 to 3.14.17 ([#10815](https://github.com/omnigent-ai/omnigent/pull/10815), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump nanoid from 6.0.0 to 6.0.2 ([#10816](https://github.com/omnigent-ai/omnigent/pull/10816), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump react-router-dom from 7.18.2 to 7.18.4 ([#10817](https://github.com/omnigent-ai/omnigent/pull/10817), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump pdfjs-dist from 4.8.69 to 4.10.38 ([#10819](https://github.com/omnigent-ai/omnigent/pull/10819), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump postcss from 8.5.23 to 8.5.29 ([#10820](https://github.com/omnigent-ai/omnigent/pull/10820), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump antd from 6.5.1 to 6.6.6 ([#10821](https://github.com/omnigent-ai/omnigent/pull/10821), [@dependabot[bot]](https://github.com/apps/dependabot)) - [Bug fix] `omnigent sandbox create --provider openshell` works with the openshell 0.1 SDK, which the `openshell` extra now requires ([#10822](https://github.com/omnigent-ai/omnigent/pull/10822), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(claude): wait for native identity before refusal submission ([#10823](https://github.com/omnigent-ai/omnigent/pull/10823), [@PattaraS](https://github.com/PattaraS)) - chore(deps): bump filelock from 3.29.1 to 4.1.1 ([#10825](https://github.com/omnigent-ai/omnigent/pull/10825), [@dependabot[bot]](https://github.com/apps/dependabot)) - [Bug fix] fix(os-env): do not resend a request that may already have run on a dead helper ([#10827](https://github.com/omnigent-ai/omnigent/pull/10827), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test(web): exclude assertion snapshots from markdown load timings ([#10828](https://github.com/omnigent-ai/omnigent/pull/10828), [@PattaraS](https://github.com/PattaraS)) - chore(deps): bump actions/upload-artifact ([#10830](https://github.com/omnigent-ai/omnigent/pull/10830), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump actions/upload-artifact ([#10831](https://github.com/omnigent-ai/omnigent/pull/10831), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump actions/upload-artifact in /.github/actions/e2e-run ([#10832](https://github.com/omnigent-ai/omnigent/pull/10832), [@dependabot[bot]](https://github.com/apps/dependabot)) - [Chore / Test/CI] test: replace local copies of find_free_port with the shared helper ([#10833](https://github.com/omnigent-ai/omnigent/pull/10833), [@PattaraS](https://github.com/PattaraS)) - chore(deps): bump actions/upload-artifact ([#10834](https://github.com/omnigent-ai/omnigent/pull/10834), [@dependabot[bot]](https://github.com/apps/dependabot)) - [Chore / Test/CI] test(e2e-ui): share one poll helper instead of 23 identical copies ([#10836](https://github.com/omnigent-ai/omnigent/pull/10836), [@PattaraS](https://github.com/PattaraS)) - [UI / Chore] perf(web): cache TipTap renderer registry snapshots ([#10838](https://github.com/omnigent-ai/omnigent/pull/10838), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix] fix(ui): show asleep sandboxes as asleep and stop retrying their panels ([#10841](https://github.com/omnigent-ai/omnigent/pull/10841), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] Managed sandbox start failures no longer show the host's launch token in the error message or the server log ([#10846](https://github.com/omnigent-ai/omnigent/pull/10846), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Bug fix / Breaking] Tightened permission and validation checks on sessions and runners. Breaking: changing a session's permission/approval mode or terminal launch arguments, transferring terminals, and posting external transcript or native mode-change events now require session ownership (or the session's bound runner for events), and native approval hooks require edit access; project `.omnigent/config.yaml` can no longer set `server` or per-harness `command`/`args` (move them to `~/.omnigent/config.yaml`); and the CLI no longer imports tool or policy callables from the working directory — install them as packages in both the CLI and server environments. ([#10850](https://github.com/omnigent-ai/omnigent/pull/10850), [@aravind-segu](https://github.com/aravind-segu)) - [Bug fix] fix(claude-native): keep a failed turn's API error when the next turn opens first ([#10853](https://github.com/omnigent-ai/omnigent/pull/10853), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] fix(ui): say a stopped sandbox is offline, not that the agent is asleep ([#10859](https://github.com/omnigent-ai/omnigent/pull/10859), [@dbczumar](https://github.com/dbczumar)) - [UI / Feature] Choose which Workspace pages stay pinned in Settings → Appearance, and open the rest from the `+` menu. ([#10864](https://github.com/omnigent-ai/omnigent/pull/10864), [@dhruv0811](https://github.com/dhruv0811)) - [Test/CI] fix(ci): accept mixed test assessments in Polly summaries ([#10871](https://github.com/omnigent-ai/omnigent/pull/10871), [@fanzeyi](https://github.com/fanzeyi)) - [Bug fix] fix(web): pin pdfjs-dist to the version react-pdf runs ([#10875](https://github.com/omnigent-ai/omnigent/pull/10875), [@aravind-segu](https://github.com/aravind-segu)) - chore(deps): bump anchore/sbom-action/download-syft ([#10877](https://github.com/omnigent-ai/omnigent/pull/10877), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump react-hook-form from 7.89.0 to 7.90.0 ([#10881](https://github.com/omnigent-ai/omnigent/pull/10881), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump tiktoken from 0.13.0 to 0.14.0 ([#10882](https://github.com/omnigent-ai/omnigent/pull/10882), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump blaxel from 0.4.1 to 0.4.13 ([#10885](https://github.com/omnigent-ai/omnigent/pull/10885), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump ai from 6.0.230 to 6.0.304 ([#10888](https://github.com/omnigent-ai/omnigent/pull/10888), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump gradle/actions/setup-gradle ([#10891](https://github.com/omnigent-ai/omnigent/pull/10891), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump docker/setup-buildx-action from 4.1.0 to 4.4.1 ([#10892](https://github.com/omnigent-ai/omnigent/pull/10892), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump ossf/scorecard-action from 2.4.3 to 2.5.0 ([#10893](https://github.com/omnigent-ai/omnigent/pull/10893), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump actions/setup-python ([#10897](https://github.com/omnigent-ai/omnigent/pull/10897), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump actions/setup-python ([#10898](https://github.com/omnigent-ai/omnigent/pull/10898), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump actions/setup-python in /.github/actions/e2e-run ([#10899](https://github.com/omnigent-ai/omnigent/pull/10899), [@dependabot[bot]](https://github.com/apps/dependabot)) - chore(deps): bump actions/setup-python ([#10900](https://github.com/omnigent-ai/omnigent/pull/10900), [@dependabot[bot]](https://github.com/apps/dependabot)) - [UI / Bug fix] Markdown files above 1 MiB open as editable source to avoid long rich-rendering stalls; truncated files remain read-only. ([#10917](https://github.com/omnigent-ai/omnigent/pull/10917), [@PattaraS](https://github.com/PattaraS)) - [Chore] chore(electron): bump desktop app version to 0.18.0 ([#10918](https://github.com/omnigent-ai/omnigent/pull/10918), [@bbqiu](https://github.com/bbqiu)) - [Bug fix / Test/CI] fix(benchmarks): stop each cold-start runner before the next sample ([#10943](https://github.com/omnigent-ai/omnigent/pull/10943), [@aravind-segu](https://github.com/aravind-segu)) ## [v0.18.0] — 2026-10-13 - [Feature] New `web_read` builtin reads a single URL's full content as clean markdown through a pluggable backend (Jina / Nimble / Firecrawl), rendering JavaScript so client-side pages return real text where a plain fetch returns an empty page. ([#4490](https://github.com/omnigent-ai/omnigent/pull/4490), [@Tagar](https://github.com/Tagar)) - [Bug fix / Breaking] Python client `list_items()` and `child_sessions()` now return a `PaginatedList` with `has_more`, `first_id`, and `last_id` so callers can detect truncation and page through results ([#5629](https://github.com/omnigent-ai/omnigent/pull/5629), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Native startup and policy evaluation now retry temporary HTTP 429 responses before surfacing or failing closed. ([#5655](https://github.com/omnigent-ai/omnigent/pull/5655), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [Bug fix] A terminal transfer that collides with an existing terminal on the target session now reports a 409 conflict instead of a 400 invalid-input error. ([#6282](https://github.com/omnigent-ai/omnigent/pull/6282), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(hosts): fast, actionable rejection when a host is too old for harness-setup frames ([#6356](https://github.com/omnigent-ai/omnigent/pull/6356), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Forking or resuming a Pi session after a turn with parallel tool calls no longer fails with an Anthropic `400 unexpected tool_use_id` error. ([#6486](https://github.com/omnigent-ai/omnigent/pull/6486), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] fix(runner): keep deny-capable tool policies from vetoing session init via the sys_agent_start probe ([#6609](https://github.com/omnigent-ai/omnigent/pull/6609), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix / Test/CI] A backing-service permission denial now returns a clear 403 naming the denied resource instead of a generic internal error. ([#6831](https://github.com/omnigent-ai/omnigent/pull/6831), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Docs / Test/CI] N/A — test reliability and audit documentation only. ([#6993](https://github.com/omnigent-ai/omnigent/pull/6993), [@yaoharry](https://github.com/yaoharry)) - [Bug fix / Test/CI] Native Claude resumes now use the recorded session workspace for project configuration and return clear recovery guidance when that workspace is missing. ([#7611](https://github.com/omnigent-ai/omnigent/pull/7611), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [Bug fix] Native Claude and Codex turns recover attachments after transient file-read failures. ([#7681](https://github.com/omnigent-ai/omnigent/pull/7681), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] fix(android): recover from main-frame HTTP errors ([#7842](https://github.com/omnigent-ai/omnigent/pull/7842), [@btli](https://github.com/btli)) - [Test/CI] test(runner): keep the PR-registry concurrency test off the production lock budget ([#7893](https://github.com/omnigent-ai/omnigent/pull/7893), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] fix(tests): deflake host-daemon lifecycle and runner-env e2e tests ([#7911](https://github.com/omnigent-ai/omnigent/pull/7911), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Cancel obsolete changed-files requests when switching sessions ([#7923](https://github.com/omnigent-ai/omnigent/pull/7923), [@craiuconstantintiberiu](https://github.com/craiuconstantintiberiu)) - [Bug fix] fix(server): skip unchanged effort forwards ([#8088](https://github.com/omnigent-ai/omnigent/pull/8088), [@arthivjkumar](https://github.com/arthivjkumar)) - [Bug fix] Native terminals no longer fail to start with "Could not fetch Codex launch config" when the server is under load ([#8150](https://github.com/omnigent-ai/omnigent/pull/8150), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Turns that fail because a session outgrew the server's request size limit now surface as a recoverable context-window overflow, instead of showing a raw BAD_REQUEST error. ([#8181](https://github.com/omnigent-ai/omnigent/pull/8181), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Claude Code sub-agent transcripts no longer drop when the server needs more than 10s to store a large batch ([#8237](https://github.com/omnigent-ai/omnigent/pull/8237), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] “Fork from here” now works on side-chat replies and promotes the fork to a visible session. ([#8352](https://github.com/omnigent-ai/omnigent/pull/8352), [@btli](https://github.com/btli)) - [Bug fix] Pi turns now wait for pi to settle, so a provider error that pi retries on its own no longer fails the turn or bleeds into the next one. ([#8388](https://github.com/omnigent-ai/omnigent/pull/8388), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix] Hovering a file near the bottom of the Files panel no longer makes the list jump or adds a horizontal scrollbar, and the path tooltip shows up at the pointer again, flipping above or to the left near the window edges instead of being clipped, and wrapping very long paths inside the tooltip. ([#8395](https://github.com/omnigent-ai/omnigent/pull/8395), [@btli](https://github.com/btli)) - fix(tools): return sys_os_* results as plain UTF-8, not \u-escaped ([#8400](https://github.com/omnigent-ai/omnigent/pull/8400), [@fdoooch](https://github.com/fdoooch)) - [UI / Bug fix / Test/CI] New managed sessions reliably show replies after sandbox startup without requiring a reload or resend. ([#8488](https://github.com/omnigent-ai/omnigent/pull/8488), [@dbczumar](https://github.com/dbczumar)) - [UI / Feature] Copying an agent's reply now keeps its formatting when you paste it into Slack, Google Docs or another ([#8512](https://github.com/omnigent-ai/omnigent/pull/8512), [@jsonmp-k8](https://github.com/jsonmp-k8)) - [UI / Feature] Users can now import up to 1000 sessions at once (increased from 100) via web UI and CLI ([#8517](https://github.com/omnigent-ai/omnigent/pull/8517), [@terrytangyuan](https://github.com/terrytangyuan)) - [Bug fix] Session creation no longer fails at a fixed 30 seconds when a host's launch does slow set-up (building a container sandbox, pulling an image, starting an app); set `OMNIGENT_HOST_LAUNCH_TIMEOUT_S` to allow longer. ([#8520](https://github.com/omnigent-ai/omnigent/pull/8520), [@jsonmp-k8](https://github.com/jsonmp-k8)) - [Bug fix] The sign-in link offered while a launcher (such as `isaac codex`) waits for OAuth now opens the authorize page instead of the workspace home page. ([#8571](https://github.com/omnigent-ai/omnigent/pull/8571), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] `omnigent host stop --server ` now stops the same daemon `omnigent host` reports as already running, and reports foreign-owned daemons truthfully. ([#8589](https://github.com/omnigent-ai/omnigent/pull/8589), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] `openai-agents` agents with Databricks auth work on native Windows ([#8657](https://github.com/omnigent-ai/omnigent/pull/8657), [@GirishS2093](https://github.com/GirishS2093)) - [Bug fix] A lost end-of-turn policy verdict no longer leaves a session "running" for hours ([#8665](https://github.com/omnigent-ai/omnigent/pull/8665), [@GirishS2093](https://github.com/GirishS2093)) - [UI / Feature] `omnigent agent add` installs a custom agent once so it stays in your new-session picker on every host; `omnigent agent list` and `omnigent agent remove` manage them. Servers running several replicas should upgrade them all together. ([#8677](https://github.com/omnigent-ai/omnigent/pull/8677), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Feature] Install an agent bundle from the composer's Create custom agent dialog with Import bundle ([#8680](https://github.com/omnigent-ai/omnigent/pull/8680), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] fix(codex): start a fresh thread when the resume lineage is not paginated ([#8698](https://github.com/omnigent-ai/omnigent/pull/8698), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(harness): read error_details for StopFailure and warn when absent ([#8700](https://github.com/omnigent-ai/omnigent/pull/8700), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(runner): tolerate a deleted runner cwd when loading project config ([#8703](https://github.com/omnigent-ai/omnigent/pull/8703), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(runner): guard ACP executor against deleted working directory ([#8704](https://github.com/omnigent-ai/omnigent/pull/8704), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(runner): diagnose native terminal exit-at-spawn for all runtimes, not just Codex ([#8727](https://github.com/omnigent-ai/omnigent/pull/8727), [@yaoharry](https://github.com/yaoharry)) - [Feature] feat(sessions): forks share the agent row; cross-user forks copy it ([#8796](https://github.com/omnigent-ai/omnigent/pull/8796), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Docs] Databricks AI Gateway is now shown as Databricks Unity Gateway throughout Omnigent. ([#8812](https://github.com/omnigent-ai/omnigent/pull/8812), [@zhengwin](https://github.com/zhengwin)) - [UI / Bug fix] The side-chat input now grows as you type longer messages. ([#8813](https://github.com/omnigent-ai/omnigent/pull/8813), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] Chat links to files whose names contain spaces or other percent-encoded ([#8892](https://github.com/omnigent-ai/omnigent/pull/8892), [@evelyn-hur](https://github.com/evelyn-hur)) - [UI / Bug fix] fix(web): gate the auto-opening import review modal behind a release feature ([#8909](https://github.com/omnigent-ai/omnigent/pull/8909), [@yaoharry](https://github.com/yaoharry)) - feat(host): report host daemon crashes and exits to the debug-log sink ([#8911](https://github.com/omnigent-ai/omnigent/pull/8911), [@fanzeyi](https://github.com/fanzeyi)) - [Docs / Chore] refactor(git): add installable provider descriptors [1/4] ([#8914](https://github.com/omnigent-ai/omnigent/pull/8914), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Bug fix / Docs / Chore / Test/CI] The Pull Requests panel preserves GitHub controls and discovers requests from multiple Git providers together. ([#8916](https://github.com/omnigent-ai/omnigent/pull/8916), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Bug fix / Feature / Docs] View GitLab merge requests and their diffs in the session panel, with automatic association after agent MR mutations. ([#8918](https://github.com/omnigent-ai/omnigent/pull/8918), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Feature / Docs] View Azure DevOps pull requests, checks, comments, and diffs in the session panel. ([#8919](https://github.com/omnigent-ai/omnigent/pull/8919), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Bug fix / Docs / Test/CI] Remote runner setup can complete the required Omnigent sign-in on Arca and retry connecting to managed workspace servers. ([#8973](https://github.com/omnigent-ai/omnigent/pull/8973), [@hzub](https://github.com/hzub)) - [UI / Bug fix / Test/CI] fix(codex-native): clamp unsupported reasoning effort ([#9007](https://github.com/omnigent-ai/omnigent/pull/9007), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] Runner reconnections restore session streams and recover independent session trees without a shared time limit. ([#9023](https://github.com/omnigent-ai/omnigent/pull/9023), [@dbczumar](https://github.com/dbczumar)) - [Docs / Chore / Test/CI] chore: add per-connection tunnel heartbeat diagnostics ([#9029](https://github.com/omnigent-ai/omnigent/pull/9029), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] Claude Code policy hooks use backoff to tolerate transient connection and hostname-resolution failures before blocking a prompt. ([#9078](https://github.com/omnigent-ai/omnigent/pull/9078), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Feature / Docs] feat(settings): add gated custom agent management ([#9083](https://github.com/omnigent-ai/omnigent/pull/9083), [@hzub](https://github.com/hzub)) - [Bug fix] fix: discover shared user skills for Codex sessions ([#9084](https://github.com/omnigent-ai/omnigent/pull/9084), [@daniellok-db](https://github.com/daniellok-db)) - [Bug fix / Docs] fix(agents): check governing rules and real credential paths ([#9090](https://github.com/omnigent-ai/omnigent/pull/9090), [@PattaraS](https://github.com/PattaraS)) - [Bug fix / Test/CI] fix(review): let Resolve reuse automatic Polly reviews ([#9100](https://github.com/omnigent-ai/omnigent/pull/9100), [@PattaraS](https://github.com/PattaraS)) - [UI / Feature] Side chats now open in a full-screen drawer on phones, so "Ask in side chat", `/side`, and the composer's `+` tray work on mobile. ([#9135](https://github.com/omnigent-ai/omnigent/pull/9135), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] Native Pi sessions now retry and deduplicate durable transcript events instead of silently losing conversation items during transient event-service failures. ([#9144](https://github.com/omnigent-ai/omnigent/pull/9144), [@Edwinhe03](https://github.com/Edwinhe03)) - [Bug fix] fix(runner): give a slow launch-config read time to answer ([#9160](https://github.com/omnigent-ai/omnigent/pull/9160), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] A Codex session whose app-server stopped now recovers on the next message instead of failing every turn. ([#9161](https://github.com/omnigent-ai/omnigent/pull/9161), [@yaoharry](https://github.com/yaoharry)) - [UI / Feature] The desktop app's server picker has a Sign out option for Databricks and OIDC servers, replacing the "Sign in with a different account" link on the connect screen. ([#9165](https://github.com/omnigent-ai/omnigent/pull/9165), [@fanzeyi](https://github.com/fanzeyi)) - Bump version to 0.18.0.dev0 ([#9166](https://github.com/omnigent-ai/omnigent/pull/9166), [@omnigent-ci[bot]](https://github.com/apps/omnigent-ci)) - docs(changelog): record v0.17.0 ([#9167](https://github.com/omnigent-ai/omnigent/pull/9167), [@omnigent-ci[bot]](https://github.com/apps/omnigent-ci)) - [UI] fix(web): sentence-case harness statuses on the Harnesses settings page ([#9169](https://github.com/omnigent-ai/omnigent/pull/9169), [@evelyn-hur](https://github.com/evelyn-hur)) - [UI] fix(web): give clickable harness cards a visible hover ([#9172](https://github.com/omnigent-ai/omnigent/pull/9172), [@evelyn-hur](https://github.com/evelyn-hur)) - [Feature] feat(claude-sdk): forward OMNIGENT_CLAUDE_CODE_ENTRYPOINT as CLAUDE_CODE_ENTRYPOINT ([#9174](https://github.com/omnigent-ai/omnigent/pull/9174), [@ajayrgb](https://github.com/ajayrgb)) - [UI / Bug fix] fix(web): keep Settings content from shifting when a scrollbar appears ([#9177](https://github.com/omnigent-ai/omnigent/pull/9177), [@evelyn-hur](https://github.com/evelyn-hur)) - [Docs / Chore] chore(logging): attribute runner event ingestion failures to sessions ([#9188](https://github.com/omnigent-ai/omnigent/pull/9188), [@yaoharry](https://github.com/yaoharry)) - [Bug fix / Docs] Host connections keep responding to pings during slow or failing database heartbeat writes. ([#9190](https://github.com/omnigent-ai/omnigent/pull/9190), [@yaoharry](https://github.com/yaoharry)) - [UI / Chore] Mobile layouts now provide denser chat controls, clearer Settings organization, and more consistent responsive navigation. ([#9191](https://github.com/omnigent-ai/omnigent/pull/9191), [@ajayalfred](https://github.com/ajayalfred)) - [Test/CI] test(mas): cover subagent restart recovery races ([#9192](https://github.com/omnigent-ai/omnigent/pull/9192), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(runtime): ignore closed discovery stream subscribers ([#9195](https://github.com/omnigent-ai/omnigent/pull/9195), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(mas): cover session tools and runner history contracts ([#9197](https://github.com/omnigent-ai/omnigent/pull/9197), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(tunnel): settle header waiters on incomplete response completion ([#9200](https://github.com/omnigent-ai/omnigent/pull/9200), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(host): finish inventory requests when their connection retires ([#9202](https://github.com/omnigent-ai/omnigent/pull/9202), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(mas): cover subagent budget and effort constraints ([#9203](https://github.com/omnigent-ai/omnigent/pull/9203), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Sessions no longer show as disconnected after a server restart when their host has already reconnected to another server. ([#9206](https://github.com/omnigent-ai/omnigent/pull/9206), [@yaoharry](https://github.com/yaoharry)) - [Chore] chore(logging): retain host frame failure correlation ([#9214](https://github.com/omnigent-ai/omnigent/pull/9214), [@yaoharry](https://github.com/yaoharry)) - [Docs / Chore] chore(logging): correlate relay outages with confirmed recovery ([#9215](https://github.com/omnigent-ai/omnigent/pull/9215), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] The Files sidebar now expands a symlinked folder that points outside the workspace and opens its files, instead of showing "Failed to load this folder." ([#9219](https://github.com/omnigent-ai/omnigent/pull/9219), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix] Opening a large HTML file in the file viewer no longer freezes the app. ([#9220](https://github.com/omnigent-ai/omnigent/pull/9220), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Chore] chore(electron): bump desktop version to 0.17.0 ([#9221](https://github.com/omnigent-ai/omnigent/pull/9221), [@fanzeyi](https://github.com/fanzeyi)) - [Bug fix] OS tool results keep readable Unicode without failing on filenames containing undecodable bytes. ([#9228](https://github.com/omnigent-ai/omnigent/pull/9228), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Feature] The Inbox now lists sessions with unread agent replies (with a preview of the latest reply) and adds All / Unread / Awaiting response tabs. ([#9232](https://github.com/omnigent-ai/omnigent/pull/9232), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix] fix(runner): move owned OS cleanup off the event loop ([#9236](https://github.com/omnigent-ai/omnigent/pull/9236), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] Same-page `#anchor` links in a rendered HTML preview now scroll the preview instead of opening a new tab or the OS browser. ([#9239](https://github.com/omnigent-ai/omnigent/pull/9239), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Remote OAuth MCP servers such as Linear start again in `omnigent codex` sessions with Codex 0.154 and later. ([#9241](https://github.com/omnigent-ai/omnigent/pull/9241), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix] A Claude turn cut off by a gateway cancellation now offers a one-click retry, and a host whose Claude Code is too old for the model is told to run `claude update`. ([#9244](https://github.com/omnigent-ai/omnigent/pull/9244), [@yaoharry](https://github.com/yaoharry)) - [Bug fix / Docs / Test/CI] fix(server): honor runner lookup deadlines and exit reports ([#9248](https://github.com/omnigent-ai/omnigent/pull/9248), [@yaoharry](https://github.com/yaoharry)) - [Bug fix / Test/CI] fix(release-notes): remove other contributions (OMNI-11933) ([#9249](https://github.com/omnigent-ai/omnigent/pull/9249), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix / Breaking] Skills are invoked by their directory name (as in Claude Code), with the SKILL.md `name` shown as a label, so skills with spaced names now appear in the `/` menu. Compatibility: a skill whose directory differs from its frontmatter `name` is now typed by its directory name, and agent-bundle validation checks the directory name against `[a-z0-9-]+`, falling back to the frontmatter name for bundles whose directory is not a valid name. Existing `skills:` lists that name a skill by its frontmatter `name` keep selecting it. ([#9251](https://github.com/omnigent-ai/omnigent/pull/9251), [@daniellok-db](https://github.com/daniellok-db)) - [UI] The Inbox has a refreshed layout: every item is a compact, expandable card, and items are grouped by recency (Just now, Earlier today, Yesterday, …). ([#9252](https://github.com/omnigent-ai/omnigent/pull/9252), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix] Claude Code sessions in auto mode no longer get stuck behind the terminal-only "Teach auto mode about your environment?" prompt. ([#9253](https://github.com/omnigent-ai/omnigent/pull/9253), [@TomeHirata](https://github.com/TomeHirata)) - [Test/CI] ci(release): benchmark baseline and candidate on one runner; gate P95 only with 20+ samples (OMNI-11932) ([#9255](https://github.com/omnigent-ai/omnigent/pull/9255), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix] Comments can now be added to and addressed on rendered HTML files in managed deployments. ([#9259](https://github.com/omnigent-ai/omnigent/pull/9259), [@zhengwin](https://github.com/zhengwin)) - [UI / Bug fix] Skills whose `SKILL.md` name contains spaces or parentheses can now be invoked from the chat composer's `/` menu instead of being sent as plain text. ([#9260](https://github.com/omnigent-ai/omnigent/pull/9260), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI] fix(web): word the setup review modal as detection, not import ([#9261](https://github.com/omnigent-ai/omnigent/pull/9261), [@hzub](https://github.com/hzub)) - [Bug fix] The first message after resuming a Claude session no longer opens Claude's Rewind dialog when Claude is launched through a wrapper. ([#9271](https://github.com/omnigent-ai/omnigent/pull/9271), [@craiuconstantintiberiu](https://github.com/craiuconstantintiberiu)) - [Bug fix] Native Claude and Codex subagents expose gateway models configured in their CLIs to supervisors; Claude also falls back to a supported model when an inherited model is unavailable. ([#9277](https://github.com/omnigent-ai/omnigent/pull/9277), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix / Docs / Test/CI] fix(harnesses): clarify startup configuration, MCP status, and navigation ([#9283](https://github.com/omnigent-ai/omnigent/pull/9283), [@hzub](https://github.com/hzub)) - [UI / Feature / Docs / Chore / Test/CI] Browse harness MCP servers, skills, plugins, and startup settings in Settings → Harnesses by default, with no deployment configuration changes. ([#9285](https://github.com/omnigent-ai/omnigent/pull/9285), [@hzub](https://github.com/hzub)) - [UI / Bug fix / Docs / Test/CI] fix: keep unpinned Polly SDK parents on managed Claude credentials ([#9293](https://github.com/omnigent-ai/omnigent/pull/9293), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix] fix(store): keep resource events from advancing activity ([#9298](https://github.com/omnigent-ai/omnigent/pull/9298), [@arthivjkumar](https://github.com/arthivjkumar)) - [Bug fix / Test/CI] fix: preserve unknown session state on runner disconnect ([#9302](https://github.com/omnigent-ai/omnigent/pull/9302), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] fix(claude): load skills from .agents directories ([#9303](https://github.com/omnigent-ai/omnigent/pull/9303), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] fix(debug-logging): bound the shutdown drain and stop retrying ambiguous inserts ([#9314](https://github.com/omnigent-ai/omnigent/pull/9314), [@fanzeyi](https://github.com/fanzeyi)) - [UI / Bug fix] Side chats share the parent runner; stopping a hosted session stops its side chats, and starting one later reconnects the parent first. ([#9329](https://github.com/omnigent-ai/omnigent/pull/9329), [@dhruv0811](https://github.com/dhruv0811)) - [Test/CI] fix(ci): accept case-only assessments for single-file Polly reviews ([#9335](https://github.com/omnigent-ai/omnigent/pull/9335), [@fanzeyi](https://github.com/fanzeyi)) - [Test/CI] fix(ci): require a test-file reference for case-only Polly rows ([#9337](https://github.com/omnigent-ai/omnigent/pull/9337), [@fanzeyi](https://github.com/fanzeyi)) - [Feature] feat(server): accept the iOS app redirect for native OIDC sign-in ([#9341](https://github.com/omnigent-ai/omnigent/pull/9341), [@fanzeyi](https://github.com/fanzeyi)) - [UI / Bug fix / Feature / Docs / Test/CI] feat(desktop): enable Companion localhost previews for Arca agents ([#9344](https://github.com/omnigent-ai/omnigent/pull/9344), [@zhengwin](https://github.com/zhengwin)) - [Test/CI] fix(ci): match Polly test-file references at path boundaries ([#9347](https://github.com/omnigent-ai/omnigent/pull/9347), [@fanzeyi](https://github.com/fanzeyi)) - [Chore] refactor(ios): share the web authentication browser and read the server manifest ([#9349](https://github.com/omnigent-ai/omnigent/pull/9349), [@fanzeyi](https://github.com/fanzeyi)) - [UI / Feature] Drag pinned sessions in the sidebar to reorder them ([#9350](https://github.com/omnigent-ai/omnigent/pull/9350), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Feature] The iOS app signs in to OIDC servers through Apple's sign-in sheet, renews the session silently, and signs out from the app or the web UI. ([#9355](https://github.com/omnigent-ai/omnigent/pull/9355), [@fanzeyi](https://github.com/fanzeyi)) - [UI / Bug fix] fix(web): scale the GitHub tab's diff with the Interface font size ([#9360](https://github.com/omnigent-ai/omnigent/pull/9360), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Fix duplicate native subagent completion notices ([#9365](https://github.com/omnigent-ai/omnigent/pull/9365), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix] fix(desktop): widen macOS title-bar drag region (OMNI-11969) ([#9366](https://github.com/omnigent-ai/omnigent/pull/9366), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix] The desktop app keeps reconnecting to Databricks until the network or VPN is back, including after a night asleep, and connecting from your organization's Databricks account URL reuses your saved sign-in instead of reopening the browser. ([#9371](https://github.com/omnigent-ai/omnigent/pull/9371), [@bbqiu](https://github.com/bbqiu)) - [UI / Bug fix / Test/CI] fix(web): distinguish default models from unavailable catalogs ([#9375](https://github.com/omnigent-ai/omnigent/pull/9375), [@yaoharry](https://github.com/yaoharry)) - [Chore] chore(electron): bump desktop version to 0.17.1 ([#9379](https://github.com/omnigent-ai/omnigent/pull/9379), [@fanzeyi](https://github.com/fanzeyi)) - [Bug fix] fix(server): keep runner reconnect races out of the ERROR log ([#9382](https://github.com/omnigent-ai/omnigent/pull/9382), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(codex-native): return a readable error when a side-chat turn is refused ([#9383](https://github.com/omnigent-ai/omnigent/pull/9383), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(server): finish deleting a session when one attachment blob can't be removed ([#9384](https://github.com/omnigent-ai/omnigent/pull/9384), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(runner): stop leaking unretrieved task errors on attach and tunnel loss ([#9385](https://github.com/omnigent-ai/omnigent/pull/9385), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(claude-native): don't log an idle pane's undiscovered transcript as an error ([#9386](https://github.com/omnigent-ai/omnigent/pull/9386), [@yaoharry](https://github.com/yaoharry)) - [UI / Feature] feat(web): warn before the weekday Arca shutdown ([#9387](https://github.com/omnigent-ai/omnigent/pull/9387), [@zhengwin](https://github.com/zhengwin)) - [UI / Bug fix] Reconnect an offline Arca host directly from the current chat. ([#9388](https://github.com/omnigent-ai/omnigent/pull/9388), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix] Autoselect fix ([#9394](https://github.com/omnigent-ai/omnigent/pull/9394), [@hzub](https://github.com/hzub)) - [UI / Bug fix] fix(web): center the RunningDot svg so the mobile sidebar spinner spins in place ([#9395](https://github.com/omnigent-ai/omnigent/pull/9395), [@hzub](https://github.com/hzub)) - [Bug fix] Codex sessions now fail fast with an actionable message when the TLS certificate for the model endpoint has expired, instead of hanging silently. ([#9397](https://github.com/omnigent-ai/omnigent/pull/9397), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Feature] feat(desktop): default V2 onboarding for Databricks macOS users ([#9398](https://github.com/omnigent-ai/omnigent/pull/9398), [@hzub](https://github.com/hzub)) - [UI] feat(harnesses): collapse MCP tool descriptions behind a disclosure ([#9399](https://github.com/omnigent-ai/omnigent/pull/9399), [@hzub](https://github.com/hzub)) - [Bug fix] Imported Codex sessions that used namespaced tools such as `sleep` can now be continued; the follow-up turn no longer fails with "Missing namespace for function_call". ([#9401](https://github.com/omnigent-ai/omnigent/pull/9401), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - fix(claude-native): register fork sub-agents in the Agents rail ([#9402](https://github.com/omnigent-ai/omnigent/pull/9402), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Feature] feat(web): offer Undo after unpinning a session ([#9403](https://github.com/omnigent-ai/omnigent/pull/9403), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Feature] Option/Alt+Enter now inserts a new line in the chat composer, like Shift+Enter. ([#9404](https://github.com/omnigent-ai/omnigent/pull/9404), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix] fix(desktop): close V2 onboarding parity gaps ([#9405](https://github.com/omnigent-ai/omnigent/pull/9405), [@hzub](https://github.com/hzub)) - [Test/CI] fix(benchmarks): sample the slow runner journeys more, and time what they claim (OMNI-11932) ([#9406](https://github.com/omnigent-ai/omnigent/pull/9406), [@TomeHirata](https://github.com/TomeHirata)) - Revert "feat(harnesses): launch Harnesses settings by default (#9285)" ([#9407](https://github.com/omnigent-ai/omnigent/pull/9407), [@hzub](https://github.com/hzub)) - [UI / Feature / Docs / Chore / Test/CI] Browse harness MCP servers, skills, plugins, and startup settings in Settings → Harnesses by default, with no deployment configuration changes. ([#9408](https://github.com/omnigent-ai/omnigent/pull/9408), [@hzub](https://github.com/hzub)) - [Test/CI] ci(benchmark-pr): confirm a flagged regression on one runner before failing (OMNI-12068) ([#9409](https://github.com/omnigent-ai/omnigent/pull/9409), [@TomeHirata](https://github.com/TomeHirata)) - [Test/CI] fix(benchmarks): isolate bench processes from the caller and leave nothing behind (OMNI-12072) ([#9410](https://github.com/omnigent-ai/omnigent/pull/9410), [@TomeHirata](https://github.com/TomeHirata)) - [Chore] perf(openai-agents): prewarm the harness's first-turn imports (OMNI-12069) ([#9413](https://github.com/omnigent-ai/omnigent/pull/9413), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix] perf(runner): take Databricks SDK import and repeat mint probes off runner boot (OMNI-12070) ([#9414](https://github.com/omnigent-ai/omnigent/pull/9414), [@TomeHirata](https://github.com/TomeHirata)) - [Test/CI] fix(benchmarks): time cli_startup to a usable REPL and scope it to its own daemons (OMNI-12073) ([#9415](https://github.com/omnigent-ai/omnigent/pull/9415), [@TomeHirata](https://github.com/TomeHirata)) - [Test/CI] ci(release): 30%/50% same-runner thresholds; fail all-failed journeys and failed benchmarks (OMNI-12067) ([#9416](https://github.com/omnigent-ai/omnigent/pull/9416), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix] perf(harness): stop warm-turn latency growing with history, and the 8th-turn GC pause (OMNI-12071) ([#9417](https://github.com/omnigent-ai/omnigent/pull/9417), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix] Make v2 UX switcher visible ([#9424](https://github.com/omnigent-ai/omnigent/pull/9424), [@hzub](https://github.com/hzub)) - [UI / Bug fix / Test/CI] Hide composer PR status when no PR is associated ([#9448](https://github.com/omnigent-ai/omnigent/pull/9448), [@dbczumar](https://github.com/dbczumar)) - [UI / Bug fix] fix: show GraphQL-created pull requests in session UI ([#9450](https://github.com/omnigent-ai/omnigent/pull/9450), [@dbczumar](https://github.com/dbczumar)) - [UI / Bug fix] Disable fork and host switching for Databricks sandboxes and Arclets ([#9454](https://github.com/omnigent-ai/omnigent/pull/9454), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] Fixed `omnigent start`/`run` failing to register the host daemon on Windows ([#9456](https://github.com/omnigent-ai/omnigent/pull/9456), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix / Test/CI] Managed sandbox providers can offer model and reasoning-effort choices before a host starts. ([#9457](https://github.com/omnigent-ai/omnigent/pull/9457), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] fix(agents): restore an uploaded agent's lost bundle on the next identical upload (OMNI-12077) ([#9470](https://github.com/omnigent-ai/omnigent/pull/9470), [@TomeHirata](https://github.com/TomeHirata)) - [Docs / Test/CI] test(e2e): cover completed Claude native children after handoff ([#9471](https://github.com/omnigent-ai/omnigent/pull/9471), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix] Improve markdown links and prose readability ([#9472](https://github.com/omnigent-ai/omnigent/pull/9472), [@vasvlasov](https://github.com/vasvlasov)) - [Bug fix] Codex sessions recover cleanly when stopping a finished turn, and oversized transcript events no longer block completion updates. ([#9479](https://github.com/omnigent-ai/omnigent/pull/9479), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] fix(web): accept Design Mode submits from user-opened browser tabs ([#9483](https://github.com/omnigent-ai/omnigent/pull/9483), [@zhengwin](https://github.com/zhengwin)) - [Feature / Docs / Test/CI] N/A — internal delivery diagnostics. ([#9487](https://github.com/omnigent-ai/omnigent/pull/9487), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] fix(server): settle interrupted native web inputs ([#9491](https://github.com/omnigent-ai/omnigent/pull/9491), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix] Restore owned sessions to Mine immediately after archive Undo ([#9492](https://github.com/omnigent-ai/omnigent/pull/9492), [@dbczumar](https://github.com/dbczumar)) - [UI / Bug fix] fix(native): settle web shell inputs without false delivery errors ([#9493](https://github.com/omnigent-ai/omnigent/pull/9493), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix] fix(onboarding): reject failed CLI version probes ([#9495](https://github.com/omnigent-ai/omnigent/pull/9495), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] Clicking a long URL that a program wrapped across two rows of the terminal pane now opens the complete URL instead of the first row's fragment. ([#9498](https://github.com/omnigent-ai/omnigent/pull/9498), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Test/CI] test(ui): consolidate file preview journeys ([#9503](https://github.com/omnigent-ai/omnigent/pull/9503), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix] fix(server): release older inputs held by slash-command mirrors ([#9504](https://github.com/omnigent-ai/omnigent/pull/9504), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] fix(web): show native shell prompts as user turns ([#9508](https://github.com/omnigent-ai/omnigent/pull/9508), [@TomeHirata](https://github.com/TomeHirata)) - [Test/CI] test(ui): move color-theme checks to browser contracts ([#9509](https://github.com/omnigent-ai/omnigent/pull/9509), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix] fix(native): preserve delivery evidence on uncoded executor errors ([#9511](https://github.com/omnigent-ai/omnigent/pull/9511), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Feature] Add an optional host-provided HTML preview frame ([#9514](https://github.com/omnigent-ai/omnigent/pull/9514), [@hzub](https://github.com/hzub)) - [Bug fix] Codex sessions relaunch normally after the directory the host started in is deleted. ([#9515](https://github.com/omnigent-ai/omnigent/pull/9515), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(ui): consolidate agent-info permission and MCP journeys ([#9516](https://github.com/omnigent-ai/omnigent/pull/9516), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix] Hosts signed in through a Databricks CLI profile refresh their token before it expires, instead of retrying an expired one for hours after a reconnect. ([#9517](https://github.com/omnigent-ai/omnigent/pull/9517), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] A Codex session whose saved history uses an older Codex format now starts a fresh Codex thread instead of failing every message. ([#9518](https://github.com/omnigent-ai/omnigent/pull/9518), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Moving a Claude session to another host no longer leaves the old terminal marking the session failed. ([#9519](https://github.com/omnigent-ai/omnigent/pull/9519), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Claude sessions no longer report plugin slash commands or `/btw` questions sent from the web as "missing from the native transcript". ([#9521](https://github.com/omnigent-ai/omnigent/pull/9521), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test: consolidate native picker browser contracts ([#9522](https://github.com/omnigent-ai/omnigent/pull/9522), [@TomeHirata](https://github.com/TomeHirata)) - [Test/CI] test: consolidate composer attachment browser journeys ([#9523](https://github.com/omnigent-ai/omnigent/pull/9523), [@TomeHirata](https://github.com/TomeHirata)) - [Test/CI] test: move composer layout matrices to browser contracts ([#9524](https://github.com/omnigent-ai/omnigent/pull/9524), [@TomeHirata](https://github.com/TomeHirata)) - [Docs] docs: clarify maintainer exemption from issue requirement ([#9526](https://github.com/omnigent-ai/omnigent/pull/9526), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix] Fix comment bridge loading in host-provided HTML previews ([#9533](https://github.com/omnigent-ai/omnigent/pull/9533), [@hzub](https://github.com/hzub)) - [UI / Bug fix] Sidebar padding fix ([#9535](https://github.com/omnigent-ai/omnigent/pull/9535), [@hzub](https://github.com/hzub)) - [Test/CI] ci: verify only failed UI snapshots after regeneration ([#9536](https://github.com/omnigent-ai/omnigent/pull/9536), [@hzub](https://github.com/hzub)) - [Bug fix] fix: keep OS helpers independent of broken worktree imports ([#9540](https://github.com/omnigent-ai/omnigent/pull/9540), [@PattaraS](https://github.com/PattaraS)) - [UI / Feature / Docs] Admins can opt into public Edit for signed-in session collaborators; public access remains Read-only by default and never bypasses authentication. ([#9541](https://github.com/omnigent-ai/omnigent/pull/9541), [@TomeHirata](https://github.com/TomeHirata)) - test(electron): fix missing setPath mock in update-main tests ([#9544](https://github.com/omnigent-ai/omnigent/pull/9544), [@bbqiu](https://github.com/bbqiu)) - [Bug fix / Feature / Docs / Test/CI] feat(agents): Skill telemetry ([#9547](https://github.com/omnigent-ai/omnigent/pull/9547), [@scottiegarcia](https://github.com/scottiegarcia)) - [Bug fix] The Databricks Apps deployment now honors the server config's `sandbox:` section, so it can offer managed sandbox hosts without each user running `omnigent host` locally. ([#9559](https://github.com/omnigent-ai/omnigent/pull/9559), [@jsonmp-k8](https://github.com/jsonmp-k8)) - [Bug fix] fix(web): stop full-page restyle on every composer keystroke ([#9560](https://github.com/omnigent-ai/omnigent/pull/9560), [@fanzeyi](https://github.com/fanzeyi)) - [UI / Bug fix] The Pull Requests panel now shows a PR even when the GitHub CLI's token can't read its check runs (fine-grained personal access tokens), and explains why checks are missing instead of reporting "No open PR" or "Can’t reach the upstream repo". ([#9563](https://github.com/omnigent-ai/omnigent/pull/9563), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] An idle session no longer turns failed when its host shuts down; it stays idle and shows the host offline. ([#9567](https://github.com/omnigent-ai/omnigent/pull/9567), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix / Feature / Test/CI] Improve Workspace tab overflow navigation ([#9571](https://github.com/omnigent-ai/omnigent/pull/9571), [@vasvlasov](https://github.com/vasvlasov)) - [UI / Bug fix / Feature] feat(web): keep Canvas cards beside sessions ([#9573](https://github.com/omnigent-ai/omnigent/pull/9573), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] fix(pi-native): explain an outdated pi CLI instead of failing the terminal start blindly ([#9574](https://github.com/omnigent-ai/omnigent/pull/9574), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(cli): label `session import` copies so the web UI can resume them ([#9575](https://github.com/omnigent-ai/omnigent/pull/9575), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [UI / Bug fix] fix(web): restore macOS window chrome in the embedded app ([#9576](https://github.com/omnigent-ai/omnigent/pull/9576), [@fanzeyi](https://github.com/fanzeyi)) - [UI / Bug fix / Docs] fix(web): keep the mobile side-chat drawer inside the app root ([#9577](https://github.com/omnigent-ai/omnigent/pull/9577), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [Docs / Test/CI] test(web): benchmark OSS composer responsiveness in Chromium ([#9579](https://github.com/omnigent-ai/omnigent/pull/9579), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] Claude Code sessions started from the web or mobile app no longer stop at the "trust this folder" prompt on machines whose Claude Code reads an older or relocated config file. ([#9583](https://github.com/omnigent-ai/omnigent/pull/9583), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [UI / Bug fix] fix(ios): theme the native keyboard backdrop ([#9586](https://github.com/omnigent-ai/omnigent/pull/9586), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix] fix(claude-native): mark a message held by a pending Claude prompt as undelivered ([#9587](https://github.com/omnigent-ai/omnigent/pull/9587), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] A Codex session no longer fails with an ImportError after Omnigent is upgraded on disk while its host keeps running. ([#9588](https://github.com/omnigent-ai/omnigent/pull/9588), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(runner): count forwarded sub-agent events as activity for the idle watchdog ([#9592](https://github.com/omnigent-ai/omnigent/pull/9592), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] fix(web): reuse visible side chats and support quoted replies ([#9593](https://github.com/omnigent-ai/omnigent/pull/9593), [@vasvlasov](https://github.com/vasvlasov)) - [Bug fix] Desktop updates on macOS now wait for the administrator password prompt when the app is installed as root, instead of quitting before the update can install ([#9596](https://github.com/omnigent-ai/omnigent/pull/9596), [@fanzeyi](https://github.com/fanzeyi)) - [Test/CI] test: move harness picker grouping and availability checks to browser contracts ([#9597](https://github.com/omnigent-ai/omnigent/pull/9597), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix / Docs] fix(settings): fetch custom agent details directly ([#9613](https://github.com/omnigent-ai/omnigent/pull/9613), [@hzub](https://github.com/hzub)) - [UI / Bug fix] fix: use the standard mobile menu in Canvas ([#9614](https://github.com/omnigent-ai/omnigent/pull/9614), [@dbczumar](https://github.com/dbczumar)) - [Feature] feat(api): add single-agent summary endpoint ([#9615](https://github.com/omnigent-ai/omnigent/pull/9615), [@hzub](https://github.com/hzub)) - [UI / Bug fix] fix: use shared sidebar navigation in Canvas ([#9618](https://github.com/omnigent-ai/omnigent/pull/9618), [@dbczumar](https://github.com/dbczumar)) - [UI / Bug fix] fix(web): neutralize relative links in skill details markdown ([#9621](https://github.com/omnigent-ai/omnigent/pull/9621), [@hzub](https://github.com/hzub)) - [Bug fix] fix(server): don't show an idle session as failed after its connected runner exits ([#9626](https://github.com/omnigent-ai/omnigent/pull/9626), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] A message sent while the host's connection drops is handed back to the composer instead of failing the session. ([#9627](https://github.com/omnigent-ai/omnigent/pull/9627), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(runner): don't fail a turn when the session-labels lookup can't get a token ([#9628](https://github.com/omnigent-ai/omnigent/pull/9628), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] A Codex session no longer gets stuck failing every turn after a large file was added or deleted in it ([#9629](https://github.com/omnigent-ai/omnigent/pull/9629), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] fix(web): keep the iOS sidebar rename field above the soft keyboard ([#9630](https://github.com/omnigent-ai/omnigent/pull/9630), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [UI / Bug fix] fix(web): open embedded theme settings link in a new tab ([#9634](https://github.com/omnigent-ai/omnigent/pull/9634), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [Chore] chore(electron): bump desktop app version to 0.17.2 ([#9635](https://github.com/omnigent-ai/omnigent/pull/9635), [@fanzeyi](https://github.com/fanzeyi)) - [UI / Feature / Docs / Test/CI] Add a local NGINX and Kubernetes multi-replica example ([#9637](https://github.com/omnigent-ai/omnigent/pull/9637), [@dbczumar](https://github.com/dbczumar)) - [UI / Bug fix / Feature] feat(web): auto-format and continue bullet/numbered lists in the composer ([#9638](https://github.com/omnigent-ai/omnigent/pull/9638), [@jeffizhungrydd](https://github.com/jeffizhungrydd)) - [UI / Bug fix / Docs] Use Run on Arca consistently in the host picker ([#9645](https://github.com/omnigent-ai/omnigent/pull/9645), [@zhengwin](https://github.com/zhengwin)) - [Docs] docs(electron): document the cross-platform desktop release workflow ([#9648](https://github.com/omnigent-ai/omnigent/pull/9648), [@fanzeyi](https://github.com/fanzeyi)) - [UI / Bug fix] fix(web): keep dark-mode text color in embedded overlays ([#9649](https://github.com/omnigent-ai/omnigent/pull/9649), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [Bug fix] Databricks-routed Codex agents run on current Codex releases without declaring their own sandbox or model egress ([#9651](https://github.com/omnigent-ai/omnigent/pull/9651), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Bug fix] Approval cards mirrored from a sub-agent into the parent chat now name and link the sub-agent that asked. ([#9652](https://github.com/omnigent-ai/omnigent/pull/9652), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [UI / Bug fix] fix(web): render the permission card's bold tool name instead of literal asterisks ([#9653](https://github.com/omnigent-ai/omnigent/pull/9653), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix] Files cited in chat can open from large directories again. ([#9668](https://github.com/omnigent-ai/omnigent/pull/9668), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix] Assistant messages stay visible when an agent uses another tool before finishing its reply. ([#9670](https://github.com/omnigent-ai/omnigent/pull/9670), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix] fix(codex): honor configured providers when resuming threads ([#9684](https://github.com/omnigent-ai/omnigent/pull/9684), [@dbczumar](https://github.com/dbczumar)) - [Test/CI] test: cover Claude and Pi provider routing across runner restarts ([#9685](https://github.com/omnigent-ai/omnigent/pull/9685), [@dbczumar](https://github.com/dbczumar)) - [UI / Bug fix] Fix misleading error after desktop sign-out ([#9709](https://github.com/omnigent-ai/omnigent/pull/9709), [@hzub](https://github.com/hzub)) - [UI / Bug fix] fix(web): use 80ch prose normally and 120ch in wide chat columns ([#9715](https://github.com/omnigent-ai/omnigent/pull/9715), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix] Make floating Add comment buttons clearer in light mode ([#9716](https://github.com/omnigent-ai/omnigent/pull/9716), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] fix(server): preserve idle sessions after runner replica handoff ([#9719](https://github.com/omnigent-ai/omnigent/pull/9719), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(runner): include event frame identifiers in the tunnel size budget ([#9724](https://github.com/omnigent-ai/omnigent/pull/9724), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(runner): reserve session admission before taking an event worker ([#9731](https://github.com/omnigent-ai/omnigent/pull/9731), [@yaoharry](https://github.com/yaoharry)) - [Chore / Test/CI] test: share configurable server and host lifecycle ([#9732](https://github.com/omnigent-ai/omnigent/pull/9732), [@PattaraS](https://github.com/PattaraS)) - [Chore / Test/CI] test: share multi-user session and browser context setup ([#9733](https://github.com/omnigent-ai/omnigent/pull/9733), [@PattaraS](https://github.com/PattaraS)) - [Chore / Test/CI] chore(logging): retain bounded native transcript rejection evidence ([#9734](https://github.com/omnigent-ai/omnigent/pull/9734), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] fix(desktop): omit sign-in error when no credentials are stored ([#9736](https://github.com/omnigent-ai/omnigent/pull/9736), [@hzub](https://github.com/hzub)) - [Test/CI] test(server): cover runner exits across replicas end to end ([#9740](https://github.com/omnigent-ai/omnigent/pull/9740), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(harnesses): preserve exit tracking across cancelled waits ([#9742](https://github.com/omnigent-ai/omnigent/pull/9742), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(host): keep runner exit polling on its original zygote generation ([#9745](https://github.com/omnigent-ai/omnigent/pull/9745), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(host): serialize zygote readiness with concurrent starts ([#9746](https://github.com/omnigent-ai/omnigent/pull/9746), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(server): acknowledge late events from a runner the session moved off ([#9749](https://github.com/omnigent-ai/omnigent/pull/9749), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(server): keep a message sent to a host that never took the runner launch ([#9751](https://github.com/omnigent-ai/omnigent/pull/9751), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(e2e): skip the canvas selected-highlight test on CI ([#9752](https://github.com/omnigent-ai/omnigent/pull/9752), [@hzub](https://github.com/hzub)) - [Bug fix] fix(claude-native): back off and log once when a forwarder poll keeps failing ([#9754](https://github.com/omnigent-ai/omnigent/pull/9754), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(web): don't fetch file content for a session that is still being created ([#9758](https://github.com/omnigent-ai/omnigent/pull/9758), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] Mermaid diagrams in Markdown previews, editors, and reasoning now open correctly in fullscreen in embedded apps. ([#9760](https://github.com/omnigent-ai/omnigent/pull/9760), [@hzub](https://github.com/hzub)) - [Bug fix] fix(host): fetch a session's skill bundle with the host's own TLS context ([#9762](https://github.com/omnigent-ai/omnigent/pull/9762), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] fix(web): open relative links in the Markdown preview in the FileViewer ([#9764](https://github.com/omnigent-ai/omnigent/pull/9764), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(host): skip a non-UTF-8 file name instead of failing the directory listing ([#9766](https://github.com/omnigent-ai/omnigent/pull/9766), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(e2e): refit the canvas after opening a card and re-enable the test ([#9767](https://github.com/omnigent-ai/omnigent/pull/9767), [@hzub](https://github.com/hzub)) - [Bug fix] fix(server): don't warn that a native sub-agent is missing from the parent spec ([#9772](https://github.com/omnigent-ai/omnigent/pull/9772), [@yaoharry](https://github.com/yaoharry)) - [Chore] chore(logging): retain response and native evidence on failed runner turns ([#9773](https://github.com/omnigent-ai/omnigent/pull/9773), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(server): bound the initial host and runner tunnel handshake ([#9775](https://github.com/omnigent-ai/omnigent/pull/9775), [@yaoharry](https://github.com/yaoharry)) - [Chore] chore(logging): record fatal and final runner tunnel attempts ([#9779](https://github.com/omnigent-ai/omnigent/pull/9779), [@yaoharry](https://github.com/yaoharry)) - [Chore] chore(logging): trace runner tunnel credential refresh outcomes ([#9780](https://github.com/omnigent-ai/omnigent/pull/9780), [@yaoharry](https://github.com/yaoharry)) - [Chore] chore(logging): preserve OS facts for native terminal launch failures ([#9782](https://github.com/omnigent-ai/omnigent/pull/9782), [@yaoharry](https://github.com/yaoharry)) - [Docs / Chore / Test/CI] docs: guide agents toward existing test primitives ([#9783](https://github.com/omnigent-ai/omnigent/pull/9783), [@PattaraS](https://github.com/PattaraS)) - [Chore / Test/CI] test: reuse host lifecycle for inventory journeys ([#9784](https://github.com/omnigent-ai/omnigent/pull/9784), [@PattaraS](https://github.com/PattaraS)) - [Chore / Test/CI] test: reuse user pages for collaboration journeys ([#9785](https://github.com/omnigent-ai/omnigent/pull/9785), [@PattaraS](https://github.com/PattaraS)) - [Bug fix / Docs / Test/CI] fix(agents): caption recording clips from the screen, not from transcript state ([#9786](https://github.com/omnigent-ai/omnigent/pull/9786), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix] fix(web): align sharing permission dropdowns with their fields ([#9788](https://github.com/omnigent-ai/omnigent/pull/9788), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Bug fix] Fix Mac title-bar clearance for embedded Canvas, fonts, and zoom ([#9791](https://github.com/omnigent-ai/omnigent/pull/9791), [@PattaraS](https://github.com/PattaraS)) - [UI / Feature] feat(web): sidebar grouping, ordering and session metadata behind sidebar_grouping_ui (OMNI-10526) ([#9792](https://github.com/omnigent-ai/omnigent/pull/9792), [@hzub](https://github.com/hzub)) - [UI / Bug fix] fix(web): refocus the open Monaco find widget on repeated Cmd+F ([#9793](https://github.com/omnigent-ai/omnigent/pull/9793), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix] fix(web): soften Solarized theme borders ([#9794](https://github.com/omnigent-ai/omnigent/pull/9794), [@vasvlasov](https://github.com/vasvlasov)) - [Bug fix / Chore] iOS builds now include the public Databricks OAuth client ID by default so workspace sign-in can start without a custom build setting. ([#9798](https://github.com/omnigent-ai/omnigent/pull/9798), [@fanzeyi](https://github.com/fanzeyi)) - [Feature] `omnigent agent add owner/repo` installs the agents in a GitHub repo, with `@name` to pick one and `--list` to preview ([#9801](https://github.com/omnigent-ai/omnigent/pull/9801), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Bug fix] The "Compacting conversation…" indicator no longer keeps counting after its turn has finished. ([#9804](https://github.com/omnigent-ai/omnigent/pull/9804), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [UI / Feature] feat(arca): extend shutdown warnings in one click ([#9817](https://github.com/omnigent-ai/omnigent/pull/9817), [@zhengwin](https://github.com/zhengwin)) - [UI / Bug fix] Hide Arca picker while connected ([#9818](https://github.com/omnigent-ai/omnigent/pull/9818), [@zhengwin](https://github.com/zhengwin)) - [Chore] Avoid server database imports during host and runner startup ([#9819](https://github.com/omnigent-ai/omnigent/pull/9819), [@dbczumar](https://github.com/dbczumar)) - [UI / Bug fix / Feature / Docs / Test/CI] Add recovery for sessions with missing working directories ([#9820](https://github.com/omnigent-ai/omnigent/pull/9820), [@fanzeyi](https://github.com/fanzeyi)) - [Bug fix] fix(codex-native): report a removed workspace instead of a bare ENOENT ([#9827](https://github.com/omnigent-ai/omnigent/pull/9827), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(claude): detect terminal exits during readiness waits ([#9829](https://github.com/omnigent-ai/omnigent/pull/9829), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(server): preserve an existing failure after runner exit ([#9832](https://github.com/omnigent-ai/omnigent/pull/9832), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix: preserve zygote children after a threaded deferred preload ([#9840](https://github.com/omnigent-ai/omnigent/pull/9840), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(codex): reconnect once after refused native input while draining ([#9842](https://github.com/omnigent-ai/omnigent/pull/9842), [@yaoharry](https://github.com/yaoharry)) - [Bug fix / Docs / Breaking] Improved runtime validation and import handling. Shell policies now gate comments, here-documents, line continuations, command substitutions, and extended quoting. On multi-user servers, migrate uploaded Python/TypeScript source tools to MCP tools before re-uploading or editing MCP settings; trusted single-user/local bundles retain their existing support. ([#9844](https://github.com/omnigent-ai/omnigent/pull/9844), [@TomeHirata](https://github.com/TomeHirata)) - [Docs] docs: refresh feature map entry points and test setup ([#9850](https://github.com/omnigent-ai/omnigent/pull/9850), [@PattaraS](https://github.com/PattaraS)) ## [v0.17.0] — 2026-10-05 - [Docs] docs: document Automations (scheduled tasks) ([#4731](https://github.com/omnigent-ai/omnigent/pull/4731), [@moomindani](https://github.com/moomindani)) - feat(policies): add configurable period-based cost budgets ([#5211](https://github.com/omnigent-ai/omnigent/pull/5211), [@terrytangyuan](https://github.com/terrytangyuan)) - [Bug fix] kiro-native now refuses to start a session when its bridge directory sits under a directory tree it does not exclusively own, instead of writing the relay token there ([#5772](https://github.com/omnigent-ai/omnigent/pull/5772), [@agharsallah](https://github.com/agharsallah)) - [Bug fix / Docs / Test/CI] Databricks deployment locks ignore machine-only index settings while preserving explicitly selected custom indexes and direct wheel dependencies. ([#6034](https://github.com/omnigent-ai/omnigent/pull/6034), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix / Test/CI] Bundled Codex skills are readable from sandboxed sessions without exposing credentials or dirtying the workspace. ([#6487](https://github.com/omnigent-ai/omnigent/pull/6487), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix] fix(web): explain the "Resolved elsewhere" approval pill from its info icon ([#6513](https://github.com/omnigent-ai/omnigent/pull/6513), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix] fix(web): keep a canvas card's selected highlight across session-list churn ([#6899](https://github.com/omnigent-ai/omnigent/pull/6899), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] fix(credentials): keep the shared $GIT_TOKEN helper when the credential endpoint 404s ([#7044](https://github.com/omnigent-ai/omnigent/pull/7044), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] fix(claude-sdk): rebuild the cached client when its CLI child died between turns ([#7152](https://github.com/omnigent-ai/omnigent/pull/7152), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Sessions can recover from missing or corrupt extracted agent configs after a server restart. ([#7193](https://github.com/omnigent-ai/omnigent/pull/7193), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix] fix(web,server): retract a restored send draft once its message proves delivered ([#7439](https://github.com/omnigent-ai/omnigent/pull/7439), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix] The existing project name is focused and selected automatically when you open the rename dialog. ([#7822](https://github.com/omnigent-ai/omnigent/pull/7822), [@james-fletcher-db](https://github.com/james-fletcher-db)) - [UI / Bug fix] Start session now accepts selected Windows drive-letter workspaces. ([#7837](https://github.com/omnigent-ai/omnigent/pull/7837), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix] Session menus remain usable while the terminal is connecting. ([#7845](https://github.com/omnigent-ai/omnigent/pull/7845), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix] The sidebar Search button now lines up with the chat menu button on narrow screens. ([#7853](https://github.com/omnigent-ai/omnigent/pull/7853), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Native Codex sessions recover promptly when the app-server connection drops, instead of event consumers waiting forever ([#7984](https://github.com/omnigent-ai/omnigent/pull/7984), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix / Test/CI] `omnigent codex` now honors a `~/.codex/config.toml` (or an explicit `--profile`) that selects Codex's built-in Amazon Bedrock (or Ollama / LM Studio) provider — no Codex sign-in or Omnigent provider needed. For file-based Bedrock credentials, use `~/.aws` and the config's `aws.profile`; `AWS_*` environment variables are not forwarded to the native Codex app-server. ([#8013](https://github.com/omnigent-ai/omnigent/pull/8013), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Debug-log credential helpers now run asynchronously so slow authentication does not delay startup. ([#8153](https://github.com/omnigent-ai/omnigent/pull/8153), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [Bug fix / Docs] N/A — internal Resolve review guidance. ([#8205](https://github.com/omnigent-ai/omnigent/pull/8205), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] Stopping a native sub-agent no longer reports `cancelled` before the agent is confirmed stopped, and a sub-agent turn that stopped early is no longer reported to its parent as completed; the output produced before a stop is preserved in the cancellation notice. ([#8211](https://github.com/omnigent-ai/omnigent/pull/8211), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Feature] Live Claude text preview uses fewer requests while preserving streaming order. ([#8241](https://github.com/omnigent-ai/omnigent/pull/8241), [@fanzeyi](https://github.com/fanzeyi)) - [Feature] feat(runner): define event ingress frames on the existing tunnel ([#8242](https://github.com/omnigent-ai/omnigent/pull/8242), [@fanzeyi](https://github.com/fanzeyi)) - [Feature] feat(server): ingest bounded event batches on runner tunnel ([#8244](https://github.com/omnigent-ai/omnigent/pull/8244), [@fanzeyi](https://github.com/fanzeyi)) - [Feature] Host-backed Claude sessions forward live output over the existing runner connection instead of individual HTTP requests. ([#8246](https://github.com/omnigent-ai/omnigent/pull/8246), [@fanzeyi](https://github.com/fanzeyi)) - [Test/CI] test(runner): verify event replay through a real tunnel ([#8248](https://github.com/omnigent-ai/omnigent/pull/8248), [@fanzeyi](https://github.com/fanzeyi)) - [Bug fix] fix(server): keep tunnel event replay safe under server errors ([#8249](https://github.com/omnigent-ai/omnigent/pull/8249), [@fanzeyi](https://github.com/fanzeyi)) - [Bug fix] fix(server,runner): recycle a server-retired tunnel promptly and spread the reconnects ([#8252](https://github.com/omnigent-ai/omnigent/pull/8252), [@yaoharry](https://github.com/yaoharry)) - [Feature] The desktop app can connect your Arca instance automatically at launch (off by default; enable with `OMNIGENT_ARCA_AUTO_CONNECT=1`) ([#8276](https://github.com/omnigent-ai/omnigent/pull/8276), [@zhengwin](https://github.com/zhengwin)) - [Bug fix] A sub-agent's real completion is delivered to the parent even after the launch timer had guessed it failed, and a follow-up the runner delivered to a busy native worker no longer trips that timer. ([#8297](https://github.com/omnigent-ai/omnigent/pull/8297), [@eaespinoza0](https://github.com/eaespinoza0)) - [Bug fix] Resuming a pi-native session whose history holds a duplicated tool result no longer fails every turn with an Anthropic "each tool_use must have a single result" error. ([#8298](https://github.com/omnigent-ai/omnigent/pull/8298), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix / Docs / Test/CI] fix(e2e-ui): preserve sync recordings, final state, and screenshot viewport ([#8336](https://github.com/omnigent-ai/omnigent/pull/8336), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Docs / Test/CI] Add a verify-omnigent skill with a feature map of user entry points ([#8350](https://github.com/omnigent-ai/omnigent/pull/8350), [@PattaraS](https://github.com/PattaraS)) - [Bug fix / Test/CI] `omnigent sandbox create --provider openshell` can upload wheel bundles larger than the gateway's 1 MiB message cap. ([#8367](https://github.com/omnigent-ai/omnigent/pull/8367), [@jasonhernandez](https://github.com/jasonhernandez)) - [Feature] feat(desktop): Arca auto-connect state machine and typed errors ([#8419](https://github.com/omnigent-ai/omnigent/pull/8419), [@zhengwin](https://github.com/zhengwin)) - [Bug fix] `omnigent run` sessions can pick a model again, and providers with a `/v4`-style base URL discover their models. ([#8420](https://github.com/omnigent-ai/omnigent/pull/8420), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix] The desktop app reconnects to Databricks by itself after network or VPN drops, showing a "Reconnecting to Databricks…" overlay (with a VPN reminder on Databricks-managed devices) instead of the connect page. Connect reuses your saved sign-in, and "Sign in with a different account" switches accounts. ([#8426](https://github.com/omnigent-ai/omnigent/pull/8426), [@bbqiu](https://github.com/bbqiu)) - [Feature] Add host MCP server inventory endpoint ([#8433](https://github.com/omnigent-ai/omnigent/pull/8433), [@zhengwin](https://github.com/zhengwin)) - [UI / Feature] The import modal now shows the logins, MCP servers, skills, and plugins your harnesses already bring to Omnigent, and opens once when a new machine connects. Onboarding can target it at the runner the user picked ([#8434](https://github.com/omnigent-ai/omnigent/pull/8434), [@zhengwin](https://github.com/zhengwin)) - [Test/CI] DELETE THIS WHOLE SECTION if the change isn't noteworthy (CI, refactors, test-only changes, dependency bumps with no user impact). ([#8438](https://github.com/omnigent-ai/omnigent/pull/8438), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Bug fix / Feature] The desktop onboarding opens on your server list when you've used Omnigent before, and its button says whether it will install, start or open Omnigent. ([#8442](https://github.com/omnigent-ai/omnigent/pull/8442), [@hzub](https://github.com/hzub)) - [Bug fix / Test/CI] fix(repro): retain browser traces and surface capture failures ([#8443](https://github.com/omnigent-ai/omnigent/pull/8443), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix / Test/CI] Fix mock response routing for native tests ([#8446](https://github.com/omnigent-ai/omnigent/pull/8446), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] Codex sessions launched with a prompt ending in a newline retain their connection to web and mobile chat. ([#8447](https://github.com/omnigent-ai/omnigent/pull/8447), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] Large Claude Code and Codex sessions can now be imported without disconnecting the host or stopping the rest of the batch. ([#8465](https://github.com/omnigent-ai/omnigent/pull/8465), [@yaoharry](https://github.com/yaoharry)) - [Feature] Policies can now get access to conversation_id in the `PolicyEvent` context. ([#8467](https://github.com/omnigent-ai/omnigent/pull/8467), [@ArshSiddiqui](https://github.com/ArshSiddiqui)) - [Bug fix] A turn that finishes after a brief runner connection drop now clears the "connection dropped" card instead of leaving it up until your next message. ([#8492](https://github.com/omnigent-ai/omnigent/pull/8492), [@dbczumar](https://github.com/dbczumar)) - [Test/CI] test(ui): cover table fullscreen control ([#8508](https://github.com/omnigent-ai/omnigent/pull/8508), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Switching a running Codex session's approval mode now reads Codex's `/permissions` popup ([#8509](https://github.com/omnigent-ai/omnigent/pull/8509), [@yaoharry](https://github.com/yaoharry)) - Bump version to 0.17.0.dev0 ([#8514](https://github.com/omnigent-ai/omnigent/pull/8514), [@omnigent-ci[bot]](https://github.com/apps/omnigent-ci)) - docs(changelog): record v0.16.0 ([#8515](https://github.com/omnigent-ai/omnigent/pull/8515), [@omnigent-ci[bot]](https://github.com/apps/omnigent-ci)) - [Bug fix] Cursor-native sub-agents preserve their actual results after interrupts and avoid approval cards caused by stale checkpoint markers. ([#8516](https://github.com/omnigent-ai/omnigent/pull/8516), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix / Docs] fix(resolve): keep fixes focused and complete ([#8519](https://github.com/omnigent-ai/omnigent/pull/8519), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] Log Claude launch permission mode ([#8522](https://github.com/omnigent-ai/omnigent/pull/8522), [@serena-ruan](https://github.com/serena-ruan)) - [Chore] feat(native): log native_input_ready for every native harness via a required provider probe ([#8523](https://github.com/omnigent-ai/omnigent/pull/8523), [@daniellok-db](https://github.com/daniellok-db)) - [Bug fix] fix(triage-v2): don't re-grade on repro-agent validation label flips ([#8526](https://github.com/omnigent-ai/omnigent/pull/8526), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] New worktrees keep the repository subdirectory selected for your chat. ([#8527](https://github.com/omnigent-ai/omnigent/pull/8527), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] pi now launches models on providers that set only one API family (e.g. Moonshot's Anthropic-compatible endpoint) instead of failing with 404, and Databricks gateway GPT overrides keep their Responses routing. ([#8528](https://github.com/omnigent-ai/omnigent/pull/8528), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix] Tab completes slash commands without executing them; submit explicitly when ready. ([#8529](https://github.com/omnigent-ai/omnigent/pull/8529), [@serena-ruan](https://github.com/serena-ruan)) - [Test/CI] DELETE THIS WHOLE SECTION if the change isn't noteworthy (CI, refactors, test-only changes, dependency bumps with no user impact). ([#8531](https://github.com/omnigent-ai/omnigent/pull/8531), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Bug fix] Code in chat messages no longer hides spaces between CLI flags like `-c --markdown` ([#8532](https://github.com/omnigent-ai/omnigent/pull/8532), [@daniellok-db](https://github.com/daniellok-db)) - [Bug fix] fix(runner): attribute native launch-config fetch failures to the server ([#8533](https://github.com/omnigent-ai/omnigent/pull/8533), [@daniellok-db](https://github.com/daniellok-db)) - [Test/CI] DELETE THIS WHOLE SECTION if the change isn't noteworthy (CI, refactors, test-only changes, dependency bumps with no user impact). ([#8534](https://github.com/omnigent-ai/omnigent/pull/8534), [@serena-ruan](https://github.com/serena-ruan)) - [Test/CI] DELETE THIS WHOLE SECTION if the change isn't noteworthy (CI, refactors, test-only changes, dependency bumps with no user impact). ([#8535](https://github.com/omnigent-ai/omnigent/pull/8535), [@serena-ruan](https://github.com/serena-ruan)) - [Test/CI] ci: enable automatic OCR reviews for same-repository PRs ([#8536](https://github.com/omnigent-ai/omnigent/pull/8536), [@serena-ruan](https://github.com/serena-ruan)) - [Docs / Test/CI] N/A — CI policy change. ([#8538](https://github.com/omnigent-ai/omnigent/pull/8538), [@serena-ruan](https://github.com/serena-ruan)) - repro-agent: forbid backend shortcuts as journey steps ([#8539](https://github.com/omnigent-ai/omnigent/pull/8539), [@TomeHirata](https://github.com/TomeHirata)) - [Chore / Test/CI] N/A — CI review guidance change. ([#8540](https://github.com/omnigent-ai/omnigent/pull/8540), [@serena-ruan](https://github.com/serena-ruan)) - [Docs / Test/CI] ci: review comment quality with Open Code Review ([#8542](https://github.com/omnigent-ai/omnigent/pull/8542), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] `${VAR}` in an MCP server's `url` (and in an inline `tools:` MCP server's `headers`/`env`) is now resolved from your environment when `omnigent run` uploads the agent, and a missing variable fails with a clear error ([#8544](https://github.com/omnigent-ai/omnigent/pull/8544), [@shekharkadyan](https://github.com/shekharkadyan)) - [Bug fix] Uploaded agent bundles reject Python tool targets before importing their modules, including tools inside nested agents. ([#8545](https://github.com/omnigent-ai/omnigent/pull/8545), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] Custom native agents now expose Terminal view, including existing sessions when reopened. ([#8547](https://github.com/omnigent-ai/omnigent/pull/8547), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Feature] With an organization-provided server, the desktop welcome screen shows a single "Join your team" button and then asks where you work: a remote environment or this laptop. ([#8548](https://github.com/omnigent-ai/omnigent/pull/8548), [@hzub](https://github.com/hzub)) - [Test/CI] Align backend CI path exclusions for browser tests and changelog ([#8549](https://github.com/omnigent-ai/omnigent/pull/8549), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Feature] During desktop onboarding, "Install Omnigent" connects the runner you picked (a remote environment or this laptop) and shows its progress before opening the server. ([#8551](https://github.com/omnigent-ai/omnigent/pull/8551), [@hzub](https://github.com/hzub)) - [Bug fix / Docs] fix(agents): select minimal reliable regression coverage ([#8552](https://github.com/omnigent-ai/omnigent/pull/8552), [@PattaraS](https://github.com/PattaraS)) - [UI / Feature] After desktop onboarding, the new-session screen preselects the runner you chose (a remote environment or this laptop). ([#8553](https://github.com/omnigent-ai/omnigent/pull/8553), [@hzub](https://github.com/hzub)) - [Bug fix / Docs / Test/CI] Resolve's PR-driving mode now repeats Polly and Open Code Review until every finding is addressed or justified. ([#8554](https://github.com/omnigent-ai/omnigent/pull/8554), [@serena-ruan](https://github.com/serena-ruan)) - [Test/CI] Correct CI path filters for unrelated changes and missed inputs ([#8555](https://github.com/omnigent-ai/omnigent/pull/8555), [@serena-ruan](https://github.com/serena-ruan)) - [Chore / Test/CI] Extract UI test helpers while preserving Python CI coverage ([#8557](https://github.com/omnigent-ai/omnigent/pull/8557), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Bug fix] Claude Code’s `/compact` command now follows the chat message queue and stays visible when sent immediately. ([#8560](https://github.com/omnigent-ai/omnigent/pull/8560), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Bug fix] Closing desktop onboarding mid-setup no longer leaves a runner connecting in the background, and choosing "My laptop" explains that the server can run agents on it. ([#8561](https://github.com/omnigent-ai/omnigent/pull/8561), [@hzub](https://github.com/hzub)) - [Bug fix / Feature] Choosing Arca during desktop onboarding also connects Arca at each launch, with one Arca host per server. ([#8566](https://github.com/omnigent-ai/omnigent/pull/8566), [@hzub](https://github.com/hzub)) - [Test/CI] fix(tests): preserve scripted tool calls across title requests ([#8568](https://github.com/omnigent-ai/omnigent/pull/8568), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] Claude Code conversations now persist when hook processes inherit a different temporary directory. ([#8572](https://github.com/omnigent-ai/omnigent/pull/8572), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] Long links in a goal objective now wrap inside the Goal dialog, saved-goal card and goal tooltip instead of spilling past their edges. ([#8574](https://github.com/omnigent-ai/omnigent/pull/8574), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Docs] The v0.16.0 changelog has complete descriptions and no leftover editing instructions. ([#8576](https://github.com/omnigent-ai/omnigent/pull/8576), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] The session view reconnects after the server restarts without losing already-streamed native text. ([#8578](https://github.com/omnigent-ai/omnigent/pull/8578), [@fanzeyi](https://github.com/fanzeyi)) - [UI / Bug fix] Side chats show activity from the first message and support interrupting an answer without stopping the main conversation. ([#8583](https://github.com/omnigent-ai/omnigent/pull/8583), [@dhruv0811](https://github.com/dhruv0811)) - [Test/CI] test(stream): cover numbered output across disconnect stages ([#8585](https://github.com/omnigent-ai/omnigent/pull/8585), [@fanzeyi](https://github.com/fanzeyi)) - [UI / Bug fix / Feature] Open subagent chats from Started/Completed notices, with Claude Code team messages kept out of the main chat. ([#8588](https://github.com/omnigent-ai/omnigent/pull/8588), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] Live session updates no longer stop when a stale browser subscriber closes its event loop. ([#8593](https://github.com/omnigent-ai/omnigent/pull/8593), [@yaoharry](https://github.com/yaoharry)) - [Chore] chore(logging): identify asynchronous runner failures without callback payloads ([#8595](https://github.com/omnigent-ai/omnigent/pull/8595), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] Side chats preserve their parent host route after failed retries and through nested conversations. ([#8602](https://github.com/omnigent-ai/omnigent/pull/8602), [@dhruv0811](https://github.com/dhruv0811)) - [Docs / Test/CI] N/A — review guidance only. ([#8603](https://github.com/omnigent-ai/omnigent/pull/8603), [@dhruv0811](https://github.com/dhruv0811)) - [Test/CI] ci(polly): flag client/server backwards-incompatible API changes ([#8607](https://github.com/omnigent-ai/omnigent/pull/8607), [@TomeHirata](https://github.com/TomeHirata)) - [Test/CI] N/A — test-only change. ([#8608](https://github.com/omnigent-ai/omnigent/pull/8608), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Bug fix] Chat now shows an error toast when `/compact` is submitted during an active Codex turn. ([#8609](https://github.com/omnigent-ai/omnigent/pull/8609), [@serena-ruan](https://github.com/serena-ruan)) - [Test/CI] Trigger visual snapshots when shared UI test helpers change ([#8611](https://github.com/omnigent-ai/omnigent/pull/8611), [@serena-ruan](https://github.com/serena-ruan)) - [Test/CI] Skip UI CI for independent Python test changes ([#8612](https://github.com/omnigent-ai/omnigent/pull/8612), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Bug fix] Codex `/compact` now waits in the message queue and runs automatically when the current turn finishes. ([#8613](https://github.com/omnigent-ai/omnigent/pull/8613), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix / Docs / Test/CI] Restarting omnidev's focused server no longer restarts the host. ([#8615](https://github.com/omnigent-ai/omnigent/pull/8615), [@fanzeyi](https://github.com/fanzeyi)) - [UI / Feature] Archiving a session can now also delete its git worktree. It asks the first time, and you can change this in Settings › Git. ([#8616](https://github.com/omnigent-ai/omnigent/pull/8616), [@daniellok-db](https://github.com/daniellok-db)) - [Bug fix / Chore] A session whose agent CLI rejects its launch arguments now shows "Agent CLI rejected its launch arguments" instead of a generic terminal-exit error. ([#8617](https://github.com/omnigent-ai/omnigent/pull/8617), [@daniellok-db](https://github.com/daniellok-db)) - [UI / Bug fix] The desktop app keeps showing the server you picked when Databricks sign-in moves to the workspace's own host. ([#8618](https://github.com/omnigent-ai/omnigent/pull/8618), [@hzub](https://github.com/hzub)) - [UI / Bug fix] Claude SDK `/compact` now stays visible while queued and runs before the next queued message. ([#8620](https://github.com/omnigent-ai/omnigent/pull/8620), [@serena-ruan](https://github.com/serena-ruan)) - [Test/CI] test: require complete harness bench observations on demand ([#8621](https://github.com/omnigent-ai/omnigent/pull/8621), [@PattaraS](https://github.com/PattaraS)) - [Docs] The Automations guide now explains recurrence validation limits and how to page through run history. ([#8622](https://github.com/omnigent-ai/omnigent/pull/8622), [@PattaraS](https://github.com/PattaraS)) - [Chore / Test/CI] refactor(tests): consolidate local server lifecycle for native regressions ([#8623](https://github.com/omnigent-ai/omnigent/pull/8623), [@PattaraS](https://github.com/PattaraS)) - [UI / Feature / Docs] Administrators can name the servers they provide through macOS Managed Preferences with a new `serverNames` key. ([#8627](https://github.com/omnigent-ai/omnigent/pull/8627), [@hzub](https://github.com/hzub)) - [Chore / Test/CI] test: consolidate runner and server setup (OMNI-10882) ([#8628](https://github.com/omnigent-ai/omnigent/pull/8628), [@PattaraS](https://github.com/PattaraS)) - [Chore / Test/CI] test: consolidate browser and Sidebar scaffolding (OMNI-10882) ([#8629](https://github.com/omnigent-ai/omnigent/pull/8629), [@PattaraS](https://github.com/PattaraS)) - [Chore / Test/CI] test: fold overlapping retry and reconnect scenarios (OMNI-10882) ([#8630](https://github.com/omnigent-ai/omnigent/pull/8630), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix] The desktop app shows progress while it signs in and opens a server, with a Cancel, instead of looking frozen ([#8634](https://github.com/omnigent-ai/omnigent/pull/8634), [@hzub](https://github.com/hzub)) - [Feature / Test/CI] Claude terminal prompt-delivery logs now explain unverified submissions, retries, and startup delays without recording prompt text. ([#8637](https://github.com/omnigent-ai/omnigent/pull/8637), [@serena-ruan](https://github.com/serena-ruan)) - fix(web): clear stale "Working…" after a mid-turn server restart ([#8644](https://github.com/omnigent-ai/omnigent/pull/8644), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix] Fix Claude-native messages remaining unsent when clearing keys are interpreted as pasted control characters. ([#8649](https://github.com/omnigent-ai/omnigent/pull/8649), [@Edwinhe03](https://github.com/Edwinhe03)) - [Feature] Policies that are using the RESPONSE phase can check if the current moment of the phase is the terminal agent response or not. ([#8653](https://github.com/omnigent-ai/omnigent/pull/8653), [@ArshSiddiqui](https://github.com/ArshSiddiqui)) - [Feature] Development desktop builds now have their own app identity and settings, separate from the release app. ([#8669](https://github.com/omnigent-ai/omnigent/pull/8669), [@fanzeyi](https://github.com/fanzeyi)) - [Test/CI] Fix E2E session metadata route matching ([#8671](https://github.com/omnigent-ai/omnigent/pull/8671), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [Bug fix] A failing Claude Code subagent no longer marks the parent session's turn as errored. ([#8672](https://github.com/omnigent-ai/omnigent/pull/8672), [@bbqiu](https://github.com/bbqiu)) - [Bug fix] Agent discovery reports host readiness, and session creation rejects harnesses the target host reports unavailable. ([#8675](https://github.com/omnigent-ai/omnigent/pull/8675), [@aravind-segu](https://github.com/aravind-segu)) - [UI / Bug fix] Browser Design-mode instructions now respect your queue and Always steer preference. ([#8684](https://github.com/omnigent-ai/omnigent/pull/8684), [@serena-ruan](https://github.com/serena-ruan)) - [Docs / Chore] docs: ask PR authors whether to include release notes ([#8686](https://github.com/omnigent-ai/omnigent/pull/8686), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] Session cost for openai-agents sessions now prices cached prompt tokens at the cache-read rate instead of the full input rate. ([#8687](https://github.com/omnigent-ai/omnigent/pull/8687), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Chore / Test/CI] refactor(tests): consolidate native runner scenario setup ([#8692](https://github.com/omnigent-ai/omnigent/pull/8692), [@PattaraS](https://github.com/PattaraS)) - [Chore / Test/CI] refactor(tests): consolidate session endpoint scaffolding ([#8693](https://github.com/omnigent-ai/omnigent/pull/8693), [@PattaraS](https://github.com/PattaraS)) - [Feature / Docs] feat(desktop): name managed servers with a URL query parameter ([#8710](https://github.com/omnigent-ai/omnigent/pull/8710), [@hzub](https://github.com/hzub)) - [UI / Feature] feat(web): add a refresh button to the workspace picker ([#8711](https://github.com/omnigent-ai/omnigent/pull/8711), [@bbqiu](https://github.com/bbqiu)) - [Chore] feat(logging): record code, level and source for relay-persisted error items ([#8715](https://github.com/omnigent-ai/omnigent/pull/8715), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] Pi `/compact` respects queue and Always steer preferences, and messages delivered during compaction wait safely for it to finish. ([#8723](https://github.com/omnigent-ai/omnigent/pull/8723), [@serena-ruan](https://github.com/serena-ruan)) - [Docs] docs(repro): reference retained tests instead of repeating source ([#8724](https://github.com/omnigent-ai/omnigent/pull/8724), [@serena-ruan](https://github.com/serena-ruan)) - [Chore] refactor(runner): move sub-agent work, ACP child sessions, and policy proxy out of app.py ([#8725](https://github.com/omnigent-ai/omnigent/pull/8725), [@TomeHirata](https://github.com/TomeHirata)) - [Test/CI] test: isolate crash-handler SDK fixture from installed packages ([#8726](https://github.com/omnigent-ai/omnigent/pull/8726), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix] fix(native): offer one-click retry for transient upstream turn errors ([#8728](https://github.com/omnigent-ai/omnigent/pull/8728), [@yaoharry](https://github.com/yaoharry)) - fix(server): re-address rollout runner-re-tunnel miss instead of failing the turn ([#8730](https://github.com/omnigent-ai/omnigent/pull/8730), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix / Docs / Test/CI] Browser tabs within the same session now share website sign-ins, including the agent browser. ([#8732](https://github.com/omnigent-ai/omnigent/pull/8732), [@serena-ruan](https://github.com/serena-ruan)) - [Chore / Test/CI] test: consolidate Codex forwarder setup (OMNI-10882) ([#8735](https://github.com/omnigent-ai/omnigent/pull/8735), [@PattaraS](https://github.com/PattaraS)) - [Chore / Test/CI] test: share policy integration setup (OMNI-10882) ([#8736](https://github.com/omnigent-ai/omnigent/pull/8736), [@PattaraS](https://github.com/PattaraS)) - feat(logging): log parent_session_id on the session_created debug event ([#8738](https://github.com/omnigent-ai/omnigent/pull/8738), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix] Codex-native Session cost keeps earlier prompt-cache reads at the cache-read rate after a cache-miss turn instead of re-billing them at the full input rate. ([#8739](https://github.com/omnigent-ai/omnigent/pull/8739), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Test/CI] test(server): cover the re-tunnel wrong-replica path end-to-end; trim docstring ([#8740](https://github.com/omnigent-ai/omnigent/pull/8740), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix / Test/CI] test(host): tolerate stale record removal while polling ([#8741](https://github.com/omnigent-ai/omnigent/pull/8741), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] Codex-native sessions now pick up changed MCP settings when resuming with a newly started app-server. The shared source config and explicitly selected profile are authoritative for the MCP inventory: entries present only in the private session config are removed, while unrelated session settings are preserved. Minimal-config mode excludes ambient MCPs but retains explicitly selected profile MCPs. ([#8745](https://github.com/omnigent-ai/omnigent/pull/8745), [@serena-ruan](https://github.com/serena-ruan)) - feat(logging): stamp creation_kind=child on native sub-agent session_created ([#8746](https://github.com/omnigent-ai/omnigent/pull/8746), [@TomeHirata](https://github.com/TomeHirata)) - [UI] style(desktop): drop the card from the "Opening Omnigent…" indicator ([#8748](https://github.com/omnigent-ai/omnigent/pull/8748), [@hzub](https://github.com/hzub)) - [UI / Bug fix] fix(desktop): onboarding wizard follow-ups from testing ([#8751](https://github.com/omnigent-ai/omnigent/pull/8751), [@hzub](https://github.com/hzub)) - [Bug fix] perf(web): stop sidebar freezes from query-cache listener scans and orphaned session-error queries ([#8753](https://github.com/omnigent-ai/omnigent/pull/8753), [@fapaul](https://github.com/fapaul)) - [Chore / Test/CI] refactor(tests): share Claude SDK fake defaults ([#8755](https://github.com/omnigent-ai/omnigent/pull/8755), [@PattaraS](https://github.com/PattaraS)) - [Chore / Test/CI] refactor(tests): share native wrapper session setup ([#8756](https://github.com/omnigent-ai/omnigent/pull/8756), [@PattaraS](https://github.com/PattaraS)) - [Chore / Test/CI] refactor(tests): reuse agent records and AppShell trees ([#8757](https://github.com/omnigent-ai/omnigent/pull/8757), [@PattaraS](https://github.com/PattaraS)) - [Docs] docs: finish seed feature-map verification recipes ([#8759](https://github.com/omnigent-ai/omnigent/pull/8759), [@PattaraS](https://github.com/PattaraS)) - [UI / Feature] feat(web): Harnesses settings page with per-harness MCPs, skills, and plugins ([#8761](https://github.com/omnigent-ai/omnigent/pull/8761), [@hzub](https://github.com/hzub)) - [Chore / Test/CI] refactor(tests): share bundle upload and session binding primitives ([#8763](https://github.com/omnigent-ai/omnigent/pull/8763), [@PattaraS](https://github.com/PattaraS)) - [Chore / Test/CI] refactor(tests): reuse native session setup with caller metadata ([#8764](https://github.com/omnigent-ai/omnigent/pull/8764), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] fix(web): spin RunningDot on an HTML wrapper so it composites on HiDPI ([#8766](https://github.com/omnigent-ai/omnigent/pull/8766), [@fapaul](https://github.com/fapaul)) - [UI / Bug fix] Side chats no longer post sub-agent notices in the main chat, and a Codex side chat becomes read-only after its runner restarts instead of failing on send ([#8768](https://github.com/omnigent-ai/omnigent/pull/8768), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] OpenCode configured for Amazon Bedrock through AWS credentials or an `amazon-bedrock` provider block now shows as ready instead of "needs auth". ([#8775](https://github.com/omnigent-ai/omnigent/pull/8775), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix / Feature / Docs / Test/CI] Sign in through OIDC providers using public PKCE clients, PS256 identity tokens, or explicitly configured authorization, token, and signing-key endpoints. ([#8776](https://github.com/omnigent-ai/omnigent/pull/8776), [@dhruv0811](https://github.com/dhruv0811)) - [Feature / Docs] feat(db): index agents by kind, owner, and creation order ([#8777](https://github.com/omnigent-ai/omnigent/pull/8777), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Bug fix] Slash command autocomplete now preserves adjacent text in the message composer. ([#8783](https://github.com/omnigent-ai/omnigent/pull/8783), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(codex-native): cover TUI recovery path on a live app-server ([#8787](https://github.com/omnigent-ai/omnigent/pull/8787), [@yaoharry](https://github.com/yaoharry)) - [Docs / Chore / Test/CI] test: organize Claude-native adapter tests by ownership ([#8788](https://github.com/omnigent-ai/omnigent/pull/8788), [@PattaraS](https://github.com/PattaraS)) - [Docs / Chore / Test/CI] test: split Claude-native forwarder tests by behavior ([#8789](https://github.com/omnigent-ai/omnigent/pull/8789), [@PattaraS](https://github.com/PattaraS)) - [Chore / Breaking] `POST /v1/sessions/{id}/switch-agent` now returns 410 Gone; fork the session into another agent instead (in-place switching is planned to return with a new request shape) ([#8795](https://github.com/omnigent-ai/omnigent/pull/8795), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Bug fix] Polish session workspace navigation and controls ([#8800](https://github.com/omnigent-ai/omnigent/pull/8800), [@ajayalfred](https://github.com/ajayalfred)) - [UI / Feature] Navigate workspace tabs, open common views, and switch recent sessions with new keyboard shortcuts and inline hints. ([#8802](https://github.com/omnigent-ai/omnigent/pull/8802), [@ajayalfred](https://github.com/ajayalfred)) - [Docs / Chore / Test/CI] test: group Codex-native adapter tests by ownership ([#8805](https://github.com/omnigent-ai/omnigent/pull/8805), [@PattaraS](https://github.com/PattaraS)) - [Docs / Chore / Test/CI] test: split Codex session orchestration tests by behavior ([#8806](https://github.com/omnigent-ai/omnigent/pull/8806), [@PattaraS](https://github.com/PattaraS)) - [Docs / Chore / Test/CI] test: split Codex forwarder tests by behavior ([#8807](https://github.com/omnigent-ai/omnigent/pull/8807), [@PattaraS](https://github.com/PattaraS)) - [Docs / Chore / Test/CI] test: split Codex app-server tests by behavior ([#8809](https://github.com/omnigent-ai/omnigent/pull/8809), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] fix(otto): investigate causes and design intent before proposing fixes ([#8810](https://github.com/omnigent-ai/omnigent/pull/8810), [@PattaraS](https://github.com/PattaraS)) - [Docs / Chore] feat(desktop): add `just electron-mdm` for local managed-preference testing ([#8811](https://github.com/omnigent-ai/omnigent/pull/8811), [@hzub](https://github.com/hzub)) - [UI / Bug fix] Sub-agent popover now uses the same spinner as the sidebar and Subagents panel. ([#8819](https://github.com/omnigent-ai/omnigent/pull/8819), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] The side-chat composer now sits the same distance from the bottom of its panel as the main chat composer. ([#8821](https://github.com/omnigent-ai/omnigent/pull/8821), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] Opening a PR with a very large file diff no longer freezes the app; that file shows a "Show diff" button instead. ([#8822](https://github.com/omnigent-ai/omnigent/pull/8822), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] "Retry" button now appears after a harness stream drop (`connection_error`), ([#8827](https://github.com/omnigent-ai/omnigent/pull/8827), [@yaoharry](https://github.com/yaoharry)) - fix(codex): version-gate app-server attach flag rename ([#8828](https://github.com/omnigent-ai/omnigent/pull/8828), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix] Cowork markdown editor now shows a warning banner while the agent is still ([#8832](https://github.com/omnigent-ai/omnigent/pull/8832), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(harness): preserve explicit ProviderAuth provider across inference config overlay ([#8839](https://github.com/omnigent-ai/omnigent/pull/8839), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(feature-map): point native-harness references at the moved Codex tests ([#8843](https://github.com/omnigent-ai/omnigent/pull/8843), [@yaoharry](https://github.com/yaoharry)) - [Chore / Test/CI] test: group Antigravity adapter tests by ownership ([#8847](https://github.com/omnigent-ai/omnigent/pull/8847), [@PattaraS](https://github.com/PattaraS)) - [Chore / Test/CI] test: group Pi adapter tests by ownership ([#8848](https://github.com/omnigent-ai/omnigent/pull/8848), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test: stabilize CLI process cleanup and REPL assertions ([#8849](https://github.com/omnigent-ai/omnigent/pull/8849), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] fix(runner): keep terminal exit output when the pane is padded with blank rows ([#8852](https://github.com/omnigent-ai/omnigent/pull/8852), [@daniellok-db](https://github.com/daniellok-db)) - [Chore] refactor(runner): split MCP, model-option, and resource routes out of app.py ([#8854](https://github.com/omnigent-ai/omnigent/pull/8854), [@TomeHirata](https://github.com/TomeHirata)) - [Test/CI] test: preserve logging handler release in Codex diagnostics ([#8855](https://github.com/omnigent-ai/omnigent/pull/8855), [@PattaraS](https://github.com/PattaraS)) - [Chore] refactor(runner): split native-harness control handlers out of app.py ([#8856](https://github.com/omnigent-ai/omnigent/pull/8856), [@TomeHirata](https://github.com/TomeHirata)) - Revert "fix(codex): version-gate app-server attach flag rename (#8828)" ([#8857](https://github.com/omnigent-ai/omnigent/pull/8857), [@TomeHirata](https://github.com/TomeHirata)) - [Chore] refactor(runner): split session-history helpers out of app.py ([#8858](https://github.com/omnigent-ai/omnigent/pull/8858), [@TomeHirata](https://github.com/TomeHirata)) - fix(codex-native): reject runner-owned transport in pass-through launch args ([#8859](https://github.com/omnigent-ai/omnigent/pull/8859), [@TomeHirata](https://github.com/TomeHirata)) - [Chore] refactor(runner): split sub-agent recovery helpers out of app.py ([#8861](https://github.com/omnigent-ai/omnigent/pull/8861), [@TomeHirata](https://github.com/TomeHirata)) - [Chore] refactor(runner): split sign-in-watch helpers out of app.py ([#8862](https://github.com/omnigent-ai/omnigent/pull/8862), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix] Polish keyboard shortcuts and modal controls ([#8877](https://github.com/omnigent-ai/omnigent/pull/8877), [@ajayalfred](https://github.com/ajayalfred)) - [Bug fix] fix(server): attribute runner_exited debug events to bound sessions ([#8884](https://github.com/omnigent-ai/omnigent/pull/8884), [@fanzeyi](https://github.com/fanzeyi)) - [Bug fix] fix(runner): log uncaught crashes and drain telemetry in zygote-forked runners ([#8890](https://github.com/omnigent-ai/omnigent/pull/8890), [@fanzeyi](https://github.com/fanzeyi)) - [Test/CI] test(resilience): add a fault-injection lab for network interruptions ([#8891](https://github.com/omnigent-ai/omnigent/pull/8891), [@fanzeyi](https://github.com/fanzeyi)) - [Feature] feat(server): add a native loopback OIDC sign-in and advertise auth mode in the manifest ([#8894](https://github.com/omnigent-ai/omnigent/pull/8894), [@fanzeyi](https://github.com/fanzeyi)) - [Feature] feat(server): publish an operator-chosen server name in the manifest ([#8895](https://github.com/omnigent-ai/omnigent/pull/8895), [@fanzeyi](https://github.com/fanzeyi)) - [Chore] refactor(electron): share the loopback sign-in runner and token store, and parse manifest auth ([#8896](https://github.com/omnigent-ai/omnigent/pull/8896), [@fanzeyi](https://github.com/fanzeyi)) - [Feature] The desktop app signs in to OIDC servers in your system browser, so Google sign-in, passkeys and your browser's existing session work, and it renews the session silently instead of asking you to sign in again. ([#8897](https://github.com/omnigent-ai/omnigent/pull/8897), [@fanzeyi](https://github.com/fanzeyi)) - [UI / Feature] Operators can name a server with `branding.server_name`, and the desktop app shows that name next to the host in its server lists. ([#8898](https://github.com/omnigent-ai/omnigent/pull/8898), [@fanzeyi](https://github.com/fanzeyi)) - [Test/CI] test(electron): cover OIDC system-browser sign-in end to end in the desktop shell ([#8899](https://github.com/omnigent-ai/omnigent/pull/8899), [@fanzeyi](https://github.com/fanzeyi)) - [Test/CI] test(resilience): add scenario drivers and S2 server-restart matrix ([#8904](https://github.com/omnigent-ai/omnigent/pull/8904), [@fanzeyi](https://github.com/fanzeyi)) - [UI / Bug fix] Stopping a session no longer holds a blocking dialog open while the runner shuts down — the dialog closes immediately and the stop finishes in the background. ([#8908](https://github.com/omnigent-ai/omnigent/pull/8908), [@yaoharry](https://github.com/yaoharry)) - [UI / Feature] Press Ctrl+Shift+L to focus the chat input from anywhere in a session. ([#8910](https://github.com/omnigent-ai/omnigent/pull/8910), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test(resilience): cover ingress, host network, sleep, offline host/client and model loss ([#8915](https://github.com/omnigent-ai/omnigent/pull/8915), [@fanzeyi](https://github.com/fanzeyi)) - [Test/CI] test(resilience): run every network scenario against codex-native too ([#8923](https://github.com/omnigent-ai/omnigent/pull/8923), [@fanzeyi](https://github.com/fanzeyi)) - [Test/CI] test(resilience): record the user's view of each scenario with captioned faults ([#8926](https://github.com/omnigent-ai/omnigent/pull/8926), [@fanzeyi](https://github.com/fanzeyi)) - [UI / Bug fix] Source files longer than 2,000 lines can be viewed and edited in full, up to the 10 MiB preview limit. ([#8933](https://github.com/omnigent-ai/omnigent/pull/8933), [@dbczumar](https://github.com/dbczumar)) - [Bug fix / Docs] fix(telemetry): record server-initiated runner tunnel disconnects ([#8936](https://github.com/omnigent-ai/omnigent/pull/8936), [@dbczumar](https://github.com/dbczumar)) - [Feature / Docs / Test/CI] Ask once for missing Otto PR closure feedback ([#8939](https://github.com/omnigent-ai/omnigent/pull/8939), [@PattaraS](https://github.com/PattaraS)) - [Bug fix / Docs] fix(resolve): keep mocked causes separate from verified diagnoses ([#8940](https://github.com/omnigent-ai/omnigent/pull/8940), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] Chat messages no longer fail with "client is read-only" on tmux 3.7+ while another user is viewing the session's terminal ([#8949](https://github.com/omnigent-ai/omnigent/pull/8949), [@bbqiu](https://github.com/bbqiu)) - [Chore / Test/CI] chore(telemetry): log harness identity for active and child sessions ([#8952](https://github.com/omnigent-ai/omnigent/pull/8952), [@dbczumar](https://github.com/dbczumar)) - [UI / Feature] The sidebar now makes nested agents, their current state, and new-session actions easier to scan and use. ([#8970](https://github.com/omnigent-ai/omnigent/pull/8970), [@ajayalfred](https://github.com/ajayalfred)) - [Chore / Test/CI] test: share isolated server and runner lifecycle for resume regressions ([#8976](https://github.com/omnigent-ai/omnigent/pull/8976), [@PattaraS](https://github.com/PattaraS)) - [Chore / Test/CI] test: reuse server runner lifecycle for timeout and diagnostic regressions ([#8977](https://github.com/omnigent-ai/omnigent/pull/8977), [@PattaraS](https://github.com/PattaraS)) - [Bug fix / Test/CI] fix(polly): record review identity before launching the model ([#8981](https://github.com/omnigent-ai/omnigent/pull/8981), [@PattaraS](https://github.com/PattaraS)) - [Chore / Test/CI] test: reuse server/runner lifecycle for workspace regressions ([#8983](https://github.com/omnigent-ai/omnigent/pull/8983), [@PattaraS](https://github.com/PattaraS)) - [Chore / Test/CI] test: reuse server/runner lifecycle for native child scenarios ([#8984](https://github.com/omnigent-ai/omnigent/pull/8984), [@PattaraS](https://github.com/PattaraS)) - [Bug fix / Test/CI] Sessions keep running after a runner moves to another server replica during a conversation database outage. ([#9001](https://github.com/omnigent-ai/omnigent/pull/9001), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] fix: recheck runner bindings before failing native messages ([#9004](https://github.com/omnigent-ai/omnigent/pull/9004), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] fix(claude-native): preserve shutdown lifecycle evidence ([#9005](https://github.com/omnigent-ai/omnigent/pull/9005), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] fix(claude-native): preserve native turn failure evidence ([#9008](https://github.com/omnigent-ai/omnigent/pull/9008), [@dbczumar](https://github.com/dbczumar)) - [UI / Feature] Show installed Claude plugins in Harnesses settings ([#9013](https://github.com/omnigent-ai/omnigent/pull/9013), [@hzub](https://github.com/hzub)) - [UI / Bug fix / Feature] feat: show skill contents in Harnesses settings ([#9017](https://github.com/omnigent-ai/omnigent/pull/9017), [@hzub](https://github.com/hzub)) - [UI / Feature] feat: show read-only Claude and Codex launch settings ([#9019](https://github.com/omnigent-ai/omnigent/pull/9019), [@hzub](https://github.com/hzub)) - [Bug fix] Messages sent during a brief host restart wait for the host to reconnect and continue without requiring a resend. ([#9020](https://github.com/omnigent-ai/omnigent/pull/9020), [@dbczumar](https://github.com/dbczumar)) - [UI / Bug fix / Feature] feat: discover MCP tools lazily in Harnesses settings ([#9021](https://github.com/omnigent-ai/omnigent/pull/9021), [@hzub](https://github.com/hzub)) - [Bug fix / Docs / Test/CI] fix(server): propagate intentional runner stops to active subagents ([#9025](https://github.com/omnigent-ai/omnigent/pull/9025), [@dbczumar](https://github.com/dbczumar)) - [Bug fix / Docs] fix(server): recheck reconnected runner after offline session lookup ([#9035](https://github.com/omnigent-ai/omnigent/pull/9035), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix] Sessions recover from repeated brief runner disconnects without consuming an earlier outage's timeout. ([#9043](https://github.com/omnigent-ai/omnigent/pull/9043), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Native Claude child transcripts resume delivery after temporary server outages without losing pending output. ([#9048](https://github.com/omnigent-ai/omnigent/pull/9048), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Codex native sessions avoid launch-config read timeouts when the server already supplied the required settings, while retaining compatibility with older servers. ([#9052](https://github.com/omnigent-ai/omnigent/pull/9052), [@daniellok-db](https://github.com/daniellok-db)) - [UI / Bug fix] fix(web): cap goal dialogs to viewport height so footer stays accessible ([#9053](https://github.com/omnigent-ai/omnigent/pull/9053), [@TomeHirata](https://github.com/TomeHirata)) - [UI] feat(onboarding): pick the runner with radio cards instead of a dropdown ([#9054](https://github.com/omnigent-ai/omnigent/pull/9054), [@hzub](https://github.com/hzub)) - [UI / Bug fix] fix(ios): honor sidebar server selection for workspace connections ([#9059](https://github.com/omnigent-ai/omnigent/pull/9059), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix] Side chats now become read-only with their transcript preserved when their ([#9063](https://github.com/omnigent-ai/omnigent/pull/9063), [@yaoharry](https://github.com/yaoharry)) - [Chore / Test/CI] test(ios): cover native server selector visibility and recovery ([#9071](https://github.com/omnigent-ai/omnigent/pull/9071), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix / Docs] Idle subsessions stay idle instead of showing a false runner-disconnection error when a disconnect check races with an idle update. ([#9076](https://github.com/omnigent-ai/omnigent/pull/9076), [@TomeHirata](https://github.com/TomeHirata)) - [UI / Bug fix] fix: prompt users to update hosts without MCP inventory support ([#9081](https://github.com/omnigent-ai/omnigent/pull/9081), [@hzub](https://github.com/hzub)) - [Bug fix / Docs] fix(runner): isolate credential fallback from executor imports ([#9086](https://github.com/omnigent-ai/omnigent/pull/9086), [@TomeHirata](https://github.com/TomeHirata)) - fix(web): anchor short markdown comments to nearest match ([#9089](https://github.com/omnigent-ai/omnigent/pull/9089), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix / Docs] fix(sessions): retain relay adoption status for disconnect fallback ([#9097](https://github.com/omnigent-ai/omnigent/pull/9097), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix] fix(runtime): finish harness cleanup when release is cancelled ([#9106](https://github.com/omnigent-ai/omnigent/pull/9106), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Sessions reconnect when a runner's event stream ends unexpectedly instead of remaining stuck as running. ([#9108](https://github.com/omnigent-ai/omnigent/pull/9108), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Long conversations keep matching tool calls and results together during summarization. ([#9114](https://github.com/omnigent-ai/omnigent/pull/9114), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(runtime): clear active markers when harnesses retire ([#9120](https://github.com/omnigent-ai/omnigent/pull/9120), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] fix(native): reap cancelled direct tmux attach clients ([#9122](https://github.com/omnigent-ai/omnigent/pull/9122), [@yaoharry](https://github.com/yaoharry)) - [UI / Feature] feat(web): open "Ask in side chat" in its own side-chat tab ([#9129](https://github.com/omnigent-ai/omnigent/pull/9129), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] Finished Claude and Codex subsessions no longer show as disconnected when their host goes to sleep or shuts down. ([#9130](https://github.com/omnigent-ai/omnigent/pull/9130), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] fix(web): show icon-only workspace and permission chips when no host is selected ([#9131](https://github.com/omnigent-ai/omnigent/pull/9131), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] fix(env): forward BROWSER through daemon, runner, and harness env allowlists ([#9143](https://github.com/omnigent-ai/omnigent/pull/9143), [@bbqiu](https://github.com/bbqiu)) ## [v0.16.0] — 2026-09-29 - [Bug fix] A runner now continues starting when its orphan sweep cannot inspect the harness temporary parent or one of its entries. ([#2405](https://github.com/omnigent-ai/omnigent/pull/2405), [@dosenr](https://github.com/dosenr)) - [Bug fix] Native-terminal agents (Claude Code, Codex, Cursor, etc.) now show a warning badge in the new-session picker on Windows hosts, preventing silent `native_terminal_start_failed` on session start. ([#5519](https://github.com/omnigent-ai/omnigent/pull/5519), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Test/CI] fix(harness-bench): do not mark model_override SUPPORTED when unused (#5192) ([#5917](https://github.com/omnigent-ai/omnigent/pull/5917), [@Arshgill01](https://github.com/Arshgill01)) - [UI / Feature] Right-click a local file or folder in the desktop app to show it in Finder, File Explorer or your file manager ([#6691](https://github.com/omnigent-ai/omnigent/pull/6691), [@nakazax](https://github.com/nakazax)) - feat(codex): brokered auth via trusted signer (v6) ([#6770](https://github.com/omnigent-ai/omnigent/pull/6770), [@nhsdb](https://github.com/nhsdb)) - [Feature] Slack setup can pre-select an agent and the managed sandbox for everyone via `OMNIGENT_SLACK_DEFAULT_AGENT_ID` / `OMNIGENT_SLACK_DEFAULT_HOST_TYPE` ([#6965](https://github.com/omnigent-ai/omnigent/pull/6965), [@bdchatham](https://github.com/bdchatham)) - [UI / Bug fix] fix(host,server,web): diagnose runner launches that never connect ([#7166](https://github.com/omnigent-ai/omnigent/pull/7166), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] Recovering a Codex terminal keeps its healthy agent backend running instead of repeating startup. ([#7442](https://github.com/omnigent-ai/omnigent/pull/7442), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Supported harnesses receive external MCP images and embedded-browser screenshots as native images with accompanying text; Codex SDK can replay retained tool images after restart. ([#7444](https://github.com/omnigent-ai/omnigent/pull/7444), [@Jomak-x](https://github.com/Jomak-x)) - [Bug fix] fix(runner): re-resolve Databricks SDK auth when a cached mint goes stale ([#7479](https://github.com/omnigent-ai/omnigent/pull/7479), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] fix(terminal): qualify orphan-sweep ownership by PID namespace and boot ([#7495](https://github.com/omnigent-ai/omnigent/pull/7495), [@arthivjkumar](https://github.com/arthivjkumar)) - [Bug fix] fix(cli): stop importing the TUI SDK for the auth token path lookup ([#7512](https://github.com/omnigent-ai/omnigent/pull/7512), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Feature / Docs] Linux agents can make disposable edits with `copy_on_write: true` in sandbox `write_paths`. ([#7599](https://github.com/omnigent-ai/omnigent/pull/7599), [@mxatone](https://github.com/mxatone)) - [Bug fix] fix(files): record native-harness writes in non-git workspace changes ([#7602](https://github.com/omnigent-ai/omnigent/pull/7602), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] fix(host): report needs-auth for SDK harnesses on credential-less hosts ([#7673](https://github.com/omnigent-ai/omnigent/pull/7673), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] fix(cli): report the server start is waiting on and classify unreachable-server registration timeouts ([#7698](https://github.com/omnigent-ai/omnigent/pull/7698), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] fix(runner): skip inheriting a parent model the child harness cannot serve ([#7704](https://github.com/omnigent-ai/omnigent/pull/7704), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] fix(hermes-native): point the policy-hook wrapper at the shipped hook script ([#7708](https://github.com/omnigent-ai/omnigent/pull/7708), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Feature] feat(web): collapse long user prompts in chat bubble ([#7731](https://github.com/omnigent-ai/omnigent/pull/7731), [@trungnguyen21](https://github.com/trungnguyen21)) - chore(deps): bump anyio from 4.13.0 to 4.14.2 ([#7802](https://github.com/omnigent-ai/omnigent/pull/7802), [@dependabot[bot]](https://github.com/apps/dependabot)) - [Feature / Docs / Test/CI] Daytona managed sessions now keep their workspace when a stopped or archived sandbox resumes. ([#7828](https://github.com/omnigent-ai/omnigent/pull/7828), [@wilbeibi](https://github.com/wilbeibi)) - [Bug fix] Shell policies preserve command arguments and flags supplied after env split strings. ([#7871](https://github.com/omnigent-ai/omnigent/pull/7871), [@dipeshbabu](https://github.com/dipeshbabu)) - [Bug fix] Shell policies require a decision when commands exceed the nesting limit. ([#7872](https://github.com/omnigent-ai/omnigent/pull/7872), [@dipeshbabu](https://github.com/dipeshbabu)) - [Bug fix] Unpinned native Codex sessions now default to GPT-5.6 Sol when it is available. ([#7975](https://github.com/omnigent-ai/omnigent/pull/7975), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] The iOS app no longer crashes when replacing or tearing down its workspace WebView. ([#7977](https://github.com/omnigent-ai/omnigent/pull/7977), [@fanzeyi](https://github.com/fanzeyi)) - [Bug fix / Docs / Test/CI] Resolve independently audits reproduction evidence before reviewing or authoring a fix. ([#7991](https://github.com/omnigent-ai/omnigent/pull/7991), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] Changing models wakes a sleeping native session runner and reports failures when the switch cannot be applied. ([#8002](https://github.com/omnigent-ai/omnigent/pull/8002), [@daniellok-db](https://github.com/daniellok-db)) - [Test/CI] test(e2e-ui): use vertical overlap instead of centre delta in _assert_same_row ([#8006](https://github.com/omnigent-ai/omnigent/pull/8006), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] `omnigent login` no longer misdetects the server's auth mode when `HTTP_PROXY`/`HTTPS_PROXY` are set: loopback servers bypass the env proxy, and a proxy-intercepted probe fails with a `NO_PROXY` hint instead of a misleading OIDC error ([#8014](https://github.com/omnigent-ai/omnigent/pull/8014), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix] fix(web): stop redundant session-list refetches while the updates stream is live ([#8017](https://github.com/omnigent-ai/omnigent/pull/8017), [@hzub](https://github.com/hzub)) - [Test/CI] test(e2e-ui): explicitly steer queued messages through Claude Rewind ([#8024](https://github.com/omnigent-ai/omnigent/pull/8024), [@serena-ruan](https://github.com/serena-ruan)) - [Test/CI] test(e2e-ui): update native effort pickers and approval retry expectations ([#8025](https://github.com/omnigent-ai/omnigent/pull/8025), [@serena-ruan](https://github.com/serena-ruan)) - [UI] Scaffold UI for harnesses and skills ([#8026](https://github.com/omnigent-ai/omnigent/pull/8026), [@hzub](https://github.com/hzub)) - Bump version to 0.16.0.dev0 ([#8028](https://github.com/omnigent-ai/omnigent/pull/8028), [@omnigent-ci[bot]](https://github.com/apps/omnigent-ci)) - build(sdks): cap hatchling <1.32.4 to emit Metadata-Version 2.4 ([#8029](https://github.com/omnigent-ai/omnigent/pull/8029), [@daniellok-db](https://github.com/daniellok-db)) - [UI] Use actual harnesses ([#8031](https://github.com/omnigent-ai/omnigent/pull/8031), [@hzub](https://github.com/hzub)) - docs(changelog): record v0.15.0 ([#8035](https://github.com/omnigent-ai/omnigent/pull/8035), [@omnigent-ci[bot]](https://github.com/apps/omnigent-ci)) - [UI / Bug fix] Cancel and edit an unsent message while a new chat starts or a model switch finishes, without the canceled prompt being processed later. ([#8039](https://github.com/omnigent-ai/omnigent/pull/8039), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] The Codex terminal keeps its final screen and exit code when Codex exits, and each launch logs its redacted argv. ([#8040](https://github.com/omnigent-ai/omnigent/pull/8040), [@dbczumar](https://github.com/dbczumar)) - [Chore] chore(electron): bump desktop version to 0.14.0 ([#8041](https://github.com/omnigent-ai/omnigent/pull/8041), [@fanzeyi](https://github.com/fanzeyi)) - [Chore] refactor(db): move project ordering to preferences ([#8042](https://github.com/omnigent-ai/omnigent/pull/8042), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] Forking a session into a custom agent from the same account no longer fails with "Agent not found or not bindable." ([#8046](https://github.com/omnigent-ai/omnigent/pull/8046), [@tyler-lynch](https://github.com/tyler-lynch)) - [UI / Feature] Embedded browser sites can now request local network access through a Chrome-style permission prompt. ([#8049](https://github.com/omnigent-ai/omnigent/pull/8049), [@fanzeyi](https://github.com/fanzeyi)) - [UI / Feature] Authentication debugging controls are now available in production macOS builds when Developer Mode is enabled. ([#8051](https://github.com/omnigent-ai/omnigent/pull/8051), [@fanzeyi](https://github.com/fanzeyi)) - [Docs / Test/CI] ci: require code-owner approval for database migrations ([#8053](https://github.com/omnigent-ai/omnigent/pull/8053), [@dbczumar](https://github.com/dbczumar)) - [UI / Bug fix] fix(web): restyle archive toast to default component + fix browser drag handle ([#8055](https://github.com/omnigent-ai/omnigent/pull/8055), [@ajayalfred](https://github.com/ajayalfred)) - [UI / Bug fix] Sidebar menu buttons now reliably show their tooltips on hover. ([#8056](https://github.com/omnigent-ai/omnigent/pull/8056), [@fanzeyi](https://github.com/fanzeyi)) - [UI / Bug fix] Right-clicking a session's action buttons now opens the session menu instead of the native browser menu. ([#8057](https://github.com/omnigent-ai/omnigent/pull/8057), [@fanzeyi](https://github.com/fanzeyi)) - [Bug fix] Native terminal sessions no longer shut down as idle while they are still running or waiting. ([#8058](https://github.com/omnigent-ai/omnigent/pull/8058), [@yaoharry](https://github.com/yaoharry)) - [Chore] chore(ios): bump marketing version to 0.2.1 ([#8059](https://github.com/omnigent-ai/omnigent/pull/8059), [@fanzeyi](https://github.com/fanzeyi)) - [Chore] chore(ios): correct marketing version to 0.3.1 ([#8061](https://github.com/omnigent-ai/omnigent/pull/8061), [@fanzeyi](https://github.com/fanzeyi)) - [UI / Bug fix] The composer now places pull requests beside their repository and branch with the correct icon. ([#8062](https://github.com/omnigent-ai/omnigent/pull/8062), [@zhengwin](https://github.com/zhengwin)) - [Bug fix] Sub-agent child sessions opened from the web no longer report the runner offline on multi-replica deployments; they route to the same replica as their parent. ([#8063](https://github.com/omnigent-ai/omnigent/pull/8063), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] External-auth deployments can write projects, preferences, hosts, and scheduled tasks without the built-in accounts table. ([#8066](https://github.com/omnigent-ai/omnigent/pull/8066), [@daniellok-db](https://github.com/daniellok-db)) - [Feature] `OMNIGENT_WS_ALLOWED_ORIGINS` entries can now start with `*.` (e.g. `https://*.ts.net`) to trust every subdomain of a domain in one entry ([#8070](https://github.com/omnigent-ai/omnigent/pull/8070), [@natsuskaizen](https://github.com/natsuskaizen)) - [UI] Polish settings, sidebar, chat, and terminal layouts for a more consistent interface. ([#8072](https://github.com/omnigent-ai/omnigent/pull/8072), [@ajayalfred](https://github.com/ajayalfred)) - [Bug fix] Codex executable overrides now reach runners started through background host daemons. ([#8074](https://github.com/omnigent-ai/omnigent/pull/8074), [@dbczumar](https://github.com/dbczumar)) - [Bug fix / Docs] Native harness sessions no longer open a loopback TCP port per MCP helper process; the control channel uses a Unix socket, so remote-dev port forwarders stay under their limits. ([#8079](https://github.com/omnigent-ai/omnigent/pull/8079), [@dbczumar](https://github.com/dbczumar)) - Demote unavailable primary harnesses to Other and fix disabled row indent ([#8081](https://github.com/omnigent-ai/omnigent/pull/8081), [@zhengwin](https://github.com/zhengwin)) - [Bug fix] Starting a host-backed session no longer launches a duplicate runner because a status check races with its initial launch. ([#8085](https://github.com/omnigent-ai/omnigent/pull/8085), [@daniellok-db](https://github.com/daniellok-db)) - [UI / Bug fix] Files panel search finds tracked files in repositories of any size, and says when a scan stopped early instead of reporting no matches. ([#8087](https://github.com/omnigent-ai/omnigent/pull/8087), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] The MCP control socket root is validated as owner-only and advertised as an absolute path, and its control endpoint authenticates before reading a bounded request body. ([#8090](https://github.com/omnigent-ai/omnigent/pull/8090), [@dbczumar](https://github.com/dbczumar)) - [Bug fix / Docs / Test/CI] Opted-in Codex diagnostics include runtime engine activity and report early terminal startup failures with their exit status and recent output. ([#8092](https://github.com/omnigent-ai/omnigent/pull/8092), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] Runners reconnect promptly after a dropped connection instead of waiting up to 15 seconds, so fewer turns fail with "Runner disconnected unexpectedly" ([#8093](https://github.com/omnigent-ai/omnigent/pull/8093), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Brief host reconnects no longer fail an in-progress turn with "Runner disconnected unexpectedly" ([#8094](https://github.com/omnigent-ai/omnigent/pull/8094), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] An exhausted AI-gateway budget now says so, instead of telling you to log in again ([#8095](https://github.com/omnigent-ai/omnigent/pull/8095), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] A Pi session that can't honour the chosen reasoning effort now shows a neutral notice instead of an error banner ([#8096](https://github.com/omnigent-ai/omnigent/pull/8096), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Quitting Claude Code in a session's terminal no longer shows a "terminal exited unexpectedly" error ([#8097](https://github.com/omnigent-ai/omnigent/pull/8097), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] Message navigation highlights stay inside the message bubble. ([#8098](https://github.com/omnigent-ai/omnigent/pull/8098), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] A failing background sub-agent no longer marks its parent Claude session as failed ([#8103](https://github.com/omnigent-ai/omnigent/pull/8103), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Undoing an archived session now keeps its running session alive instead of leaving a dead pane ([#8106](https://github.com/omnigent-ai/omnigent/pull/8106), [@hzub](https://github.com/hzub)) - [Docs / Test/CI] docs: guide auto-doc classifier toward product value ([#8108](https://github.com/omnigent-ai/omnigent/pull/8108), [@daniellok-db](https://github.com/daniellok-db)) - [Test/CI] Trim redundant UI E2E coverage ([#8110](https://github.com/omnigent-ai/omnigent/pull/8110), [@zhengwin](https://github.com/zhengwin)) - [Feature / Docs / Test/CI] Teach repro-agent optional coordinated planning and reporting ([#8113](https://github.com/omnigent-ai/omnigent/pull/8113), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix / Docs / Test/CI] fix(resolve-agent): clarify audit blockers and verification limits ([#8114](https://github.com/omnigent-ai/omnigent/pull/8114), [@PattaraS](https://github.com/PattaraS)) - [Bug fix / Test/CI] Issue triage now includes related reports when reclassifying edited issues and gives clearer guidance for preserving reported bugs. ([#8117](https://github.com/omnigent-ai/omnigent/pull/8117), [@serena-ruan](https://github.com/serena-ruan)) - [Test/CI] test(composer): capture behavior and geometry baselines ([#8118](https://github.com/omnigent-ai/omnigent/pull/8118), [@zhengwin](https://github.com/zhengwin)) - [UI] [New onboarding flow] Replace animation and styles ([#8119](https://github.com/omnigent-ai/omnigent/pull/8119), [@hzub](https://github.com/hzub)) - [Feature / Docs / Test/CI] Reproduction tooling can record environment checks against reported prerequisites and recheck them after setup. ([#8120](https://github.com/omnigent-ai/omnigent/pull/8120), [@serena-ruan](https://github.com/serena-ruan)) - [UI] Redesigned the desktop onboarding flow: clearer landing CTAs, organization-preset servers with a split "Join your team" button, a preset-server detail view, and a two-section server list. ([#8126](https://github.com/omnigent-ai/omnigent/pull/8126), [@hzub](https://github.com/hzub)) - [Test/CI] test(web): de-flake archiveUndoToast deadline test ([#8132](https://github.com/omnigent-ai/omnigent/pull/8132), [@hzub](https://github.com/hzub)) - [Test/CI] test(e2e): trim redundant approval coverage ([#8136](https://github.com/omnigent-ai/omnigent/pull/8136), [@zhengwin](https://github.com/zhengwin)) - [Chore / Breaking] Saved preferences are limited to 65,535 stored bytes; upgrading resets oversized preferences to defaults, and oversized project-order saves are rejected. ([#8137](https://github.com/omnigent-ai/omnigent/pull/8137), [@dbczumar](https://github.com/dbczumar)) - [Docs / Test/CI] ci: apply database best practices in Polly reviews ([#8138](https://github.com/omnigent-ai/omnigent/pull/8138), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] Native model catalogs begin warming when the host starts, reducing cold first-launch delays. ([#8140](https://github.com/omnigent-ai/omnigent/pull/8140), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [UI / Chore] Composer surfaces now share one layout: rows align to a single inset line and the workspace bar and queued-message strip dock neatly above the card on all screen sizes. ([#8141](https://github.com/omnigent-ai/omnigent/pull/8141), [@zhengwin](https://github.com/zhengwin)) - [Chore / Breaking] Inference snapshots are compressed and limited to 65,535 stored bytes. Upgrading clears snapshots that remain oversized; new oversized snapshots are rejected before session creation. ([#8143](https://github.com/omnigent-ai/omnigent/pull/8143), [@dbczumar](https://github.com/dbczumar)) - [UI / Bug fix] On macOS, Ctrl+F moves the prompt caret even when a file viewer is open, while Cmd+F still opens find-in-file. ([#8146](https://github.com/omnigent-ai/omnigent/pull/8146), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [Chore] perf(server): consolidate session creation persistence ([#8149](https://github.com/omnigent-ai/omnigent/pull/8149), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [Bug fix] Sessions no longer fail with "Runner disconnected unexpectedly" when the runner reconnects to a different server replica ([#8152](https://github.com/omnigent-ai/omnigent/pull/8152), [@yaoharry](https://github.com/yaoharry)) - [Feature / Docs / Test/CI] Release notes and the full changelog now link PRs and credit their authors, including smaller fixes and documentation contributions grouped by contributor. ([#8158](https://github.com/omnigent-ai/omnigent/pull/8158), [@serena-ruan](https://github.com/serena-ruan)) - [Chore] refactor(web): extract landing composer attachments into useComposerAttachments ([#8159](https://github.com/omnigent-ai/omnigent/pull/8159), [@zhengwin](https://github.com/zhengwin)) - [Docs] docs: Update link to macOS installation guide in README.md ([#8160](https://github.com/omnigent-ai/omnigent/pull/8160), [@terrytangyuan](https://github.com/terrytangyuan)) - [Test/CI] test(e2e): trim redundant sidebar coverage ([#8161](https://github.com/omnigent-ai/omnigent/pull/8161), [@zhengwin](https://github.com/zhengwin)) - [Chore] refactor(web): migrate live composer attachments to useComposerAttachments ([#8162](https://github.com/omnigent-ai/omnigent/pull/8162), [@zhengwin](https://github.com/zhengwin)) - [Chore] refactor(web): harden useComposerAttachments as the shared boundary ([#8163](https://github.com/omnigent-ai/omnigent/pull/8163), [@zhengwin](https://github.com/zhengwin)) - [Bug fix] `omni host` no longer dumps internal tracebacks when live Databricks model discovery falls back to cached models — it prints one actionable warning instead ([#8166](https://github.com/omnigent-ai/omnigent/pull/8166), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Chore / Test/CI] New-chat skill menu: the highlighted suggestion resets when the composer loses and regains focus, matching the in-session composer ([#8174](https://github.com/omnigent-ai/omnigent/pull/8174), [@zhengwin](https://github.com/zhengwin)) - [Bug fix] Release-note breaking changes focus on incompatible user-facing behavior and required migration, rather than internal implementation changes. ([#8178](https://github.com/omnigent-ai/omnigent/pull/8178), [@serena-ruan](https://github.com/serena-ruan)) - [Test/CI] Add browser contract UI test lane ([#8179](https://github.com/omnigent-ai/omnigent/pull/8179), [@zhengwin](https://github.com/zhengwin)) - [Chore] refactor(web): migrate the live composer slash menu to useSlashCompletion ([#8182](https://github.com/omnigent-ai/omnigent/pull/8182), [@zhengwin](https://github.com/zhengwin)) - [Feature / Docs / Test/CI] Pi agents can set `executor.context_files: false` to skip automatically discovered context files while keeping their explicit instructions. ([#8184](https://github.com/omnigent-ai/omnigent/pull/8184), [@PattaraS](https://github.com/PattaraS)) - [Feature / Docs / Test/CI] repro: retain execution evidence before cleanup ([#8185](https://github.com/omnigent-ai/omnigent/pull/8185), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] A Claude Code turn that fails on an API error now shows Claude's own error message, not the turn's last reply or a bare "failed". ([#8186](https://github.com/omnigent-ai/omnigent/pull/8186), [@yaoharry](https://github.com/yaoharry)) - [UI / Chore] refactor(web): share composer mention chips between landing and live ([#8191](https://github.com/omnigent-ai/omnigent/pull/8191), [@zhengwin](https://github.com/zhengwin)) - [Docs / Chore / Test/CI] refactor(resolve): load procedures by phase and assess regression risks ([#8192](https://github.com/omnigent-ai/omnigent/pull/8192), [@PattaraS](https://github.com/PattaraS)) - [Test/CI] test: move file-line browser contracts to sealed lane ([#8193](https://github.com/omnigent-ai/omnigent/pull/8193), [@zhengwin](https://github.com/zhengwin)) - [Test/CI] test: move Sessions appearance checks to browser contracts ([#8194](https://github.com/omnigent-ai/omnigent/pull/8194), [@zhengwin](https://github.com/zhengwin)) - [UI / Feature] Onboarding: real returning-user detection, in-app CLI install on macOS, a "Show all servers" path from the MDM landing, and a clearer terminal step (no false "not an Omnigent server" warning, animated progress). ([#8195](https://github.com/omnigent-ai/omnigent/pull/8195), [@hzub](https://github.com/hzub)) - [Bug fix] Smart Routing works with `routing.router_name: task_v3` — route options now carry the gateway's canonical harness names (`codex` / `claude`) ([#8196](https://github.com/omnigent-ai/omnigent/pull/8196), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [Bug fix / Docs] fix(resolve): inspect existing fixes and recheck before publication ([#8197](https://github.com/omnigent-ai/omnigent/pull/8197), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix / Test/CI] test(e2e): unroute legacy snapshot handler before teardown ([#8198](https://github.com/omnigent-ai/omnigent/pull/8198), [@zhengwin](https://github.com/zhengwin)) - [Bug fix / Test/CI] Pi sub-agents no longer report a false launch failure or a premature completion while they are still working, and native child sessions appear in the resume picker. ([#8200](https://github.com/omnigent-ai/omnigent/pull/8200), [@dbczumar](https://github.com/dbczumar)) - [Chore] Add just electron-run for testing the packaged desktop app ([#8201](https://github.com/omnigent-ai/omnigent/pull/8201), [@hzub](https://github.com/hzub)) - Onboarding cog menu: disable legacy when forced, real theme control ([#8202](https://github.com/omnigent-ai/omnigent/pull/8202), [@hzub](https://github.com/hzub)) - [Docs / Chore / Test/CI] Keep Resolve PR descriptions and comments concise ([#8206](https://github.com/omnigent-ai/omnigent/pull/8206), [@PattaraS](https://github.com/PattaraS)) - [Docs / Test/CI] fix(resolve): repair recording-guide links in nested skills ([#8207](https://github.com/omnigent-ai/omnigent/pull/8207), [@PattaraS](https://github.com/PattaraS)) - [UI / Bug fix] Mermaid diagrams stay readable in light and dark themes and use the available space. ([#8215](https://github.com/omnigent-ai/omnigent/pull/8215), [@vasvlasov](https://github.com/vasvlasov)) - [UI / Bug fix] The goal status now shows as an icon in the composer bar (hover for details, click to open or delete it) and no longer shifts the composer when a goal completes ([#8216](https://github.com/omnigent-ai/omnigent/pull/8216), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Feature] Chat links can open in the app's built-in browser — turn it on under Settings → General → Links (Cmd/Ctrl-click still opens your default browser) ([#8219](https://github.com/omnigent-ai/omnigent/pull/8219), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix] Align submenu labels with their harness-picker section headings. ([#8220](https://github.com/omnigent-ai/omnigent/pull/8220), [@zhengwin](https://github.com/zhengwin)) - [UI] The worktree selector now says `Choose` until you select or name a worktree. ([#8221](https://github.com/omnigent-ai/omnigent/pull/8221), [@zhengwin](https://github.com/zhengwin)) - [Test/CI] test: add browser chat session contract fixture ([#8222](https://github.com/omnigent-ai/omnigent/pull/8222), [@zhengwin](https://github.com/zhengwin)) - [Test/CI] test: move composer geometry contract to browser lane ([#8223](https://github.com/omnigent-ai/omnigent/pull/8223), [@zhengwin](https://github.com/zhengwin)) - [Test/CI] test: move model catalog matrices to Vitest and browser lane ([#8224](https://github.com/omnigent-ai/omnigent/pull/8224), [@zhengwin](https://github.com/zhengwin)) - [Test/CI] test: move slash menu, tooltip and mobile enter E2E to browser lane ([#8225](https://github.com/omnigent-ai/omnigent/pull/8225), [@zhengwin](https://github.com/zhengwin)) - [Test/CI] test: optimize transcript rendering coverage ([#8226](https://github.com/omnigent-ai/omnigent/pull/8226), [@zhengwin](https://github.com/zhengwin)) - [UI / Bug fix] Pi on the Databricks AI Gateway now lists Claude, OpenAI, and Gemini models instead of only OpenAI. A GPT default configured on an inline gateway is now gateway-routed, so it launches with thinking off and a notice if a reasoning effort was set, like other gateway-routed models. The new-session composer now names Pi's default model instead of showing "Models unavailable". The session composer's configuration menu offers model and effort in one submenu, like the new-session composer. ([#8228](https://github.com/omnigent-ai/omnigent/pull/8228), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] Codex sub-agents no longer flash "failed" when they start on newer Codex versions ([#8233](https://github.com/omnigent-ai/omnigent/pull/8233), [@yaoharry](https://github.com/yaoharry)) - [Test/CI] test: harden browser chat fixture ([#8236](https://github.com/omnigent-ai/omnigent/pull/8236), [@zhengwin](https://github.com/zhengwin)) - [Bug fix] Large sub-agent transcript batches are saved with one write per run instead of one per item, so they no longer time out and get dropped on slower conversation stores. ([#8240](https://github.com/omnigent-ai/omnigent/pull/8240), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Queued first messages detect native Codex readiness promptly during startup. ([#8247](https://github.com/omnigent-ai/omnigent/pull/8247), [@Leemoonsoo](https://github.com/Leemoonsoo)) - [UI / Bug fix / Feature] The workspace panel now offers a compact file-browser experience with reliable Codex-native change badges, consistent tab controls, and smoother interactions. ([#8254](https://github.com/omnigent-ai/omnigent/pull/8254), [@ajayalfred](https://github.com/ajayalfred)) - [UI / Test/CI] Group custom agents under “Other...” in the harness picker. ([#8255](https://github.com/omnigent-ai/omnigent/pull/8255), [@zhengwin](https://github.com/zhengwin)) - [Bug fix / Test/CI] Release notes list all merged PR contributors alphabetically in “Thanks to our community.” ([#8256](https://github.com/omnigent-ai/omnigent/pull/8256), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] fix(server): treat a tunnel send that loses a race with our own close as a disconnect ([#8260](https://github.com/omnigent-ai/omnigent/pull/8260), [@yaoharry](https://github.com/yaoharry)) - [Bug fix / Test/CI] Fix repeat edits in PR autoformat workflow ([#8262](https://github.com/omnigent-ai/omnigent/pull/8262), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] fix(runner): don't report a required terminal as crashed while the runner is stopping ([#8263](https://github.com/omnigent-ai/omnigent/pull/8263), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] A native terminal that fails to start now names the kind of failure (for example a full disk) in its error ([#8266](https://github.com/omnigent-ai/omnigent/pull/8266), [@yaoharry](https://github.com/yaoharry)) - [Bug fix] Native web messages continue working when the runner's process working directory becomes unavailable. ([#8270](https://github.com/omnigent-ai/omnigent/pull/8270), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] Codex cold resumes no longer lose tool results when compaction finishes before the tool. ([#8271](https://github.com/omnigent-ai/omnigent/pull/8271), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] Sessions now launch the selected custom ACP agent and explain when it is missing from the selected host. ([#8275](https://github.com/omnigent-ai/omnigent/pull/8275), [@PattaraS](https://github.com/PattaraS)) - [UI / Feature] feat(web): add post-setup import review modal ([#8277](https://github.com/omnigent-ai/omnigent/pull/8277), [@zhengwin](https://github.com/zhengwin)) - [UI] Onboarding install step eases in with a brief loader before commands stream, and the main setup buttons now carry icons. ([#8290](https://github.com/omnigent-ai/omnigent/pull/8290), [@hzub](https://github.com/hzub)) - [UI / Feature] Admins can make new sessions public by default, either for cloud sandbox sessions only or for all sessions, from Settings > Sharing ([#8295](https://github.com/omnigent-ai/omnigent/pull/8295), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Bug fix] Codex sessions blocked on a launcher sign-in keep working: one card shows the sign-in link and code, and the session recovers once you sign in. ([#8309](https://github.com/omnigent-ai/omnigent/pull/8309), [@dbczumar](https://github.com/dbczumar)) - [UI] feat(web): group import modal assets per harness ([#8311](https://github.com/omnigent-ai/omnigent/pull/8311), [@zhengwin](https://github.com/zhengwin)) - [UI] Project reorder actions now live under a single "Move" submenu in the project folder menu ([#8313](https://github.com/omnigent-ai/omnigent/pull/8313), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] OpenCode provider failures no longer appear as Codex errors. ([#8316](https://github.com/omnigent-ai/omnigent/pull/8316), [@dhruv0811](https://github.com/dhruv0811)) - [Test/CI] test(browser): wait for workspace motion before selecting terminals ([#8319](https://github.com/omnigent-ai/omnigent/pull/8319), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] Idle native sessions are reaped even when a terminal or browser tab is left open on them; a tab now keeps a session alive only while someone is typing or interacting in it. ([#8320](https://github.com/omnigent-ai/omnigent/pull/8320), [@dbczumar](https://github.com/dbczumar)) - [Bug fix / Feature / Docs] Admins can opt into shallow or blobless sandbox repository clones while preserving default behavior and retained checkouts. ([#8322](https://github.com/omnigent-ai/omnigent/pull/8322), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] Admins listed in the admins file can now use Settings > Sharing on servers behind a login proxy (header auth), instead of the page never loading ([#8325](https://github.com/omnigent-ai/omnigent/pull/8325), [@dhruv0811](https://github.com/dhruv0811)) - build(deps): bump rubyzip ([#8327](https://github.com/omnigent-ai/omnigent/pull/8327), [@dependabot[bot]](https://github.com/apps/dependabot)) - [UI / Bug fix] Sidechats keep working after moving a session to another host or workspace, and also work for CLI sessions without a registered host. ([#8330](https://github.com/omnigent-ai/omnigent/pull/8330), [@dhruv0811](https://github.com/dhruv0811)) - [UI / Chore] The workspace browser now looks and behaves consistently everywhere, with folder changes applied only after confirmation. ([#8335](https://github.com/omnigent-ai/omnigent/pull/8335), [@ajayalfred](https://github.com/ajayalfred)) - [Feature / Docs / Test/CI] Pi agents can set `executor.system_prompt_mode: replace` to replace Pi's base system prompt with their Omnigent instructions. ([#8349](https://github.com/omnigent-ai/omnigent/pull/8349), [@PattaraS](https://github.com/PattaraS)) - [Bug fix] fix(codex-native): capture the TUI's exit status on a thread-start timeout ([#8351](https://github.com/omnigent-ai/omnigent/pull/8351), [@TomeHirata](https://github.com/TomeHirata)) - [Feature / Docs] Runner tunnel drops, the relay's grace-period decision and session-init recovery choices now emit structured debug-log attributes (connection id, close codes, connection age, decision), and Databricks App deploy versions name the commit they were built from. ([#8362](https://github.com/omnigent-ai/omnigent/pull/8362), [@dbczumar](https://github.com/dbczumar)) - [UI / Bug fix] A message Claude Code never received after a host reconnect is shown as undelivered instead of making the next message appear twice. ([#8364](https://github.com/omnigent-ai/omnigent/pull/8364), [@dbczumar](https://github.com/dbczumar)) - [Bug fix] `omnigent copilot` launches the GitHub Copilot harness (a shorthand for `omnigent run --harness copilot`), and a mistyped command no longer prints the stale-host recovery hint ([#8403](https://github.com/omnigent-ai/omnigent/pull/8403), [@omni-resolve-agent[bot]](https://github.com/apps/omni-resolve-agent)) - [UI / Bug fix] Use `/` to choose skills anywhere in a prompt while preserving surrounding text and cursor position. ([#8409](https://github.com/omnigent-ai/omnigent/pull/8409), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] Codex startup exit-detection is hardened and now emits a `codex_startup_exit_watch_unarmed` telemetry event, so a Codex TUI that dies during startup with detection disarmed is observable instead of surfacing only as a two-minute timeout. ([#8410](https://github.com/omnigent-ai/omnigent/pull/8410), [@TomeHirata](https://github.com/TomeHirata)) - [Bug fix] A brief runner connection drop mid-turn (Wi-Fi roam, VPN stall, sleep/resume) no longer fails the session when the runner reconnects within the liveness lease. ([#8413](https://github.com/omnigent-ai/omnigent/pull/8413), [@dbczumar](https://github.com/dbczumar)) - [UI] Undelivered messages now say "Message not delivered. Try sending it again." ([#8416](https://github.com/omnigent-ai/omnigent/pull/8416), [@dbczumar](https://github.com/dbczumar)) - [UI / Bug fix] Find project actions in a visible ⋯ menu on touch devices, with New session inside the menu on every device. ([#8417](https://github.com/omnigent-ai/omnigent/pull/8417), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] New Pi sessions keep accepting the first message while provider setup runs, without a false runner-disconnected error. ([#8424](https://github.com/omnigent-ai/omnigent/pull/8424), [@serena-ruan](https://github.com/serena-ruan)) - [UI / Bug fix] Keep the iPad layout full-height when floating hardware-keyboard controls appear, while keeping the composer above the on-screen keyboard. ([#8425](https://github.com/omnigent-ai/omnigent/pull/8425), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] HTTP Databricks workspace URLs now open Omnigent correctly in the desktop app after sign-in. ([#8428](https://github.com/omnigent-ai/omnigent/pull/8428), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] Sub-agent live progress streams now report a retryable routing error when they reach the wrong server replica. ([#8431](https://github.com/omnigent-ai/omnigent/pull/8431), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] Headless Pi tool calls now retain matching results and completed tool cards after reloading a conversation. ([#8432](https://github.com/omnigent-ai/omnigent/pull/8432), [@serena-ruan](https://github.com/serena-ruan)) - [Bug fix] Cursor native terminals honor the sandbox configured by the agent. ([#8439](https://github.com/omnigent-ai/omnigent/pull/8439), [@chameleon82](https://github.com/chameleon82)) - [UI / Bug fix] Desktop onboarding steps now resize and fade in smoothly instead of bouncing ([#8444](https://github.com/omnigent-ai/omnigent/pull/8444), [@hzub](https://github.com/hzub)) - [UI / Bug fix] The file browser no longer shows an extra slash before absolute paths. ([#8469](https://github.com/omnigent-ai/omnigent/pull/8469), [@dbczumar](https://github.com/dbczumar)) - [UI / Bug fix / Breaking] Only session owners can manage MCP servers or replace agent bundles; collaborators retain read-only MCP visibility. ([#8481](https://github.com/omnigent-ai/omnigent/pull/8481), [@dhruv0811](https://github.com/dhruv0811)) - [Bug fix] Polly/Debby Cursor and Antigravity brains honor configured default models instead of falling through to unsupported or unintended SDK defaults ([#8485](https://github.com/omnigent-ai/omnigent/pull/8485), [@christianclaudio](https://github.com/christianclaudio)) - [UI / Bug fix] Child-session headers show product names such as Claude Code instead of internal built-in agent names. ([#8494](https://github.com/omnigent-ai/omnigent/pull/8494), [@dbczumar](https://github.com/dbczumar)) - [UI / Bug fix] Rendered tables now expand and shrink when you use their fullscreen control. ([#8503](https://github.com/omnigent-ai/omnigent/pull/8503), [@yaoharry](https://github.com/yaoharry)) - [UI / Bug fix] Start a new session directly from a project row on desktop; touch devices keep the action in the dots menu. ([#8510](https://github.com/omnigent-ai/omnigent/pull/8510), [@serena-ruan](https://github.com/serena-ruan)) ## [v0.15.0] — 2026-09-22 - [Bug fix] Provider credentials stored with an explicitly selected Python keyring backend remain available to host-launched runners. (#2342) - [UI / Feature] Copy a link to any message; opening it scrolls to and highlights that message in the session (#4655) - [Bug fix] Fixed: a `tools:` allow-list on a sidecar `tools/mcp/*.yaml` MCP server is now enforced (previously silently ignored, exposing every tool on that server regardless of the declared allow-list) (#5688) - [Bug fix] Native Codex sessions keep a configured `max`/`ultra` reasoning effort instead of downgrading it to `xhigh` (#5733) - [Bug fix] Sub-agents no longer report a false "finished (completed)" notification to their parent while still running; the real completion is delivered instead. (#5834) - [Bug fix] A session's `harness_override` is now honored on the `initial_items` kickoff turn, including when the runner binds after creation. (#5845) - [Bug fix / Test/CI] Cursor model names resolve before a turn starts, invalid selections get clearer errors, and Claude SDK logs its automatic Databricks model choice. (#5880) - [UI / Bug fix] Pending approval questions keep the Stop button available so you can cancel without answering. (#5901) - [Bug fix] `claude-sdk` agents now work with Databricks OAuth U2M profiles (`databricks auth login`) — no static token in `~/.databrickscfg` required. For an explicitly configured profile, the gateway host is now read from that profile's own section in `~/.databrickscfg`; `DATABRICKS_HOST` / `[DEFAULT]` no longer override an explicitly selected profile's gateway host (matching the codex/pi gateway paths). (#5959) - [UI / Feature / Docs] Claude Code and Codex sessions accept archives, Office documents and SQLite files as attachments. The agent opens a local copy directly, and nothing is added to the working checkout. (#6339) - [Bug fix / Test/CI] OpenCode servers are cleaned up when startup fails or is cancelled, or the runner stops. (#6346) - [Bug fix] `omnigent server --agent` now fails at startup with a clear error when a guardrail function policy can't be imported, instead of silently denying every turn on that agent. Note: when multiple `--agent` directories are configured, one agent's unresolvable policy function now aborts startup for all of them (fail-loud), instead of the broken agent registering silently alongside the good ones. (#6357) - [UI / Bug fix] Sub-agent routing cards now show the task name, making similar routing decisions easier to tell apart. (#6363) - [Bug fix / Test/CI] Antigravity sessions started by Omnigent now preserve your global hooks and their relative script paths. (#6373) - [Bug fix] `omnigent host` now registers under your user identity instead of a co-resident Databricks service principal when both match the same workspace (#6410) - [UI / Bug fix / Test/CI] Editing a queued message with ArrowUp no longer sends the original copy as well. (#6598) - [Bug fix] Managed sessions now create a fresh sandbox when their previous sandbox was deleted. (#6781) - [Bug fix] Repository-backed agent-sandbox sessions can wake after losing ephemeral HOME while preserving existing persistent workspaces. (#6788) - [UI / Chore] Show merged pull requests with a consistent purple status pill. (#6809) - [UI / Docs / Chore / Test/CI] You can use `omni update` without a deprecation warning; it remains an alias of `omni upgrade`. (#6986) - [Bug fix] Codex sessions launched through configured commands no longer fail at the direct-launch timeout while setup is still progressing. (#6990) - [Feature] `agent_sandbox` managed sandboxes now reclaim themselves promptly when idle, tuned by a single `sandbox.keep_warm_s` knob; the fast keepalive cadence is scoped to agent_sandbox so other providers are unchanged, and keepalive/lifecycle transitions log at INFO. (#6994) - [Docs / Chore / Test/CI] N/A — diagnostic logging and documentation only. (#6997) - [Bug fix] `omnigent run` preserves the agent's model when the harness override matches its configured harness, including when the override comes from the global default. (#7135) - [Bug fix / Test/CI] Agent terminals survive temporary tmux check failures, and Chat receives replies from Antigravity 1.2.4. (#7200) - [Bug fix] Claude sessions retain selected permission modes across relaunches while continuing to follow settings defaults until a mode is selected. (#7238) - [UI / Feature / Docs / Breaking] `omnigent devin` now runs Devin as a native harness — the real Devin TUI mirrored into Chat with policy enforcement, approval cards, model + effort and permission modes you can change mid-session, Omnigent's MCP tools, and each `run_subagent` delegate as its own child session (replacing Devin's ACP harness, whose id keeps resolving) (#7254) - [UI / Bug fix / Breaking] Paging a session list while a session is deleted now fails loudly with `stale_cursor` and the UI reloads the list from the top, instead of silently reporting a partial list as complete. (#7292) - [Bug fix] Native Codex operations fail promptly when the app-server disconnects instead of remaining stuck awaiting a response. (#7355) - [Bug fix] Native sub-agents now check inherited session cost budgets at their own request and tool-call boundaries. (#7369) - [Bug fix / Test/CI] Approving worktree changes in the Claude terminal clears the chat approval card and keeps output flowing, including after reattaching to a session. (#7409) - [Bug fix] Native sessions reject permission callbacks from a different harness, and Kimi/Devin approvals offer only supported options. (#7433) - [UI / Feature] Added `OMNIGENT_WEB_BASE_PATH` (and `omnigent server --base-path`) to serve the web UI and API behind a reverse-proxy subpath, e.g. code-server's port proxy (#7434) - [UI / Bug fix / Feature / Chore / Breaking] Browse host skills with `/` before creating a session, with loading feedback and selected-agent filtering. API clients must use `GET /v1/skills` instead of snapshot `skills`/`skills_status` or `session.skills` events; updated hosts are required. (#7435) - [Bug fix / Docs] Terminal failure logs now retain the failed probe history and socket state captured before cleanup. (#7440) - [Bug fix] Claude Code and Codex model menus follow their configured CLI choices and defaults, and managed Claude picker models such as GLM can be selected successfully. (#7459) - [Bug fix] Session output reconnects after temporary runner HTTP errors instead of silently ending the relay. (#7463) - [UI / Bug fix / Feature / Test/CI] Arrange projects in your preferred order and switch to alphabetical sorting without losing your manual arrangement. (#7465) - [UI / Bug fix] Message text keeps its existing gap from the turn rail when resizing the right panel. (#7466) - [UI / Bug fix] The model picker keyboard shortcut is now `Ctrl+Shift+M` on every platform (was `⌘⇧M` on macOS, which collided with Chrome's profile switcher). (#7480) - [Bug fix] Isolated host daemon launches now preserve their requested identity and clean up failed startup processes. (#7484) - [UI / Bug fix] User messages keep angle-bracket placeholders and pasted HTML visible. (#7487) - [Bug fix] Escape now reliably closes nested harness configuration menus. (#7488) - [Bug fix / Feature] Conversation links preserve workspace context when the server URL includes query parameters. (#7491) - [UI] Preview attached screenshots and files in the composer before sending, and click an image thumbnail to view it full-screen. (#7492) - [Bug fix] Native sessions start faster by overlapping durable recovery with terminal creation and avoiding redundant protocol-v2 reads. (#7496) - [Bug fix] Native Codex sessions start faster by reusing the persisted Databricks AI Gateway model catalog. (#7497) - [UI / Feature] Databricks workspace login uses system authentication and isolated browser storage for each workspace context. (#7499) - [Chore / Test/CI] N/A — repository automation only. (#7500) - [UI / Bug fix] Markdown file Preview now renders `$$...$$` and `\(...\)` TeX math with KaTeX, matching the chat surface (#7504) - [Feature / Test/CI] Sandbox credential proxies can reload expiring credentials during long-running sessions. (#7505) - [Bug fix] Fix `/side` side chats failing to open on Codex CLI 0.154.0 and newer. (#7506) - [Bug fix] The `codex` harness detects a closed app-server connection promptly and retries eligible invocations only after cleanup, instead of waiting for the idle watchdog. (#7508) - [Bug fix / Docs / Test/CI] Linux runners can access desktop keyring credentials and report keyring access failures clearly, while trusted desktop workflows and sandboxed runtime directories follow their declared policy. (#7513) - [UI / Bug fix] Voice dictation now explains why a take failed (microphone denied, not available, or busy) instead of the mic silently flashing back to idle, and keeps any speech already captured when a take fails. (#7514) - [UI / Bug fix] Session import now brings in only the conversations you opened in each harness (#7515) - [Bug fix] Forked sessions now reliably start in the selected Git worktree when another launch races with worktree creation. (#7517) - [Bug fix / Test/CI] Custom conversation stores can retain request-scoped resources while transcript writes finish. (#7518) - [UI / Bug fix] Reconnect this machine's offline host directly from a session, without an extra confirmation dialog, and refresh its status immediately. (#7521) - [Bug fix / Test/CI] Native terminal startup errors now point to diagnostic records for the correct session and error ID. (#7523) - [Chore] N/A — diagnostic metadata only. (#7524) - [Bug fix] Closing a web terminal tab no longer marks the session as having errored. (#7527) - [Bug fix] Quitting an agent's terminal no longer records the session as having errored. (#7528) - [Chore] N/A — diagnostic maintenance. (#7530) - [UI / Bug fix] Sub-agent composer banners retain rounded corners without pink bleeding through the workspace bar. (#7532) - [Bug fix / Feature] Models are notified when an uploaded image was downscaled and can identify its original dimensions without changing the user's message. (#7534) - [UI / Bug fix] Show Codex model names from the connected host when the session reports an equivalent Gateway model ID. (#7540) - [Test/CI] N/A — CI and test-only, no runtime behavior change. (#7543) - [Bug fix] Sandboxed SDK agents with credential proxies can start without crashing while loading their configuration. (#7547) - [Test/CI] N/A — test-only change. (#7548) - [Test/CI] N/A — CI review-prompt guidance only. (#7551) - [Test/CI] N/A — CI-only change. (#7552) - [Test/CI] N/A — CI dependency update. (#7553) - [Bug fix] Concurrent first-time agent loads no longer read partially extracted configuration files. (#7555) - [Bug fix] Codex sessions now list skills from enabled plugins with their plugin namespaces. (#7558) - [Test/CI] N/A — internal CI instrumentation only. (#7561) - [Bug fix / Docs] Agent bundles load correctly with a separately mounted cache and preserve the previous cached bundle if replacement fails. (#7562) - [UI / Bug fix] Solarized menus now keep selected and hovered rows clearly visible. (#7564) - [Bug fix / Test/CI] N/A — internal CI fix. (#7568) - [Test/CI] N/A — test infrastructure only. (#7575) - [Bug fix] Referencing a deleted conversation now returns 404 instead of a server error. (#7576) - [Chore] N/A — diagnostic maintenance. (#7577) - [Chore] Antigravity sessions avoid repeated process scans when authenticating local RPC requests. (#7578) - [Bug fix / Test/CI] Headless agents recover saved final responses when a completion event is missed after an asynchronous worker finishes. (#7582) - [Test/CI] N/A — internal Test / CI work. (#7583) - [UI / Bug fix] File edits reconnect sleeping runners and save without requiring a chat message. (#7585) - [Test/CI] N/A — test-only coverage. (#7587) - [UI / Feature] Managed iOS installs can enable a Databricks flag to show Jamf compliance guidance when a server hostname cannot be resolved. (#7592) - [Bug fix] Codex sessions avoid one redundant app-server initialization during startup. (#7598) - [Bug fix] Hosts start sessions faster by warming the runner during capability checks while retaining normal readiness-before-registration behavior. (#7601) - [UI / Bug fix] New chats no longer inherit model or effort changes made inside another session. (#7607) - [Bug fix / Chore] Host-launched sessions no longer wait for machine-global stale-process, terminal, or native-bridge cleanup before becoming interactive. (#7608) - [Test/CI / Breaking] Transcript appends no longer invoke custom conversation stores' background lease hook. (#7614) - [Bug fix] `sys_call_async` (and direct runner tool dispatch) now refuses tools the session does not grant — judged on the harness the session actually runs — closing a prompt-injection path to ungranted tools such as `sys_os_shell`. (#7617) - [Bug fix / Breaking] Running a shell command through a shared session's environment shell endpoint now requires the session owner; editors receive 403. (#7619) - [UI / Bug fix / Docs / Chore / Test/CI] The session sidebar makes fewer background requests as you browse older sessions; embedded hosts can independently configure Shared usage for the sidebar, Inbox, and pins. (#7625) - [UI / Bug fix / Feature / Docs] Automations can run each execution in a fresh sandbox using the server's sandbox lifecycle settings. (#7626) - [UI / Bug fix] Pages automatically refresh when a deployment removes a required lazy-loaded module, with a manual refresh fallback if recovery fails. (#7627) - [UI / Bug fix / Feature / Test/CI] File links jump to the cited line and center it, including inside collapsed diffs, while preserving the selected diff view. (#7631) - [UI / Bug fix] File citations in chat and Codex terminal output now open directly at the cited line. (#7638) - [Test/CI] N/A — internal Test / CI work. (#7639) - [Bug fix / Docs / Test/CI / Breaking] Deleting an account revokes its credentials and unattended authority across replicas, including after username reuse; upgrading accounts mode requires a coordinated restart and browser re-login. (#7642) - [UI / Bug fix] Cancelling workspace sign-in returns to setup without an error banner. (#7643) - [UI / Bug fix] The new-session page remembers Codex's bypass permission selection when switching between harnesses. (#7647) - [Bug fix] Unavailable Pi and Devin model catalogs now produce warnings instead of errors in host logs. (#7652) - [Chore] N/A — diagnostic maintenance. (#7656) - [Bug fix / Test/CI] Runners exit promptly when a pending MCP bridge startup notification is cancelled. (#7659) - [Bug fix] Previously active child sessions resume in their existing conversations when their parent recovers from a runner interruption. (#7662) - [Test/CI] Polly AI Review now posts a comment explaining the failure and how to retry (`/review`) when the review model is at capacity. (#7664) - [Bug fix] Uploading an empty or malformed agent spec now reports what is wrong with the file instead of failing with an internal error. (#7678) - [Bug fix] A harness connection drop now names the transport error that caused it instead of showing a generic message. (#7684) - [Bug fix] Harness rejections and setup failures reach live subscribers as valid failure events. (#7686) - [Bug fix / Test/CI] Inaccessible Git metadata no longer prevents ordinary file-change tracking from initializing. (#7689) - [Test/CI] N/A — CI compatibility only. (#7694) - [Bug fix] Host startup performs independent authentication and capability checks concurrently, reducing launch latency without weakening registration validation. (#7696) - [UI / Bug fix] Mermaid diagrams that fail to parse now show the failing line and a fix hint instead of the raw parser error (#7705) - [UI / Feature] Workspace sessions recover without losing the current page, and local sign-out clears the selected workspace without immediately reconnecting. (#7707) - [Bug fix] A Claude Code pane that exits while a message is being delivered now fails the turn with the terminal's diagnostics instead of a generic "Harness stream connection error". (#7709) - [Bug fix] Host cleanup keeps removing orphaned processes after runner exits while preserving crash reports. (#7710) - [Feature / Docs / Test/CI] Agent-sandbox deployments can opt into native warm pools, including explicitly shared pools across agents and harnesses, while retaining owner-bound credential brokering. (#7712) - [UI / Bug fix / Feature] Pi can show configured gateway model shortlists while preserving existing default-only picker preferences. (#7713) - [UI / Feature] Sequence diagrams that fail only because of punctuation semicolons now render, with a note that the source needs `#59;` (#7714) - [UI / Bug fix / Feature / Docs] Custom ACP agents can show configured model shortlists and switch between them while preserving the live session. (#7716) - [UI / Bug fix] See running monitors and background shells beside the composer, with compact details and a chevron to expand long commands. (#7719) - [Bug fix] A closed Claude Code terminal now says it has exited and tells you to relaunch it, instead of reporting a delivery timeout. (#7721) - [UI / Bug fix] The Web model picker can switch back to a default-marked model while preserving supported reset behavior. (#7724) - [UI / Bug fix] Composer controls, recent workspaces, and session recovery states now stay consistent across desktop and narrow layouts. (#7726) - [Feature] Use `--no-open` or `OMNIGENT_HOST_NO_OPEN=1` to suppress the browser tab opened by `omni host` and `omni start`. (#7730) - [Bug fix] Starting Omnigent from a source checkout keeps the background host on the installed runtime while preserving the agent's working directory. (#7733) - [Bug fix / Feature / Docs] Bug triage explains and closes confidently code-only findings while keeping observed failures and plausible or uncertain user workflows open. (#7736) - [Bug fix] Automatically started local servers use the launching host's selected Omnigent installation while preserving the working directory. (#7737) - [Feature] New opt-in `OMNIGENT_SSE_LOG_TO_FILE` env var dumps per-session SSE-event summaries to `~/.omnigent/logs/server/-sse.jsonl` for offline debugging (#7738) - [UI / Bug fix] Model labels in new and existing sessions consistently hide internal catalog prefixes, including Pi labels and cached labels during loading. (#7739) - [Test/CI] N/A — test-only change. (#7740) - [UI / Bug fix] Opening a Codex side chat on a host too old to support it now shows a clear "update your host" message instead of hanging. (#7741) - [Bug fix] Opening a session, renaming one, and loading the usage page each read the session's stored row fewer times. (#7742) - [Test/CI] N/A — test-only change. (#7743) - [Bug fix] A sub-agent's transcript is no longer dropped when a large batch upload times out (#7747) - [Bug fix] A turn that ended abnormally no longer reports a session error when its already-exited harness does not answer the cleanup interrupt. (#7749) - [Bug fix] Only the creator of a session-scoped agent (or a workspace admin) can now replace its bundle or edit its MCP servers — users a session is shared with can no longer modify agent code. Agents created before this change are updatable by an admin, or by re-uploading the bundle. (#7750) - [Bug fix] A Claude session is no longer reported as failed when its transcript hook simply starts slowly (#7752) - [Bug fix] Referencing an agent image with no config.yaml returns a 404 instead of an internal server error (#7753) - [Bug fix] A session whose working directory was deleted can still start its terminal (#7755) - [Bug fix] A harness whose bridge cannot be imported is reported as unavailable instead of as an error (#7756) - [UI / Bug fix] The desktop app now signs in to Databricks-hosted servers only through your system browser, with a cancellable Connect button, and returns you to the server list instead of showing an in-app login page when a session can't be renewed. (#7757) - [Bug fix / Docs / Test/CI] Polly flags clearly unrelated PR changes and asks for clarification when scope is unclear; Resolve addresses these findings before approving an existing fix PR. (#7761) - [Test/CI] N/A — CI-only change. (#7782) - [UI / Feature / Docs / Test/CI] Managed Kubernetes and Agent Sandbox sessions can use different gateways per harness and select from curated models before and during a session, with optional live gateway discovery. (#7783) - [Bug fix] codex-native sessions on a slow or heavily loaded machine no longer fail when codex takes more than 10 seconds to start (#7792) - [UI / Bug fix] Switching to a non-Git working directory clears and disables worktree creation so new sessions can start normally. (#7797) - [Bug fix / Test/CI] A native-harness session's first message is no longer discarded when the runner's connection drops while its terminal is starting; the server now waits for the runner to reconnect and retries (#7799) - [UI / Test/CI] No user-facing change — Debug builds gain a menu for exercising workspace session recovery. (#7803) - [UI / Bug fix] The send button now shows the theme's primary color when it is ready to send. (#7808) - [UI / Bug fix / Test/CI] Queued messages now show attachment filenames, even when they contain no text. (#7810) - [Bug fix] Typed messages in claude-native chats no longer show raw `` wrapper tags (#7811) - [UI / Bug fix] `Ctrl+Shift+M` now opens the current harness's model list with the selected model ready for keyboard navigation. (#7816) - [UI / Bug fix / Feature] Send your draft and all queued follow-ups with Cmd/Ctrl+Enter, and keep failed messages available to retry. (#7819) - [UI / Bug fix] Harness pickers now stay open when choosing an agent inside a dialog. (#7823) - [UI / Bug fix / Test/CI] Type Design mode instructions in the floating editor inside modal forms without overwriting the form's fields. (#7824) - [Bug fix] Opening a session whose runner is slow to respond no longer stalls on every load; the server waits at most 5 seconds for the runner's status and, after a slow answer, stops asking for 30 seconds, doubling up to 5 minutes while the runner stays slow (#7826) - [Bug fix / Test/CI] Local hosts reliably respond to Ctrl+C and the stop-server prompt, and finish model-discovery cleanup before exiting. (#7830) - [Bug fix / Test/CI] Codex remote sessions resume with structured permission settings, aliases, compact options, config profiles, and additional writable directories. (#7836) - [UI / Bug fix / Test/CI] Sidebar sessions now wait for viewer identity and return to My sessions when Shared is disabled. (#7864) - [UI / Bug fix] New Chat preloads available model catalogs and stops repeatedly querying unused or unavailable harnesses. (#7878) - [UI / Bug fix] Messages with multiple screenshots now show compact spacing between images. (#7879) - [UI / Bug fix] Opening a file's Diff view no longer makes `diff=1` flicker in the address bar. (#7880) - [UI / Bug fix / Feature / Test/CI] The Composer now falls back to a ready coding harness, explains unavailable choices, and presents permissions and configuration errors consistently across New Session and active chats. (#7882) - [UI / Bug fix / Feature / Chore] The composer now preserves workspace context, clearly identifies linked worktrees, and explains unavailable harnesses before you try to select them. (#7886) - [UI / Bug fix] Git folder icons and worktree selection work again with older hosts and repositories without a recognized GitHub remote. (#7889) - [Docs] Repro-agent reports now request clear, numbered manual reproduction steps with prerequisites and expected versus observed results. (#7891) - [UI / Bug fix / Feature / Test/CI] Queued follow-ups and active sub-agent work are clearer and easier to manage from the Composer. (#7897) - [Bug fix / Test/CI] Concurrent reads of a cached agent bundle no longer see a truncated artifact while it is being rewritten (#7898) - [UI / Bug fix] New conversations now transition from their temporary URL without briefly showing a loading screen. (#7903) - [Bug fix / Test/CI] Native Claude sessions respect `CLAUDE_CONFIG_DIR` when preparing onboarding and workspace trust. (#7912) - [UI / Feature / Test/CI] Active task indicators now sit together to the left of the Composer progress ring. (#7913) - [Test/CI] N/A — test-only change. (#7916) - [UI / Chore] The Git repository picker now matches the compact two-pane prototype while preserving existing worktree selection behavior. (#7917) - [Test/CI] N/A — test-only change. (#7920) - [Bug fix] The runner no longer downloads a session's transcript page just to read its launch settings, so codex terminal launches and session inits stop paying for large transcripts (#7926) - [Bug fix] Native Codex sessions keep running when the app-server emits oversized stderr diagnostics. (#7931) - [UI / Bug fix / Feature] Terminal copying permission is easier to notice, governs both explicit selection copying and terminal-program requests, explains the clipboard-replacement side effect, and can remember your choice across future sessions and terminals. (#7934) - [UI / Feature] PR selectors show titles so you can tell linked pull requests apart. (#7935) - [UI / Bug fix / Docs / Test/CI] Opening a chat and launching or resuming native sessions no longer wait for display-usage aggregation; chat costs load independently. (#7937) - [Bug fix / Feature / Docs] Opt into native harness diagnostics with one environment flag: Codex startup stderr and continuous Claude debug logs. (#7939) - [Bug fix] Codex sub-agents can now run on a model whose name carries a tier without a minor version, instead of silently falling back to the session's default model. (#7940) - [UI / Bug fix] Generic turn-error banners name the agent that reported the failure, such as Claude Code, Codex, or Polly. (#7944) - [Bug fix] Web-started Claude Code sessions no longer hang on Claude's "New MCP server found in this project" prompt; the workspace's `.mcp.json` servers are enabled automatically. (#7946) - [Bug fix / Docs / Test/CI] Filter sessions by visibility in the Python SDK; CLI resume and continue now request only sessions you own. (#7949) - [UI / Bug fix] Queued messages now align with the composer workspace bar, share its mock-matched light-theme surface, and form one continuous tray with a faint inset divider and no nested arc. (#7950) - [Chore / Test/CI] Session startup logs correlate create requests with runner lifecycle and Claude/Codex input readiness. (#7952) - [Bug fix / Chore] CLI `/switch` lists sessions you own when binding a runner; attach mode continues to include shared sessions. (#7954) - [Bug fix] Hosts no longer log repeated missing-Devin tracebacks when clients request its model catalog without Devin installed. (#7960) - [UI / Bug fix] New Chat loads models only for the selected available harness, avoiding unnecessary catalog requests for unused tools. (#7966) - [Bug fix / Test/CI] Claude startup dialogs now report how to unblock message delivery while keeping the terminal open. (#7972) - [UI] Command palette (⌘K) corners now match the app's other menus. (#7978) - [UI / Feature / Test/CI] Sandbox sessions now show repository and MCP context controls above the composer. (#7980) - [Bug fix] Follow-up messages wait for unanswered Claude questions and permission prompts instead of silently cancelling them. (#7982) - [UI / Bug fix] You can highlight and copy Advanced settings in the fork dialog opened from the sidebar. (#7983) - [UI / Bug fix] On mobile, shared-session viewer avatars now appear beside the session name inside the three-dot menu. (#7987) - [UI / Bug fix] The New Session worktree selector keeps branch controls visible in short popovers and cleanly separates existing-worktree selection from new-worktree creation. (#7988) - [Chore] Restore the previous Web Locks stream acquisition behavior. (#7989) - [Feature / Docs] `OMNIGENT_HARNESS_STDERR_ENABLED=1` captures native Codex app-server diagnostics throughout startup and runtime. (#7998) - [Bug fix / Test/CI] Claude sessions automatically continue past the informational auto-mode classifier-billing notice. (#8000) - [Bug fix / Test/CI] N/A — test-only change. (#8009) - [Bug fix / Test/CI] Reproduction environments preserve delayed responses after clients finish sending their requests. (#8012) - [Bug fix] Claude models explicitly configured through a custom provider remain available in the model picker. (#8021) ## [v0.14.0] — 2026-09-15 - [Bug fix] Host-bound sessions now report deleted workspaces immediately and safely, with useful host diagnostics instead of an empty-log dead end. (#3577) - [Bug fix / Test/CI] Polly now enforces its per-turn worker fan-out limit across deployed tool calls. (#4001) - [UI / Bug fix] Claude Code sub-agents are named by their task instead of an opaque runtime ID. (#4061) - [Bug fix] An expired Claude Code login now tells you to run `omni setup` instead of `/login`, which the web chat cannot run. (#4275) - [UI / Feature] Choose Files, Changes, GitHub, or Agents as the default Workspace tab and show it first in the tab bar. Changed defaults also apply to existing chats when reopened or refreshed. (#4844) - [UI / Bug fix] Workspace file browsing no longer repeatedly retries when a session's runner is unavailable. (#5388) - [Docs] Create the Slack app from a manifest instead of configuring scopes, events, and Socket Mode by hand. (#5806) - [Bug fix] Session list, project list, and per-project session list avoid materializing and rebinding every accessible session id. Large-workspace UI paths become substantially faster while the workload-sensitive `created_at` index is deferred for separate evaluation. (#5824) - [Bug fix] `omnigent config list` no longer crashes with UnicodeEncodeError on Windows shells using a legacy (non-UTF-8) codepage (#5839) - [Bug fix] Pi native sessions: **Send now** on a queued message now steers it into the active turn instead of leaving it queued in the Pi CLI until the turn ends (#5896) - [Bug fix] Approving a codex gate while its poll was silently severed no longer loses the answer — the harness's next poll receives it instead of re-asking. (#6024) - [Bug fix] Session snapshots and usage reporting avoid redundant conversation reads. (#6037) - [UI / Feature] claude-sdk agents now show a context-window usage ring and support `/compact` (dispatched to the live SDK client for native compaction), including on a Claude Pro/Max subscription login (#6119) - [Bug fix] Pi-native tool calls no longer treat a 200 HTML sign-in page as JSON (#6309) - [UI / Feature / Test/CI] Redesigned the new-session composer so workspace, model, effort, permissions, and folder browsing are easier to configure in one place. (#6345) - [Feature / Docs / Test/CI] Omnigent can now use CockroachDB as a supported database backend. (#6360) - [UI / Feature] Users can connect a personal Databricks workspace; a managed sandbox can then mint a per-user OAuth token on demand (server-refreshed) to reach Databricks, instead of relying on a shared or static token. (#6382) - [Bug fix] Claude-native agents using Databricks can recover from safeguard refusals without failing on the gateway's model ID. (#6385) - [Bug fix] Steering messages sent to a busy Kimi session now join the running turn instead of waiting for a new turn. (#6439) - [UI / Bug fix] Sessions no longer pop back into the sidebar right after you archive them (#6481) - [UI / Bug fix] Chat hyperlinks now work inside popup-blocked panes while preserving normal new-tab behavior and privacy protections. (#6510) - [Bug fix / Test/CI] First web-chat messages tolerate slow Claude Code startup, and cancelled deliveries stop before the turn ends. (#6584) - [Bug fix] Native Plans remain visible after a Server restart without a database migration. (#6629) - [Bug fix] Pending policy approvals and external MCP elicitations remain answerable after an Omnigent server restart, without replaying external tool work. (#6696) - [Bug fix] An empty model picker now shows the host's reason (e.g. a failed codex model probe) instead of failing the request (#6726) - [Bug fix] A claude-native message is no longer dropped when Claude Code labels its input box with the session title (#6727) - [UI / Bug fix] Android now keeps server selection out of the chat header and available from the sidebar, with a native fallback for older servers. (#6763) - [Bug fix] Sessions started with skills now receive generated background titles when storage normalizes their initial names. (#6783) - [Bug fix / Docs] Claude Code sessions keep the web transcript current while large subagent histories sync in bounded event arrays, with automatic fallback for older servers. (#6792) - [UI] The Working folder file search now matches directories and reveals a folder in the tree when you click it (#6801) - [Bug fix] Stop logging a misleading "run `omnigent login`" warning on every host reconnect to a local server that has no token-refresh endpoint. (#6810) - [Bug fix] Databricks-hosted servers now complete sign-in inside the iOS app. (#6813) - [UI / Bug fix] Mobile: the Chat/Terminal view switch now lives in the header "…" menu, and the sidebar server picker no longer overflows the screen with long hostnames. (#6817) - [UI / Bug fix] Fixed the image viewer close button being hidden behind the status bar on mobile (#6819) - [UI / Bug fix] New project sessions appear in their project immediately while they are being created. (#6820) - [Chore / Test/CI] N/A — no user-facing behavior change. (#6824) - [UI / Bug fix] Embedded Canvas cards now remain responsive while dragging. (#6825) - [Feature] Large imported Claude and Codex sessions now start from their last compaction summary instead of replaying pre-compaction history. (#6845) - [Bug fix] One unreadable local session no longer stops the rest of a batch from importing. (#6847) - [Bug fix] `omni host stop --force` now stops the host immediately instead of waiting for remote sessions to drain. (#6849) - [Bug fix] Concurrent Claude sub-agents no longer appear to complete successfully when their output could not be delivered. (#6850) - [Bug fix] Interactive shell choices now match the shells installed on the selected host, even when the API server runs on another machine. (#6851) - [Bug fix] Managed workspace URLs now route consistently across Omnigent commands. (#6853) - [UI / Bug fix] Native Codex Goal markers return after the runner reconnects. (#6854) - [Bug fix] Native Codex runner startup no longer blocks on process-registry inspection or nested listener logging setup. (#6855) - [Bug fix] `omni host stop` now drains active sessions concurrently with visible progress instead of serially stopping all historical sessions. (#6858) - [Bug fix] Re-importing a coding-agent session that already exists (a prior import or a session run natively) no longer creates a duplicate. (#6859) - [Bug fix] Codex sessions created, forked, or resumed after a runner restart at a picked reasoning effort (including Sol's `ultra`/`max`) now run at that effort instead of Codex's default. (#6860) - [Bug fix] Claude child-agent history forwarding is more reliable when requests fail, events are very large, or a worker stalls. (#6864) - [UI / Bug fix] Answers to questions asked while an agent is working now stay visible instead of starting inside the collapsed work summary. (#6865) - [Feature] Chats imported with `omnigent import` now bind to the host you imported them from, so resume lands on that machine. (#6867) - [Bug fix] Claude-native transcript observer failures now appear in session-scoped logs. (#6868) - [UI / Bug fix] Escape in the chat message input now interrupts a working agent even when the local client is not streaming. (#6871) - [UI / Bug fix] Reply quotes clear when switching sessions instead of carrying into another conversation. (#6872) - [Bug fix] Codex sessions whose copied config indents its `model_reasoning_effort` line no longer get a duplicate key when the picked effort is pinned at launch. (#6875) - [Bug fix / Test/CI] Cursor sub-agents now return their final response after using shell or file tools instead of sometimes producing empty output. (#6878) - [UI / Bug fix] Chat no longer stays on “Working…” after the agent has finished. (#6879) - [Feature] Added `sandbox.kubernetes.tolerations` to the kubernetes sandbox provider, so operators can dedicate a tainted node pool to sandbox Pods. (#6881) - [Bug fix] Token counts now show in the UI for ACP-based harness sessions (jcode, Devin, Grok, and any `acp:` agent), attributed to the model the agent reports. (#6882) - [Bug fix] Omnigent now honors Claude Code's managed model picker instead of showing unsupported model aliases. (#6896) - [UI / Bug fix] Native predictive text no longer lingers over the composer after sending. (#6902) - [Bug fix] Codex sessions retain their local transcripts across runner and host restarts, with inactive bridge directories cleaned up after 7 days. (#6904) - [UI / Feature] Choose Solarized for a lower-glare light or dark color theme. (#6906) - [Feature] Native coding harnesses in a managed sandbox now get their Databricks AI Gateway configuration (base URL, headers, served model) from ucode, while omnigent launches the harness, so a connected workspace works without omnigent re-implementing per-harness gateway config. (#6916) - [Bug fix] Agent instruction-file discovery no longer follows symlinks outside the agent bundle. (#6922) - [Bug fix] Forked conversations retain the original message timestamps and "Worked for" durations for copied history. (#6924) - [UI / Bug fix / Test/CI] Approve a Claude tool permission request and switch the session to Auto mode directly from chat or Inbox. (#6926) - [UI / Bug fix] Long URLs in the CLI remain fully clickable when they wrap across multiple terminal rows. (#6927) - [UI] Clone dialog's Model / Effort / Permission pickers now use the same compact font as the Agent field (#6929) - [UI / Bug fix] `/btw` side-chat questions asked from the managed web view now show the answer in a dismissable overlay instead of hanging, and never pollute the main transcript (#6931) - [UI / Bug fix / Feature] Track and switch between multiple pull requests across repositories in a session, with automatic capture and manual link/unlink controls. (#6935) - [UI / Bug fix] New sessions now display their conversation header and Workspace shell while waiting for the server session ID. (#6938) - [Bug fix / Test/CI] Sessions now track PR reads and writes across compound GitHub CLI commands while avoiding incidental links in descriptions and diffs. (#6948) - [Bug fix / Test/CI] A server restart no longer drops the Working indicator or marks a session idle while its runner is still mid-turn. (#6957) - [Bug fix] Fix intermittent Codex web-terminal hangs caused by a `dumb` TERM leaking to the embedded terminal. (#6958) - [UI / Bug fix] Approval cards now show the actual verdict when a prompt is answered on another surface, and say "Prompt expired — send a message to continue" when the agent stopped waiting before anyone answered, instead of the ambiguous "Resolved elsewhere" pill. (#6960) - [Bug fix] Native Claude and Codex approval prompts and policy ASK gates left unattended stay answerable in the web UI instead of silently reverting to the terminal after a few minutes, on direct and Databricks-hosted servers alike. (#6964) - [UI / Feature] Archiving a session now shows a brief Undo to bring it (and any others archived in quick succession) back. (#6967) - [Bug fix] Omnigent no longer starts duplicate host daemons when the same server URL differs only by casing or an explicit default port. (#6977) - [Test/CI] N/A — test-only changes, no user-facing behavior change. (#6978) - [UI / Bug fix] Codex Web sessions keep authoritative completed messages synchronized during relay slowness: preview animation may be shed under backpressure, while completed items retry idempotently, recover after interrupted forwarding, and cannot be followed by stale previews. (#6988) - [UI / Feature] Start a sandbox with multiple GitHub repositories, cloned in parallel (#6995) - [Feature] Route the built-in `jcode` ACP harness through a linked Databricks workspace's model-serving gateway on managed-connect sandboxes. (#6999) - [Bug fix] Managed sandbox cleanup now avoids unbounded database scans and uses 64-bit deletion timestamps. (#7000) - [UI / Bug fix] A finished Claude answer no longer collapses into the "Worked for" fold when a background task wakes the turn; the wake shows as a "Background task completed" system row. (#7002) - [Feature] Native resume hints can now use a distribution-provided launcher command prefix. (#7005) - [UI / Bug fix / Test/CI] Choose models beside the harness list on desktop, and type with the same text size as chat messages. (#7030) - [UI / Bug fix] Hovering the composer's model/effort pill shows one merged configuration tooltip with bold row keys — in sessions and in the new-session composer. (#7045) - [Bug fix] Codex cold resumes now rebuild from the server transcript and use a valid local transcript only during temporary server outages. (#7055) - [Bug fix] Reading or commenting on a PR no longer links it to the session; mixed Claude read/create calls still track the created PR. (#7057) - [UI / Feature / Test/CI] Inspect running background tasks from a compact badge beside the composer's workspace controls. (#7061) - [Bug fix] Resumed native Codex sessions clear stale MCP startup indicators like new sessions, without delaying `Working...`. (#7073) - [Bug fix] Databricks-backed Codex sessions reuse fresh model selections across sessions with the same provider configuration, without mixing different providers' catalogs. (#7086) - [Bug fix] A sub-agent finishing under a parent that is itself a sub-agent no longer makes the forwarder retry its status every 30 seconds indefinitely. (#7088) - [UI / Bug fix] The message composer now grows with the conversation column on wide screens. (#7089) - [UI / Feature] Large image uploads (screenshots, retina captures) up to 50 MB are now accepted and compressed to fit automatically, instead of being rejected at 5 MB. (#7097) - [UI / Bug fix] Reply to multiple passages with styled quotes and editable answers interleaved in the order you compose them. (#7098) - [Docs / Test/CI] N/A — CI-only reliability change. (#7100) - [Bug fix / Test/CI] Roll back the recent native Codex resume change after reports of unreliable resumption. (#7101) - [UI / Bug fix] Workspace and worktree labels use available composer space, and their detail popovers are slightly wider and wrap text instead of cutting it off. (#7103) - [Docs / Chore] N/A — repository hygiene only; no user-facing behavior change. (#7105) - [UI / Bug fix] Custom accent color now also tints the active sidebar row highlight (#7115) - [UI] The working indicator now cycles through its verbs every few seconds (with more verbs) so the agent visibly looks busy. (#7116) - [UI / Bug fix / Test/CI] Your last selected host stays selected when offline, and new sessions wait for it to reconnect or for you to choose another destination. (#7117) - [Bug fix / Chore] `/btw` no longer adds a per-second pane-capture subprocess — the permission-mode and `/btw` signals now share one capture per poll window (#7120) - [Chore] Reduce unnecessary re-renders of the chat shell while a session is streaming (#7121) - [UI / Bug fix] Mermaid diagrams in chat now open correctly in full screen, and their toolbar buttons no longer overlap (#7123) - [UI / Bug fix] Code-block download buttons stay aligned with copy and wrap controls while scrolling. (#7127) - [Bug fix / Docs / Test/CI] Homebrew source builds can use configured PyPI and Cargo mirrors, with support preserved across release updates. (#7131) - [UI / Bug fix] Selected text now stays visible and readable across all color themes in light and dark mode. (#7136) - [Test/CI] N/A — test-only change. (#7139) - [Bug fix] Terminals no longer report false exits when the host temporarily cannot start a liveness probe. (#7146) - [Bug fix] Resume existing native Codex conversations without exiting on permission overrides. (#7147) - [UI / Bug fix] MCP startup indicators disappear when resumed sessions begin streaming assistant text, without delaying `Working...`. (#7191) - [Bug fix] Connected runners recover after delayed re-login without requiring a restart. (#7204) - [UI / Feature] A divider separates the fixed sidebar navigation while you scroll, and a thin session scrollbar shows your position. (#7208) - [Bug fix] Codex sessions preserve OpenTelemetry resource attributes and identify Omnigent launches with `launch_mode=omni`. (#7217) - [Bug fix] Codex sessions no longer fail a message or Stop when a new turn began at the same moment. (#7221) - [UI / Bug fix / Chore / Test/CI] Landing and chat share a compact harness selector with clearer versioned model names and consistent Edit controls. (#7222) - [UI / Feature] Find and open sessions by fuzzy-matching their names with Cmd+Option+S (Ctrl+Alt+S on Windows/Linux). (#7226) - [Feature / Docs / Test/CI] Omnigent servers can now use Gensee as a built-in managed sandbox provider. (#7229) - [UI / Bug fix] Text selection is a translucent accent wash in every theme and easier to see in dark mode; the Omnigent theme's pink highlight is back instead of black. (#7230) - [Bug fix] A Claude Code session switched to Auto (or any other permission mode) in the web picker keeps that mode after its terminal is relaunched, and a session started in Bypass permissions can now be switched from the picker. (#7231) - [Bug fix] Codex cold resume now includes successfully recovered transcript items in the rebuilt local session. (#7233) - [UI / Bug fix] Retry native model rate-limit errors directly from the chat. (#7235) - [Bug fix] Claude Code questions (`AskUserQuestion`) show one card in chat instead of two when the answer takes longer than ten seconds. (#7239) - [UI / Bug fix / Chore / Test/CI] Composers show actual model IDs, preserve new-session selections, keep Send visible at narrow widths, and group workspace activity above the input. (#7243) - [UI / Bug fix] Scrolling up through a long conversation holds still while older messages load, stops loading when you stop or scroll back down, keeps loading until something new is visible instead of stopping inside a "Worked for" fold, and the scrollbar thumb now reflects how much of the loaded conversation is on screen. (#7249) - [UI / Feature] Sessions whose latest message is an error now show a red alert icon in the sidebar. (#7251) - [UI / Bug fix / Test/CI] Use the composer's hand menu for native permissions, including Codex sandbox bypass; model menus no longer show redundant or empty Advanced settings. (#7253) - [UI / Bug fix] Model pickers and the composer show readable catalog model names instead of raw provider IDs. (#7260) - [UI / Bug fix] Keep background terminal scrollbars out of Chat while preserving scrolling in Terminal view. (#7267) - [UI / Bug fix] Composer PR links match nearby text and open GitHub details when tapped on mobile. (#7269) - [UI / Bug fix] Mobile composer text stays large enough to avoid Safari's automatic focus zoom while preserving pinch zoom and larger font preferences. (#7273) - [UI / Bug fix] The session composer's workspace bar has aligned metadata, consistent icon-to-label spacing, and more compact mobile controls. (#7279) - [Bug fix] Grok Build sessions authenticate with the saved CLI token when the agent demands it instead of failing `session/new` with Authentication required (#7282) - [UI / Chore] Composer settings now use Permission mode and show concrete effort selections without a synthetic Default effort option. (#7286) - [UI / Bug fix / Test/CI] The composer collapses its labels to icons instead of wrapping when the window is narrow, and an empty composer no longer shows a blank line. (#7298) - [UI / Bug fix] The composer's workspace bar keeps the PR number and context percentage visible when it collapses the directory and branch names to icons on narrow screens. (#7304) - [Bug fix / Docs / Test/CI] N/A — internal agent recording instructions and contract tests. (#7307) - [UI / Bug fix] Codex input, user-message bands, and known picker-row backgrounds follow Light/Dark terminal theme changes without restarting, with distinct picker selection and stripe shades. (#7308) - [Bug fix] Instruction-file lookup respects Windows network-share boundaries and no longer crashes on embedded NUL characters. (#7309) - [Bug fix / Docs] Agent-initiated session renames now respect your configured date prefixes and title format. (#7311) - [UI / Bug fix / Test/CI] Keep the empty composer compact on mobile while preserving its designed desktop height. (#7322) - [UI / Bug fix] Composer pickers remember their labels and choices across reloads, stay usable while refreshing, and show loading spinners instead of briefly displaying unavailable states or internal model IDs. (#7327) - [UI / Bug fix] The slash menu shows loading while a session starts or discovers skills, updates automatically when discovery finishes, and offers retry if loading fails. (#7328) - [UI / Feature] Mermaid diagrams now render live while editing a markdown file, with a language picker on code blocks (#7329) - [Chore] Harness stream error logs identify the harness and response that failed. (#7331) - [Bug fix] A removed runner working directory no longer prevents loading bundled skills or starting subsequent turns. (#7332) - [Chore] Codex RPC failure tracebacks identify the rejected operation. (#7335) - [Chore] Harness exit warnings identify the owning session, exited process, and tracked response. (#7336) - [Chore] Failed-turn diagnostics retain error codes from harness responses. (#7337) - [Chore] Degraded transcript-sync diagnostics identify the latest transport error or HTTP rejection. (#7338) - [Chore] Runner disconnect warnings identify explicit Stops and the session status cached at disconnect. (#7339) - [Chore] Codex transcript-sync failures retain their delivery classification. (#7348) - [Chore] MCP reconnect warnings retain the failure that interrupted a tool call. (#7349) - [Chore] Failed-turn diagnostics preserve the event's declared failure source. (#7350) - [Test/CI] N/A — test reliability only. (#7353) - [Test/CI] N/A — test reliability only. (#7354) - [Test/CI] N/A — test reliability only. (#7357) - [Test/CI] N/A — test reliability only. (#7362) - [Test/CI] N/A — test reliability only. (#7363) - [Bug fix] Codex now honors inline API keys and custom endpoints declared in agent or global authentication settings. (#7366) - [Bug fix] Agent turns recover from lost tool-result delivery instead of waiting for the idle timeout. (#7367) - [UI / Bug fix] Mermaid download, copy, and fullscreen buttons stay together in the header with even spacing. (#7372) - [UI / Chore] Removed the "Explicit agent_id differs from the project's pinned agent" warning when starting a session with an agent that differs from its project's pinned agent. (#7373) - [Docs / Test/CI] N/A — CI-only change with no user-facing runtime behavior change. (#7385) - [Bug fix] Forking large conversations is faster on MySQL. (#7392) - [Feature] Databricks AI Gateway hosts can authenticate as an OAuth M2M service principal (workload identity), not only interactive user OAuth. (#7401) - [UI / Feature] Open the model picker from the keyboard with `⌘⇧M` (`Ctrl+Shift+M` on Windows/Linux). (#7413) - [UI / Bug fix] The New Chat picker's "hide unconfigured harnesses" setting now hides a harness that the selected host does not report as available. (#7414) - [Bug fix] Harness startup preserves existing log handlers and avoids waiting for their shutdown. (#7428) - [UI / Bug fix] Session startup now keeps drafts safe, uses the standard thinking indicator, and avoids exposing unavailable controls. (#7432) - [Feature] Policy denial and ASK verdict logs now record the deciding policy's owning workspace id so multi-tenant operators can attribute an applied policy to its workspace. (#7437) - [Bug fix] Failed native turns no longer use another turn's assistant reply as their error explanation. (#7448) - [UI / Bug fix] The composer's slash menu hides when you click away and returns when you focus the input again. (#7450) - [UI / Bug fix] Open the combined command and skill menu with `$` or `/` in Codex-native chats; selecting a skill inserts its native `$skill-name` form. (#7452) - [UI / Bug fix] The composer now separates harness selection from editing, keeps nested menus open during diagonal navigation, and lets you resume typing with one click. (#7453) - [UI / Bug fix] Show Codex and Claude model names from the host catalog when session metadata is unavailable. (#7454) - [Bug fix / Test/CI] Agent uploads validate nested settings consistently, and tool approval retries preserve reviewed arguments. (#7457) - [Bug fix / Test/CI] Release readiness checks exclude PR-management jobs attached to the release commit. (#7464) ## [v0.13.0] — 2026-09-09 - [Bug fix] A model-pinned session no longer wastes a harness respawn on its first turn: the persisted `/model` override is seeded into the initial spawn. (#1943) - [Bug fix / Feature / Docs / Test/CI] New local sandbox provider: `sandbox.provider: microsandbox` runs each managed host in a hardware-isolated libkrun microVM on your own machine, with sub-second boots and in-place resume of idle sandboxes. (#2875) - [Bug fix] Linux desktop `.deb` installs show the Omnigent logo in the app launcher (#3396) - [Feature] Adds an opt-in OAuth 2.0 client-credentials grant so a headless client can authenticate as its own non-admin principal, scoped by the existing delegated-token allowlist. Default-off: `POST /oauth/token` answers exactly as before unless a machine client is configured. (#3977) - [Feature] `EXTRA_HARNESS_CLIS` build-arg bakes extra harness CLIs into the host image by harness name — including non-npm CLIs like goose, jcode, cursor, and kimi — without forking the Dockerfile (#4148) - [Bug fix] Session rename tools can update a session title repeatedly instead of failing after automatic title generation. (#4258) - [Bug fix / Feature] Kimi sessions now report their model, token usage, and server-priced cost (at kimi's posted API rates when uncatalogued), deliver reliably into the web transcript, and can no longer strand a session `running` after a crash or interrupt. (#4439) - [UI / Feature] Archived sessions can now be marked as expired after a configurable retention period (7, 30, 60, or 90 days) from **Settings > Archived sessions**, with a manual "Delete expired" bulk action to remove them (#4488) - [Bug fix / Test/CI] - Avoid an unused HTTP client allocation on direct async-inbox tool dispatch. (#4511) - [Bug fix] The claude-sdk harness (and the ACP / qwen / kimi / goose / pi / tmux launch paths) no longer fail to start with `[Errno 8] Exec format error` when omnigent runs under a Python whose path is a wrapper script or contains a space. (#4586) - [Feature] Jcode is available as a harness (`omni run --harness jcode`, harness picker row "Jcode") (#4661) - [Bug fix] Polly now routes work only to harnesses reported ready on the session bound host. (#4848) - [Bug fix] Nested Claude Code subagents now appear under the agent that actually spawned them. (#4914) - [Bug fix] Agent processes are no longer left running after a run finishes or is killed. (#4976) - [Bug fix] `opencode-native` sessions can use environment variables explicitly forwarded with `OMNIGENT_RUNNER_ENV_PASSTHROUGH`. (#5041) - [Docs] Documented the existing `OMNIGENT_BUILTIN_AGENT_DIRS` env var (extra always-available built-in agents) in the Docker deployment docs (#5208) - [Bug fix] A slow or hung harness CLI no longer stalls the host daemon while a session launches. (#5255) - [UI / Bug fix] An MCP elicitation that asks for fields now shows a form you can answer, instead of only Approve and Reject. (#5313) - [Bug fix] Codex sessions now explain incompatible Chat-only provider routes before launch instead of failing later with a generic provider error. (#5450) - [Bug fix] Large multi-line continuation messages sent to a claude-native session are no longer silently dropped when the TUI paste-render window exceeds the commit timeout. (#5494) - [Bug fix] Runner stream errors mid-stream now surface as exceptions at the consumer instead of silently truncating the response. (#5511) - [Bug fix] Concurrent native launches (`omnigent claude`, `omnigent run`, etc.) no longer start duplicate host daemons when two processes race at startup (#5631) - [Bug fix / Test/CI] Bundled local tools now operate in the session's persisted workspace while continuing to load code from their isolated agent bundle. (#5637) - [Bug fix] The "Sandbox launch failed" banner clears once a slow managed runner actually connects (#5640) - [UI / Bug fix] The interface font size setting now applies on mobile (mobile web and the iOS/Android apps), not just on desktop. (#5731) - [UI / Bug fix / Feature] Right-click or long-press a project folder for its actions; project emoji icons appear in Move-session pickers. (#5740) - [Bug fix] `omnigent debug db-upgrade` now reports a clear "database file does not exist" error for a mistyped SQLite path instead of crashing with a raw traceback or silently creating a new empty database (#5754) - [Bug fix] `brew install omnigent` no longer fails building Pillow from source on macOS. (#5759) - [Feature] Host and runner WebSocket connection lifecycle is now observable through OpenTelemetry metrics. (#5761) - [Chore] The runner's native-terminal auto-create now honours `harness..command`/`args` from `~/.omnigent/config.yaml`, so a downstream wrapper can be selected by config on both the CLI and runner launch paths. (#5765) - [Bug fix] cursor-native now refuses to start a session when its bridge directory sits under a directory tree it does not exclusively own, instead of writing the relay token there (#5771) - [UI / Bug fix] Conversations imported from Codex now render pasted inline images instead of showing a blank transcript (#5778) - [UI / Feature] Desktop: MDM-enabled Databricks users can connect an Arca instance as a host from a transparent, live terminal flow. (#5779) - [Bug fix] Kimi Code installs using a custom OpenAI-compatible provider (e.g. OpenRouter) as the default are now detected as configured, so the Kimi harness is selectable in the UI (#5815) - [UI / Bug fix] Typing with an IME in the Terminal pane no longer drops the composed text when Shift+Enter is pressed mid-conversion (#5821) - [Bug fix] An external `omnigent host` now rides out the brief 404 window while the server restarts behind a reverse proxy, instead of exiting and killing its live runner sessions (#5842) - [UI / Bug fix] The workspace picker now browses Windows hosts correctly — folders under `C:\Users\` open, Up returns to the parent folder instead of the drive root, and new folders can be created under drive-letter paths. (#5847) - [Bug fix] Failed native sub-agent turns now stay failed in the session tree and report their error to the parent; a sub-agent dispatch that never starts is failed loudly after a launch-liveness budget instead of hanging forever. (#5856) - [Bug fix] Server startup no longer crash-loops on `DependentObjectsStillExist` when upgrading a populated PostgreSQL database that has operator-added foreign keys referencing omnigent tables. (#5862) - [Bug fix] Codex sessions in the default Auto permission mode no longer stop on a human approval card for escalated (e.g. out-of-workspace) commands — Codex's automatic reviewer settles them. (#5864) - [Bug fix] Per-session native-harness directories orphaned by a crashed runner or host are now garbage-collected at runner and host startup, stopping unbounded `~/.omnigent` disk growth. (#5866) - [UI / Bug fix] The context-occupancy meter now updates on failed turns too, instead of freezing at the last successful turn's value (#5883) - [Bug fix] `CLAUDE_CODE_ENABLE_TELEMETRY` now survives into background host daemons and their runners, so Claude Code telemetry works on background-daemon dispatches (#5887) - [Bug fix] The bare `omnigent claude --resume` picker now offers only sessions bound to the current host, and retries a transient rate-limit instead of crashing (#5888) - [Bug fix] `omnigent run` joins the dispatching client's OpenTelemetry trace when a `TRACEPARENT` is set, so cross-service runs appear as one trace (#5893) - [UI / Bug fix] Compaction progress timer no longer resets to 0s when switching sessions during an active compaction (#5899) - [Bug fix] Claude-native model and effort switches recover when the session's tmux terminal has died (#5918) - [Bug fix] Cancelling a Goose, Cursor, Kiro, Kimi, Hermes, or Qwen sub-agent now hard-stops the worker the same way Claude does (#5919) - [Bug fix] Claude SDK sessions now retain a verified compacted checkpoint when a turn errors after compaction, without discarding full history when a safe checkpoint cannot be exported. (#5927) - [UI / Bug fix] Project folder hover actions no longer stay stuck on screen after you expand or collapse the project (#5952) - [Feature] Add a HashiCorp Vault Transit backend for the per-user credential store, a non-AWS alternative to AWS KMS. (#5953) - [Bug fix] opencode-native no longer kills long-running relayed Omnigent tool calls at 60 s; spec MCP server timeouts are honored correctly. (#5956) - [Bug fix] MCP elicitation now sends the server the option you actually picked, and declines answers that don't match the requested schema instead of substituting the first option (#5957) - [Bug fix] Agent browser views no longer share one cookie jar — each conversation's view gets its own isolated in-memory storage partition (#5960) - [Bug fix / Docs / Test/CI] Browser actions now fail promptly when no UI renderer claims them; request-driven harnesses omit browser tools when no session-stream subscriber is present, and evidence-free recovery turns fail closed. (#5963) - [Bug fix] Fixed `write_paths` sandbox grants silently giving no write access when the granted directory didn't exist yet (#5971) - [Feature / Chore] Debug logs can now be delivered through a custom batch sender while ZeroBus remains the default. (#5972) - [Bug fix] Long-running agent turns that keep making progress are no longer killed by the 3-hour absolute turn watchdog (#5973) - [Bug fix] The built-in approval, report-only, and worktree-guard policies now cover Claude Code's `MultiEdit` and `NotebookEdit` tools (including `notebook_path` targets). (#5974) - [Bug fix] Codex command-approval hook failures no longer leave active turns waiting indefinitely (#5976) - [UI / Bug fix] Fixed unreadable dark-mode syntax colors in the managed (embedded) code/file viewer. (#5979) - [Bug fix] Kubernetes sandbox pod-ready wait can now be overridden with `OMNIGENT_K8S_POD_READY_TIMEOUT_S`, in addition to the existing `sandbox.kubernetes.pod_ready_timeout_s` config key (now documented) (#5980) - [Bug fix] Desktop browser pane: links can be clicked (the pane navigates to them) and right-clicked to open in your browser or copy the address (#5983) - [Bug fix] Codex sessions reliably receive automatic titles without plugin startup races. (#5984) - [UI / Bug fix] Sending a message with multiple pasted images no longer shows a stray `image.png` placeholder that disappeared on refresh (#5985) - [UI / Bug fix / Test/CI] Sub-agent sessions now show the sub-agent's own name in the chat header breadcrumb instead of the parent agent's name (#5988) - [Bug fix] Error banners now correctly show `[llm]` for context-window overflow failures instead of the misleading `[execution]` label. (#5989) - [Bug fix] The terminal stays responsive when an approval response hits a temporary network interruption. (#5991) - [Feature] Background session renaming now runs on each harness's cheapest model (Haiku for Claude, Luna for Codex) and only falls back to the session's model when the cheap one is unavailable (#5994) - [Bug fix] Fixed the "Compacting conversation…" spinner getting stuck when Claude Code declines a `/compact` with too little context (#6002) - [Bug fix] The host daemon now backs off between reconnect attempts when the server hostname fails DNS resolution (e.g. VPN down), instead of retrying twice a second indefinitely. (#6005) - [UI / Bug fix] The model picker now shows the host diagnostic when Codex or Claude model discovery fails. (#6020) - [Bug fix] Plugin skills resolve under both their `plugin:skill` and bare `skill` names across claude- and codex-family sessions (#6021) - [Feature / Test/CI] CEL policies can update conversation state with `state_updates`. (#6022) - [Bug fix] Pi-native Databricks sessions now start on a Claude model the workspace actually serves, and survive model-listing failures instead of falling back to Pi's own login (#6023) - [Bug fix] Resuming a large Claude conversation no longer opens a blank session when a history page fetch fails — the runner retries smaller pages and falls back to the local transcript. (#6025) - [Bug fix] Kimi Code error messages and sandbox now use the CLI's real config location (`~/.kimi-code/config.toml`) instead of the legacy `~/.kimi/` path (#6033) - [UI / Bug fix] Newly-created sessions no longer briefly flash out of the sidebar before settling. (#6036) - [UI / Bug fix] Switching sessions no longer moves keyboard focus into an open workspace-rail (#6038) - [Bug fix] A 502 from an intermediary on the runner token-mint endpoint no longer bricks local sessions — the runner falls back to unauthenticated requests and re-authenticates once the server recovers (#6039) - [UI] Add an opt-in "Server selector" desktop setup flow (View → Experiments), leaving the classic setup page as the default. (#6040) - [UI] Bigger, easier-to-tap mobile toolbar buttons (search, settings, sidebar toggle, session menu) (#6041) - [Bug fix] A sub-agent's own guardrail policies (e.g. a stricter `max_tool_calls_per_session`) are now enforced on its conversation alongside the parent's, with the stricter limit winning. (#6043) - [UI / Bug fix] Switching conversations on mobile now opens the transcript at the newest message instead of sometimes jumping to the top (#6045) - [Feature] Sessions started from a project are filed into it instantly and pick up the project's saved agent and workspace defaults from the server (#6047) - [Bug fix] Qwen-native sub-agents now notify and return their final answer to the parent orchestrator when a turn finishes. (#6051) - [Bug fix] Native claude terminals now launch when the pinned model uses the gateway spelling (`databricks-…` / `system.ai.…`) of a model the host's catalog serves, instead of failing hard. (The codex twin was fixed upstream in #6458/#6493; this PR adds end-to-end launch coverage for both.) (#6052) - [Bug fix] Output policies declared in an agent's guardrails are now enforced on claude-sdk: a DENY replaces the response with a policy sentinel in the durable transcript instead of being silently ignored (#6055) - [Bug fix] `--server` host sessions no longer inherit the first dispatch's working directory: the runner pool roots at `/` and each harness starts in its own session's workspace, so deleting an old worktree can't strand later sessions in a dead directory. (#6056) - [Bug fix] `omnigent server` startup output no longer prints the database password (#6061) - [Bug fix] Devin and Grok Build now appear in the New Chat picker when the connected host has them (#6071) - [Bug fix] Reading a session hits the database once instead of twice, cutting a network round trip from nearly every session request. (#6074) - [Bug fix] `omnigent import --last` now imports every session it can and reports the ones that failed, instead of aborting the whole batch when one session's network request fails (#6079) - [Feature] Sessions imported from the web now bind to the machine they were imported from, so resuming them lands on the right host without the machine picker. (#6080) - [Bug fix] Native `/clear` replacements retain the host, workspace, and git branch used by their transferred terminal and remain forkable. (#6081) - [Bug fix] Turn failures on the streaming path now report the real harness error (for example `harness_spawn_failed: …`) instead of "harness returned error response" (#6082) - [Bug fix] The Databricks App no longer crash-loops when its Lakebase endpoint is resuming from idle suspend — boot now retries transient connection errors with backoff. (#6085) - [Bug fix] `omnigent run` no longer crashes at launch when the shell's proxy environment contains an entry httpx can't parse (e.g. `NO_PROXY=fe80::/10`) (#6087) - [Bug fix] `omni polly` (and other bundled agents) now fall back to your configured, credentialed harness — announcing the switch — instead of failing with "Not logged in" when no Claude credential exists. (#6090) - [UI / Bug fix] Fixed an unreadable skill description tooltip on the composer in light mode (#6093) - [Bug fix] Skills whose description contains a colon now load instead of being silently skipped. (#6125) - [Feature / Docs] Servers can automatically terminate managed sandbox compute after it remains offline for a configured number of days. (#6127) - [Bug fix] A managed Kubernetes sandbox is now torn down if its launch fails after the host comes online (harness refusal or a runner that never connects), instead of leaking until its 7-day lifetime cap expires; Jobs also get a 24h `ttlSecondsAfterFinished` backstop as defense in depth (#6128) - [Bug fix] Chats no longer show a false unread dot after their runner or host is rebound (#6131) - [Bug fix] Session metadata now records the concrete model reported by SDK-based agent harnesses. (#6141) - [UI / Feature] New sessions show their first prompt as the sidebar label right away instead of "Claude Code" while the server title is on its way (#6144) - [UI / Feature] Adds a GitHub tab to the session workspace rail: the branch's PR, its CI checks, and a stacked branch-vs-base diff with a folder-tree navigator (#6145) - [UI] The classic setup page's "Switch to new experience" button now appears only while Alt/Option is held. (#6147) - [Bug fix / Docs] Trusted sandbox workspaces can preserve agent-created hidden files across commands. (#6151) - [Bug fix] Sandboxed file tools can read the workspace and other paths they are allowed to write. (#6153) - [Bug fix] Unattended child agents now preserve full permission bypass instead of pausing for human approval. (#6156) - [Bug fix] Logs now redact token-like credentials consistently before writing or uploading them. (#6159) - [UI / Bug fix] Desktop fullscreen on notched Macs no longer leaves a black band above the app. (#6169) - [Bug fix] Keep automatically generated session titles in the same language as the request unless another language is explicitly configured. (#6171) - [Feature] Use the native Omnigent app on iPad in portrait, landscape, and multitasking layouts. (#6173) - [UI] Restyled the workspace "+ → Open new" shell menu — a single "Shell" launches your default shell, with the other types behind a "More shells" flyout. (#6174) - [Feature] Desktop: Databricks-internal local host enrollment now uses `isaac omni`, with custom CLI paths disabled by the managed internal-feature policy. (#6175) - [Bug fix] `omni host` now shows structured logs in foreground terminals, matching `omni server`. (#6177) - [UI] Open About Omnigent to see distinct app and CLI versions and manage desktop updates in one place. (#6178) - [UI] Archive or unarchive a conversation straight from a sidebar row on hover, without opening the menu (#6179) - [Bug fix] Local development sessions keep generating automatic titles after the Omnigent source checkout changes. (#6180) - [UI / Feature] Projects can now set a default model for Claude Code / Codex sessions in Project settings. (#6181) - [UI] The onboarding "Starting Omnigent" step now streams the local server's real startup logs instead of a spinner. (#6186) - [UI / Bug fix] Cmd+F opens find-in-file in the code and diff viewers (and no longer steals find-in-page while you're in the chat) (#6187) - [Bug fix / Test/CI] Standalone SDK and Slack distributions now include Apache-2.0 LICENSE and NOTICE metadata. (#6188) - [UI] "Connect to new server…" now opens the server list directly, and connection failures are shown with a clear "Couldn't connect to the server:" label. (#6189) - [UI / Bug fix] Deleting a worktree session while the runner is offline now explains that you can drop the session without branch cleanup, instead of a 404 toast (#6190) - [Bug fix] Fixed a black screen at launch when the saved server was unreachable and the app couldn't immediately reach its setup page. (#6191) - [UI] New card-styled sign-in and invite pages, opt-in via `?login-v2=1`. (#6197) - [Bug fix] Pi on Databricks no longer 400s on models whose native output limit exceeds the serving endpoint's per-request cap (#6209) - [UI / Bug fix] Keyboard shortcuts now use ⌘ on macOS and Ctrl elsewhere exactly as shown (Ctrl+K no longer opens the command palette on macOS), and switching conversations moved to ⌘[ / ⌘] (#6222) - [Bug fix] Batch item-payload encoding on append so a store with a per-call encode issues one call per page instead of one per item. (#6223) - [Bug fix] The CLI and web Agents rail now show a sub-agent as running when it is reused or driven directly, instead of staying `Idle` until the parent's next turn. (#6225) - [Bug fix] Resumed native Codex sessions launched from the web no longer get stuck behind the terminal-only "Hooks need review" prompt. (#6227) - [UI / Feature] Switch Codex approval mode (Ask for approval / Approve for me / Full Access / Read Only) from the web, kept in sync with the codex `/permissions` menu both ways. (#6228) - [Feature] Managed Kubernetes sandboxes can run as agent-sandbox `Sandbox` resources (`sandbox.provider: agent_sandbox`) that stay alive while an agent is running, suspend themselves once idle, and resume with their workspace intact (#6230) - [UI / Bug fix] Downloading a workspace file larger than 10 MiB now saves the complete file instead of a silently truncated one (#6231) - [Bug fix] Credential-proxied clients can use one injected token across all explicitly configured service hosts. (#6233) - [Bug fix] claude-sdk agents on a gateway no longer fail a flagged turn with "issue with the selected model (claude-opus-4-8)"; a safeguard refusal now falls back to a model the gateway serves. (#6236) - [UI] The empty landing's import options collapse into a single "Import your recent sessions" button, and Settings › Import lists sessions as they stream in. (#6237) - [Bug fix] Sub-agent results that were waiting in a parent's inbox now survive a runner restart instead of being lost. (#6238) - [UI / Feature] Drop an image anywhere in the chat to attach it, not just on the message box (#6245) - [Bug fix] The codex model picker now lists models when your codex routing comes from a custom provider in `~/.codex/config.toml`, instead of coming up empty. (#6249) - [Bug fix] Orchestrators that dispatch sub-agents are now told, in their system prompt and tool descriptions, exactly what a sub-agent wake notice looks like and that it comes from the runtime, so Claude no longer mistakes it for prompt injection and reliably collects the inbox. (#6250) - [Bug fix] Omnigent now warns during setup and fails early at terminal launch when tmux 3.3 or newer is unavailable. (#6255) - [UI / Bug fix / Feature] Codex sessions whose saved transcript Codex can't reload now continue on a fresh Codex thread with an in-chat notice, instead of failing every turn. (#6270) - [UI / Feature] See which connection supplies your selected model by hovering the composer configuration gear. (#6273) - [UI / Bug fix] The GitHub panel now names each reason it has nothing to show — an outdated host, a missing `gh` CLI, a wrong `gh` auth, a non-git workspace, or no open PR — instead of a single generic "unavailable" message. (#6275) - [UI / Feature] The new-terminal menu shows the current shell inline ("Shell (zsh)") and picks other shells from a single flyout; a new ⌘⌥T / Ctrl+Alt+T shortcut opens a new shell (#6276) - [Bug fix] HTTP/2 clients can connect through unrestricted egress proxy routes without their streams being rewritten as HTTP/1.1. (#6285) - [UI / Bug fix] Background-task pill no longer clips the last line of the chat transcript (#6288) - [Bug fix] Sub-agents dispatched by session id are now named in wake notices, launching results, and the Agents rail instead of showing `agent/`. (#6289) - [Bug fix] The GitHub tab now shows exactly the PR's files and diff (sourced from `gh`) instead of the whole branch-vs-`main` diff that appeared when the workspace's local base ref was stale. (#6294) - [UI / Test/CI] The Shell flyout now labels alternate shell options as `Other shells`. (#6296) - [Bug fix] Messages sent to claude-native are no longer silently reported as delivered when Claude Code restarts during submission. (#6297) - [UI / Feature] Initial page load is 534 KB lighter: xterm now loads as a separate chunk after first paint instead of blocking the main bundle. (#6298) - [UI / Bug fix] Fix composer and transcript text jumping while typing multiline text in Firefox and Zen browsers (#6305) - [UI] App shell (sidebar, composer) now renders immediately on boot rather than after a 1.5 s server-probe timeout on slow networks. (#6307) - [UI / Bug fix] Chat now points you to the terminal to respond when a slash-command dialog is waiting, instead of looking stuck on "Blocked on: dialog open" (#6310) - [UI / Feature] The GitHub tab and the composer's PR indicator now refresh automatically when the agent pushes or opens a PR, and CI status updates live while the panel is open. (#6311) - [Bug fix / Feature] Sidebar "My sessions" and "Shared with me" tabs now use server-side filtering, loading only relevant sessions instead of paginating through the entire session list. (#6312) - [UI / Bug fix] A Claude Code session whose picked model is no longer served by the host's Claude provider relaunches on the provider's default model with the pick reset instead of failing to start, and the model pickers follow a provider change within 15 seconds. (#6324) - [Bug fix] Databricks setup now makes Claude Fable models available through ucode. (#6331) - [Bug fix] claude-sdk agents on a gateway with its own model ids recover from a safeguard refusal instead of failing the turn, without downgrading what the `opus` alias means (#6336) - [Bug fix] Fixed host-mediated session import failing with "host is not connected" on multi-replica servers when importing from a host other than your most-used one. (#6353) - [Bug fix] Restore mouse-wheel scrollback in the native terminal — scrolling up in `omnigent codex` (and other inline CLIs) reaches earlier conversation output again. (#6354) - [Bug fix] Deleting a session no longer allows a concurrent managed sandbox relaunch or wake to recreate the host or leak replacement compute. (#6358) - [Chore] `omnigent update` is deprecated in favor of `omnigent upgrade` — it still runs, but prints a deprecation notice pointing at the canonical spelling. (#6362) - [Bug fix] Claude Code sessions retain compacted context after a cold resume. (#6364) - [Bug fix] Codex and Antigravity reconnect notices now name the active native session instead of Claude. (#6365) - [UI / Feature] Pick a private GitHub repo in New Chat and have the sandbox clone it as your connected account. (#6366) - [UI / Bug fix / Test/CI] The jump-to-top control now stays hidden when a conversation is already at the bottom. (#6375) - [Bug fix] claude-native: large pastes (e.g. messages opening with a long URL) no longer fail to send with a spurious "pasted draft was never visible" error. (#6377) - [Bug fix / Feature] In a sandbox, the GitHub panel and git now authenticate as your connected GitHub account instead of a shared token. (#6380) - [UI] Chat code-block copy and word-wrap buttons now match Streamdown's built-in controls (#6392) - [UI / Feature / Docs / Test/CI] Add the Canvas extension: a per-project board of session cards with live status, titles, worktree branch and pull-request links, opening transcripts and new sessions from the board. (#6396) - [Bug fix] Kiro permission prompts emitted together are preserved and shown one at a time instead of leaving the agent blocked on an invisible approval. (#6398) - [Bug fix] Continuing a Claude Code session after a runner disconnect no longer fails with an `invalid base64 image data` error when the session had compacted an image. (#6403) - [Bug fix] Reverts the claude-native delivery-acknowledgement gate (#6297) and paste-draft-timeout raise (#5494) that surfaced spurious "message may not have been delivered" / "draft was never visible" errors while Claude Code was in fact processing the message. (#6406) - [UI] The header breadcrumb now shows the project's custom emoji icon instead of always a folder icon. (#6407) - [Bug fix] The workspace GitHub tab now finds a branch's PR — summary, changed files, and diff — when the branch was pushed to a fork under a renamed ref, and no longer shows a phantom PR on base branches like `master`. (#6409) - [Bug fix / Feature] `omnigent host reset-id` mints a fresh host id to recover a machine refused with "already registered to a different account" (HTTP 409) (#6412) - [UI / Chore] Conversation switching in the sidebar is noticeably faster — the sidebar no longer re-renders its whole row list on every switch. (#6413) - [Bug fix] `omnigent host reset-id` refuses (instead of silently doing nothing) when the host identity is pinned by an environment variable, and writes the config atomically (#6415) - [UI / Chore] Switching conversations in the sidebar is snappier, especially with the workspace panel open. (#6419) - [Bug fix] On claude-native and codex-native, a transiently unreachable policy server now shows the harness's native tool-approval dialog instead of auto-denying the tool call (#6429) - [Bug fix] Forking long sessions no longer performs per-item encryption round trips or returns the full transcript in the creation response. (#6432) - [UI / Docs] The Canvas documentation now shows a realistic project view with live sessions, worktrees, and pull requests. (#6440) - [Bug fix] Databricks deployments can opt into Canvas with `OMNIGENT_ENABLE_CANVAS=true`; Canvas remains off by default. (#6443) - [Bug fix] A codex session pinned to a model in the gateway spelling (e.g. `databricks-gpt-5-6-sol`) now resumes instead of failing with "not in this host's current model list". (#6458) - [UI / Bug fix / Docs / Test/CI] Canvas opens smoothly from one spinner and fills large workspaces in much larger background pages. (#6464) - [UI / Feature] Import a Claude Code or Codex session directly by harness and session ID. (#6465) - [Bug fix] Claude Code errors no longer replace the session's model label with ``. (#6467) - [Bug fix] Codex connection cleanup completes even when its websocket reader has already disconnected. (#6474) - [Bug fix] Claude tool-list notifications handle connection resets and other transport failures through the existing best-effort failure path. (#6475) - [Bug fix] Deleted managed sessions now retry transient sandbox cleanup failures instead of leaking provider compute. (#6488) - [UI / Bug fix / Test/CI] Canvas fills missing sessions during initial loading, shows initial loading progress beside the session count without flashing on later background refreshes, and restores project views correctly after window resizing. (#6491) - [UI / Bug fix / Test/CI] Codex sessions recover on the configured default when a saved model is unavailable, without losing newer selections or selections after failed discovery or launch. Hidden background terminals no longer block chat controls. (#6493) - [Bug fix] Slow native Codex launch preparation no longer blocks the runner's event loop; existing model selection and authentication are unchanged. (#6497) - [UI] Workspace file tree switches instantly and stays smooth when scrolling large, deeply-expanded trees (#6518) - [UI] Switching between long conversations is now fast — the transcript renders only the messages on screen. (#6522) - [UI / Bug fix] Sharing a session read-only no longer exposes its workspace files; owners can opt in to letting view-only collaborators browse files from the share dialog. (#6557) - [UI / Feature] Shared sessions are now visually identified with a people icon in the sidebar. (#6564) - [UI / Bug fix] The Share dialog now explains when a home-directory conversation cannot be shared before you submit an invitation. (#6565) - [UI / Feature] You can open multiple independent browser tabs in a session. (#6566) - [Docs] Policy evaluation failures (server unreachable, connection refused, token refresh failure) now emit structured WARNING log entries visible in server logs, instead of only printing to the hook subprocess's stderr (#6597) - [Bug fix] Codex sessions retain their compaction history across restarts, resumes, and forks. (#6614) - [Bug fix / Docs / Test/CI] Managed microsandbox VMs no longer expose a host-machine port merely because a public server URL uses the same port. (#6637) - [Bug fix] Keyboard and screen-reader scrolling in the file panel and file viewer is no longer snapped back right after switching conversations (#6643) - [UI] Session rows now highlight immediately while conversation navigation finishes in the background. (#6660) - [Bug fix] The Working indicator now stays visible when an active Codex session survives an Omnigent server restart. (#6669) - [UI / Bug fix] The pinned-session hover flyout now shows the project's real icon instead of always a folder icon. (#6675) - [UI / Feature] The GitHub PR panel now opens on a Summary tab showing the PR description and comments, with the file diff moved under a Changes tab. (#6678) - [UI / Feature] The session GitHub panel now resolves fork and stacked-branch PRs reliably, no longer shows a stale merged PR on the default branch, and lets you pick which GitHub account to use when the repo can't be reached. (#6680) - [Bug fix] Claude-native sub-agents now correctly launch when using managed gateway settings (e.g., Isaac/Databricks) (#6684) - [UI / Bug fix] Fixed message send failing in the web app when self-hosted over plain http on a non-localhost host (`crypto.randomUUID` is unavailable there). (#6686) - [UI / Feature] Find Fork in session menus and keep final assistant actions visible once the session is idle. (#6698) - [Bug fix] Upgraded hosts with legacy-prefixed IDs no longer restart their daemon and disconnect existing sessions on every launch. (#6712) - [Bug fix] Policy specs now accept the documented `handler` + `factory_params` shape in agent spec bundles and the server `--config`, not just single-file agents. (#6716) - [Bug fix] A session created with a malformed initial item now returns a 400 naming the bad item instead of failing with an internal error (#6728) - [Bug fix] Host-scoped requests to an offline host on a single-server deployment now return a clear "host is offline" instead of a 400 that triggered an endless retry loop. (#6732) - [UI / Feature] New conversations open immediately while the server creates the session in the background. (#6737) - [Feature] `sandbox.kubernetes.home_size_limit` bounds each runner Pod's HOME emptyDir (default 8Gi) and `resources.*.ephemeral-storage` is now forwarded, so a sandbox that fills its disk is evicted alone instead of taking neighbouring Pods down with it (#6740) - [UI / Bug fix] File and comment requests no longer target temporary conversations while a new session is being created. (#6741) - [UI / Bug fix] Assistant stream failures no longer leave blank turns or stack duplicate error cards. (#6742) - [UI / Feature / Chore] Canvas is now a built-in page (sidebar › Canvas) that shows your sessions as draggable cards grouped by project; enable it with `OMNIGENT_FEATURES=canvas`. The separate `omnigent-canvas` extension is removed. (#6753) - [Bug fix] `omnigent session export` now works with server URLs that include an organization selector. (#6755) - [UI / Bug fix] Queued-message actions stay easy to tap on mobile without oversized icons. (#6757) - [UI / Bug fix] Composer controls now preserve model information and avoid overlapping the Stop button in constrained layouts. (#6760) - [UI / Feature] New sessions are automatically named; users can turn this off in Settings. (#6772) - [UI / Bug fix] Canvas now remembers all loaded sessions, the selected project, and every card's position while using a coarser snap grid. (#6774) - [UI / Bug fix] Session auto-naming can now be turned off independently in each browser without a server database setting. (#6784) - [UI / Bug fix] Error banner for Codex turn failures now shows a descriptive headline and an always-visible expand chevron with an "Expand for details" hint instead of the generic "Something went wrong" (#6790) - [UI / Feature] See whether a pull request is open, closed, or merged from the GitHub panel header. (#6795) ## [v0.12.0] — 2026-09-01 - [Bug fix] Agent-native ACP tool cards persist without mis-pairing the next MCP tool dispatch. (#2387) - [Bug fix] `web_fetch` now works for agents running on wrapped harnesses (claude-sdk, codex, cursor, pi) instead of failing with a "sub-agent '__web_researcher' not found" error, with the dispatch gate and the sub-agent spec lookup resolving the researcher consistently through one shared reconstruction path. (#2439) - [Bug fix] A built-in agent whose bundle is missing from the artifact store is now re-uploaded at server startup, so a pruned or unrestored bundle self-heals instead of failing every session launch. (#2498) - [Bug fix] Recover automatically when a session's runner is relaunched server-side, instead of failing every message with "runner is not registered" (#2752) - [Bug fix] Local SQLite server no longer returns `/health` 500s (`QueuePool ... timeout`) under multi-session use. (#2768) - [Docs / Chore / Test/CI] An official Modal-enabled server image is available for deployments that provision managed Modal sandboxes. (#3305) - [Feature] `sandbox.kubernetes.pod_ready_timeout_s` raises the managed runner Pod start budget for clusters where image pulls run long (#3434) - [UI / Feature] Add an "Always steer" setting that sends follow-ups straight into the running turn instead of queuing them (#3512) - [Bug fix] The Workspace rail no longer renders under the OS status and navigation bars in the native mobile shells (#3587) - [UI / Feature] Archived sessions in Settings now support bulk selection for deleting or unarchiving multiple sessions at once. (#3625) - [UI / Feature] Export and import appearance settings as a JSON file from **Settings > Appearance**. (#3723) - [Bug fix] Agent `instructions:` now reach the agent on claude-native, codex-native, opencode-native and hermes, and a harness that cannot deliver them warns instead of dropping them. (#3929) - [UI / Bug fix / Test/CI] Databricks Apps full-UI deployments now ship the web UI outside the Python wheel as a bounded compressed archive so they fit the Workspace file limit and sync efficiently. (#4011) - [Bug fix] Codex no longer asks for `codex login` when it is already authenticated through (#4262) - [Bug fix] Sub-agents no longer inherit a sibling config's cached MCP tool list when two declarations share a command but differ in env, headers, or Databricks profile. (#4457) - [UI / Feature] Voice dictation now follows your browser language by default while still honoring explicit language overrides. (#4486) - [Bug fix] Native Claude Code workers no longer hang on the one-time bypass-permissions acceptance dialog on self-hosted runners. (#4585) - [Bug fix] `sys_session_get_history` accepts `content_max_chars` to return up to 12000 characters per history item (#4601) - [Bug fix] `omnigent setup` now installs harness extras into the interpreter omnigent actually runs on, instead of failing with "No virtual environment found" or silently installing into an unrelated virtualenv. (#4613) - [UI / Bug fix] Android notifications now use a legible Omnigent creature icon in the status bar. (#4623) - [Bug fix] Agents can now read a skill's auxiliary files after loading it, including files stored alongside `SKILL.md` (#4625) - [UI] The Changes tab now shows "Changes" in its header instead of "Working folder". (#4633) - [UI / Bug fix] Electron desktop shows the setup error page (with status and configured server URL) instead of a black screen when the configured server returns HTTP 4xx/5xx. (#4710) - [Feature] Prioritize `omni agy` CLI shortcut and add `agy-native` harness aliases for Antigravity across CLI and Web UI (#4732) - [UI / Bug fix] [UI] The sidebar unread dot no longer re-appears on already-read idle sessions when the server clock is ahead of your browser (#4765) - [Bug fix] Desktop app no longer dead-ends on a raw 401 when the saved server URL is the API endpoint; it normalizes to the workspace root at boot. (#4797) - [Bug fix] Source installs now reject Node.js versions older than 22.13.0 before the web build and report a clearer recovery path. (#4798) - [Chore / Test/CI] Databricks API-only deploys with `--skip-web-ui` no longer rebuild or bundle the web UI (#4807) - [Bug fix] Validate that the provider_cost is a proper positive number (#4827) - [UI / Bug fix / Test/CI] Project sidebar actions now remain available on mobile and touch-only tablets. (#4850) - [Bug fix] Qwen Stop, reasoning, tool cards, and `/model` now follow the ACP session (#4877) - [Bug fix] Cursor task notifications no longer appear as messages sent by you (#4883) - [Bug fix] A stuck event-forward retry no longer crashes with `OverflowError` or floods the runner log (#4887) - [Bug fix] Omnigent now starts and runs migrations with database passwords that require URL encoding, including when operators use `OMNIGENT_DB_URL`. (#4960) - [Chore / Test/CI] `deploy.py --no-otel` deploys Omnigent to Databricks Apps without OpenTelemetry instrumentation or export (#5001) - [Chore / Test/CI] A Unity Catalog traversal grant that cannot be applied now warns instead of aborting the Databricks deploy (#5002) - [Feature] Sessions on the `pi` harness now honour reasoning effort, including mid-session `/effort` changes, and clamp to the levels the chosen model supports (#5129) - [Bug fix] Antigravity native harnesses can authenticate with `GEMINI_API_KEY`. (#5134) - [Feature] `omnigent host` and `omnigent start` now open the Omnigent web UI in your browser automatically (respects `auto_open_conversation`). (#5135) - [UI / Bug fix] Terminal applications now ask for permission before writing to your system clipboard. (#5147) - [Docs] The README now covers the Grok Build and Devin harnesses, including how to (#5148) - [UI / Bug fix] Desktop update notifications no longer cover web toasts in the bottom-right corner. (#5156) - [Bug fix] Relaunching a session no longer leaks the previous runner process (and its terminal pane) on the host. (#5183) - [Bug fix] Skills in `~/.agents/skills` and `.claude/skills` now reach native-harness (#5184) - [Bug fix] `--live` bench runs work without a gateway credential for the eight native (#5188) - [Bug fix] Codex sessions now retain structured activity for built-in shell commands and file changes. (#5200) - [Feature] Stale host daemons now retire themselves when their registry record is removed or claimed by a newer daemon, and a second host spin-up reuses the running daemon instead of duplicating it. (#5213) - [UI / Bug fix] The web composer's slash-command menu lists a session's skills again instead of only the built-ins. (#5220) - [Chore] Importing large chats is faster: a session import now writes all of its items in a single database insert. (#5227) - [Chore] Importing many chats at once (`omnigent import --last N`) is faster: sessions now import concurrently instead of one at a time. (#5230) - [Bug fix] `omnigent login` on an accounts-mode server now issues a refresh grant so unattended hosts survive past session-JWT expiry without human intervention (#5232) - [Bug fix] CLI followup hints (e.g. `stop`, `setup`, `run`) now name the configured wrapper command when `OMNIGENT_WRAPPER_COMMAND` is set. (#5235) - [UI] Corrected the setup screen to say "Omnigent server" instead of "Omnigents server" (#5239) - [Bug fix / Test/CI] N/A — internal CI/automation change with no user-facing behavior (per the (#5242) - [Feature] Custom pricing for self-hosted models: configure per-token prices in provider config to enable cost tracking for Ollama, vLLM, and other self-hosted endpoints (#5247) - [Bug fix] Pi now honours the model id you configure as a provider's default instead of rewriting it, so (#5259) - [UI / Bug fix] The Workspace/Agents rail keeps its width while switching between agents in the same tree. (#5267) - [Feature] Session creation can now name its project via an optional `project_id`: the server verifies ownership, fills omitted agent/workspace/git from the project's configured defaults, files the session into the project at creation time, and emits structured warnings on agent/workspace mismatches (with an optional strict mode that rejects them). Requests without `project_id` behave exactly as before. (#5315) - [UI / Bug fix] New sessions started from a project now reliably use the project's configured agent and working directory instead of falling back to the last-used agent or another project's workspace. (#5316) - [Bug fix] A sandbox provider installed through the `omnigent.sandbox_providers` entry point can (#5336) - [UI] Pointer cursor on turn rail ticks and inbox rows (#5339) - [Bug fix / Test/CI] Databricks Apps deployments now work when no release features are enabled. (#5343) - [Feature] Multipart `POST /v1/sessions` now accepts `host_type: "managed"` (with `sandbox_provider`), so an uploaded agent bundle can run on a server-provisioned sandbox in one call (#5351) - [Bug fix] Sub-agent approval resolution notices now state the human's verdict (approved / declined / no verdict recorded) so parent agents can't narrate an approval that didn't happen. (#5364) - [Bug fix] Codex sessions now honor Omnigent's configured retry count and request timeout. (#5378) - [Bug fix] Forked sessions now preserve compacted context without replaying their full archived history. (#5384) - [UI / Bug fix] The Terminal view now always opens the agent terminal instead of an open shell. (#5385) - [Bug fix] `omnigent login` to a Databricks account-fronting workspace mount without `?o=` now inherits the workspace the Databricks CLI already selected, instead of failing with an opaque 403. (#5389) - [Bug fix] Terminal sessions no longer freeze after a transient tmux probe failure. (#5390) - [UI / Feature] A disconnected agent (runner down, host up) now shows an "Attach" button in the chat to reconnect without sending a message (#5392) - [UI / Bug fix] Chat composers no longer flash a native scrollbar inside or above the input while growing. (#5394) - [Bug fix] A failed `omni upgrade` no longer removes your existing install, and reports (#5397) - [Bug fix / Test/CI] Codex web sessions now recover follow-up messages that arrive while a completed turn is still draining output. (#5398) - [Feature] Imported Claude Code, Codex, and OpenCode sessions now keep their original (#5400) - [UI / Feature] Import your recent local Claude Code / Codex / other CLI sessions into Omnigent (#5401) - [Bug fix] The onboarding assistant no longer recommends the `nimble_extract` builtin unless the `nimble` extra is installed, matching how it already treated `nimble_research`. (#5403) - [Bug fix] `omnigent setup` now detects an enterprise Claude Code gateway (`ANTHROPIC_BASE_URL` + `apiKeyHelper`) and offers it as a `Claude-Databricks` credential, the way it already did for Codex (#5404) - [UI / Bug fix] A mermaid diagram that fails to load no longer blanks the page; the message falls back to its markdown source. (#5406) - [UI / Bug fix] Resumed web sessions no longer repeat a sent message beneath the agent's reply. (#5407) - [Bug fix] Fixed a bug where a Kiro-native session could attach an uploaded file to the wrong chat message. (#5410) - [UI / Bug fix] Omnigent no longer shows a permanent update window in the macOS Dock and reliably finishes quitting. (#5413) - [Bug fix] Cmd+Q now closes the desktop app on the first press after shutdown cleanup. (#5415) - [UI / Bug fix] The Restart to Update menu action now appears only when an update is ready to install. (#5417) - [UI] Unsent drafts now show a pencil beside inactive sessions in the sidebar. (#5418) - [UI / Bug fix] [UI] Sidebar status dots now align vertically across session rows and project folders (#5419) - [UI / Bug fix] The Projects "+" (New project) button is now always visible on mobile, so you can create a project there (#5420) - [UI] Stopped terminal sessions now stay accessible and can be resumed directly from Terminal view. (#5421) - [UI / Feature] Choose whether terminal-backed chats open in Chat or Terminal view by default. (#5422) - [UI / Bug fix] Terminal view now stays selected when you refresh the page. (#5423) - [UI / Bug fix] On mobile, the Shells and Agents panels no longer open underneath the status bar, and tapping a shell opens that shell instead of the agent's terminal. (#5426) - [UI] The mobile sidebar is now a drawer you dismiss by tapping the chat beside it, with Search and Settings floating at its top and bottom (#5427) - [UI / Bug fix] Opening a new session on a phone no longer pops the keyboard on arrival, the Chat/Terminal switcher no longer floats over the new-session screen, and the mobile sidebar's Search and Settings buttons now share one iOS-style liquid-glass treatment (#5428) - [UI / Feature] Turn on a heavier code font in Appearance while keeping bold terminal text distinct. (#5431) - [UI / Bug fix] The welcome screen composer now follows your selected UI font. (#5437) - [UI / Bug fix] Session title actions now use an always-visible horizontal menu, and sidebar clicks no longer lose to delayed hover previews. (#5438) - [UI / Bug fix] Mobile sidebar Settings/Search icons no longer look transparent, and session rows drop the redundant "..." menu on mobile (#5440) - [UI / Bug fix] Addressed comments no longer intercept new comments on the same file anchor. (#5446) - [UI] Session drafts now use a dashed message icon in the session list. (#5456) - [Feature] omnidev now prefills fresh development pods with ten example conversations for UI and API testing. (#5460) - [Feature] omnidev now opens its UI in your default browser as soon as Vite is ready. (#5462) - [Feature] `omni host enable` can now keep your host running as a per-user macOS or Linux service, and `omni host disable` removes it. (#5463) - [UI / Bug fix] Terminal text can be selected and scrolled without tmux capturing mouse input. (#5466) - [UI / Feature] Administrators can provide Omnigent Desktop server choices through macOS Managed Preferences. (#5467) - [Bug fix] `omni setup` and harness readiness now detect an enterprise Claude Code gateway (`ANTHROPIC_BASE_URL` + `apiKeyHelper`) directly from its managed settings, cross-platform, so an isaac-configured Claude reads as configured instead of "Claude Code isn't configured on this host" (#5468) - [Chore] Messages and login hints for Databricks workspace-hosted servers now show the (#5480) - [Bug fix] Clicking Stop during an active qwen turn no longer risks an unhandled error from a concurrent stdin write (#5482) - [Breaking] Web terminals now use one control-mode attach path; legacy PTY transport configuration has been removed. (#5484) - [Feature] ACP agents that spawn sub-agents (e.g. Devin) now show each sub-agent as its own (#5489) - [UI / Bug fix / Test/CI] The new-session picker waits for a current host list before replacing your remembered host with another machine. (#5490) - [UI / Bug fix / Test/CI] Error dividers now stay aligned with the assistant and user message edges on wide screens. (#5493) - [UI / Bug fix] Color themes now retain their original backgrounds, sidebars, gradients, sidebar surfaces, selected-session highlights, previews, and control colors when appearance settings are adjusted or returned to Contrast 50. (#5501) - [UI / Feature / Test/CI] Ultra-wide displays now use more of the available space while keeping assistant replies readable. (#5502) - [UI] The mobile search palette now opens as a full-screen sheet so the keyboard no longer covers the search field and results (#5507) - [Bug fix / Test/CI] N/A — internal CI/automation change with no user-facing behavior (per the (#5515) - [Chore / Test/CI] Theme palette CSS is now regenerated from the same token definitions used by theme customization. (#5527) - [Feature / Docs] Automatic session titles can now follow custom formatting instructions from Omnigent configuration. (#5532) - [UI / Feature] Assistant prose uses more available space on ultra-wide displays. (#5534) - [UI] [UI] Dark-mode Host and working-directory dropdowns in project settings are no longer translucent and hard to read (#5536) - [Bug fix] Sub-agent tools now honor configured history passing and session limits. (#5546) - [UI] [UI] A global "Always use a random worktree" Git setting starts new sessions in a fresh worktree in any git repo (#5547) - [UI / Feature] Markdown preview now shows a table of contents sidebar on wide screens for easier navigation (#5550) - [UI / Bug fix] Saving project settings no longer clears a project's emoji icon. (#5553) - [Bug fix] Remote MCP servers configured with `url =` now authenticate correctly under `omni codex` (#5566) - [Bug fix] Fix macOS host service running in background QoS, which starved agent sessions under load and made Claude sessions fail to start or resume (#5567) - [Bug fix] Host and server startup failures now point at your configured `OMNIGENT_DATA_DIR` log directory instead of always `~/.omnigent/logs/` (#5568) - [Bug fix] ⌘K now opens the command palette everywhere, including the desktop app on managed servers (#5569) - [Feature] ACP sub-agents (e.g. Devin) now show the tool calls they ran inside their own (#5575) - [UI / Bug fix] Approval results keep their chronological position after reconnecting to a long-running session. (#5576) - [Bug fix] The runner's pi gateway-routing log now shows the resolved gateway URL instead of `base_url=None`. (#5579) - [Bug fix] Deleting a session no longer removes a git worktree that another session is still working in; the worktree is cleaned up when the last of those sessions goes. (#5580) - [Bug fix] Claude-native permission-mode changes made mid-session now survive a session relaunch. (#5582) - [Bug fix] Tool-call cards from ACP agents (Devin, Grok, …) now stay in the chat after a (#5583) - [UI / Bug fix] Automations can now switch harness (e.g. Cursor to Pi) from the edit dialog instead of being recreated (#5586) - [Docs] N/A — internal design doc. (#5590) - [Bug fix] Fix a re-login loop when connecting to a single-tenant Databricks workspace-hosted server. (#5591) - [UI / Chore] The chat composer always reads "Send a message…", and a disconnected session no longer shows an Attach button (#5592) - [UI / Bug fix] Terminal sessions now show a "Starting up…" loading state while the terminal initializes instead of a premature "harness is not running" message (#5593) - [UI / Bug fix / Test/CI] The new-session picker no longer silently switches from your remembered host to the local machine or managed sandbox during a transient host-list gap. (#5598) - [UI / Feature] The Clone session dialog now lets you pick the model, reasoning effort, and permission/approval mode for the fork. (#5603) - [Feature] DELETE THIS WHOLE SECTION — internal observability plumbing, no user-facing change. (#5607) - [UI / Bug fix] Fast approvals resolved in another client no longer leave Web blocked on a stale approval card. (#5612) - [UI] CLI commands suggested in the new-chat connect-error message are now selectable and copyable inline (#5616) - [Bug fix] Fixed `omnigent server` crash on Windows with `AttributeError: module 'os' has no attribute 'fchmod'` (#5624) - [Bug fix] Gateway and API-key pi-native sessions now include real context window, max output, and reasoning metadata in `models.json` so Pi uses the model's actual limits instead of its 128k/16k defaults. (#5628) - [Bug fix] Native sub-agent sessions that complete before a `stop_session` arrives now correctly report `"completed"` (or `"failed"`) to the parent, rather than `"cancelled"`. (#5630) - [Bug fix] Skills grouped in a subfolder (`skills///SKILL.md`) are now discovered (#5638) - [Bug fix] Relay sessions can no longer be pushed under their spend cap by a forged token (#5647) - [Bug fix] Codex-native sessions no longer rebind to an ephemeral system thread mid-turn when Codex CLI emits housekeeping `thread/started` events. (#5648) - [UI / Feature / Docs / Chore] Session titles now allow up to 100 characters by default and 200 characters for custom formats or manually assigned names. (#5649) - [Bug fix] Server upgrade no longer fails when the `task_summary` column already exists in the database before its Alembic migration runs. (#5650) - [Feature] Issue triage now distinguishes actionable bug evidence from reports that need more information. (#5653) - [Feature] Incomplete bug reports now receive a focused seven-day information request and are re-evaluated when the author responds. (#5654) - [Feature / Chore] Bug reports still missing requested information after seven days can now be closed automatically and reopened when the author follows up. (#5656) - [Bug fix] Fixed bulk delete and unarchive being permanently disabled in archived sessions settings when identity loads slowly. (#5674) - [UI / Bug fix] "Reset to defaults" button in Settings → Appearance now has proper spacing above it (#5681) - [UI / Bug fix] Custom agents backed by the native Codex harness now keep their Web model and reasoning-effort controls. (#5696) - [UI / Feature] Move a session into a project straight from the title's folder icon — with a search box that also creates new projects (#5698) - [Bug fix] Debug-log rows now carry their `session_id` for session-scoped logs and exceptions; repeated native-harness routing / catalog-probe log lines are deduped to once per process. (#5699) - [UI / Feature] Rename a session by clicking its title in the header (#5701) - [Bug fix] [Android] Switching servers while an OIDC login is in progress no longer injects the first server's session token into the second server's cookie store. (#5702) - [Bug fix] Codex memories now persist across `omni codex` sessions — past-conversation context is visible to new sessions. (#5703) - [UI / Bug fix] Fix desktop header/tab-strip drifting to the center when the sidebar is reopened over a full-screen workspace panel (#5707) - [Bug fix] `omnigent host` can connect to Databricks workspace-hosted servers when CLI profile selection or workspace-id routing would otherwise make the Databricks edge reject the token. (#5710) - [Bug fix] Raises the per-turn absolute watchdog timeout from 1 hour to 3 hours so long-running turns are no longer killed prematurely. (#5713) - [Bug fix / Feature] `omni setup` now offers a "Pi — use own login" credential option, letting Pi users with local Llama, Google, or other natively-configured providers bypass Omnigent-managed authentication. (#5715) - [UI / Bug fix / Feature] Embedded Omnigent now applies UI font size and the color palette, and can show a host-provided theme-settings link. (#5721) - [UI] Markdown file preview now points you to edit mode when you want to add a comment (#5725) - [Bug fix] `omnigent setup` now reports malformed provider configuration with the config path instead of treating it as an application crash. (#5726) - [UI / Bug fix] Fixed PDF files not rendering in managed (embedded) omnigent. (#5730) - [Bug fix] The Claude Code model picker shows plain model names — no literal backticks, consistent 1M-context rows, and no leaked `(default)` marker. (#5757) - [Bug fix] Generated API clients now decode numeric fields at the right width — 64-bit integers and doubles — instead of overflowing on microsecond timestamps. (#5762) - [Bug fix] Copying a soft-wrapped line from the terminal no longer inserts newlines at wrap points (#5767) - [Feature] The desktop app now offers to take you back to your Omnigent server when a sign-in flow navigates the window away and doesn't return (#5773) - [Bug fix] The install hint shown when the `databricks` extra is missing now suggests `uv tool install "omnigent[databricks]"` from the package index instead of installing from git (#5774) - [Breaking] Bare `omni` now starts the background host instead of launching the polly agent; run `omni run` to launch the default agent. (#5776) - [Bug fix] The host daemon no longer burns a CPU core while idle on machines with long or slow PATHs — harness readiness probes are now cached. (#5783) - [Bug fix] The harness bench now checks for the CLI each harness actually launches (e.g. `agy` for Antigravity) instead of guessing from the harness name (#5784) - [Bug fix] `omnigent run` against an unreachable server URL now prints a clean "Could not connect" error naming the URL and how to recover, instead of crashing with a traceback (#5786) - [Bug fix] Android no longer opens an obsolete server's sign-in page in the browser after you cancel a login, switch servers, or leave the app mid-login (#5787) - [UI / Bug fix] Chat links now support normal navigation, new-tab, and copy-link behavior while workspace files still open inside Omnigent. (#5789) - [Bug fix] Arrow keys now move the selection in `omni setup` menus in terminals using application cursor mode (e.g. fish under Ghostty) (#5812) - [UI / Bug fix] The transcript scrollbar thumb can now be dragged by touch on tablets and phones. (#5814) - [Bug fix] The model picker refreshes its model list when Claude Code or the Codex CLI is upgraded, instead of showing the previous version's models for up to an hour. (#5822) - [Bug fix] `web_search` with an explicit `search_provider` now works on claude-sdk (and other non-OpenAI) agents with bare model ids, and `anthropic/`-prefixed models no longer break the Claude CLI (#5829) - [UI / Feature] Choose whether Enter or Command/Ctrl+Enter sends composer messages while mobile Enter always inserts a new line. (#5831) - [UI / Bug fix] `file://` links to files the agent created now open in the file viewer instead of rendering as an inert "[blocked]" span (#5832) - [Bug fix] `omnigent run --server ` with an expired Databricks credential now tells you to re-run `omnigent login` instead of crashing with a raw 403 (#5844) - [Bug fix] Runner-owned codex sessions now run shell tools in the selected workspace instead of the runner service's working directory, including after a native /clear. (#5861) - [Bug fix] MCP tool calls now transparently reconnect after the remote MCP server restarts, instead of failing permanently with "Session terminated" (#5863) - [Bug fix] Codex reasoning now streams each thought paragraph to completion and renders paragraphs separated instead of glued together (#5865) - [Bug fix] Sub-agent completions now reach the parent session even when the server was briefly down when the sub-agent finished — the runner re-delivers the wake after it reconnects. (#5867) - [Bug fix] SDK `StreamHooks.on_sub_agent_spawned` / `on_sub_agent_completed` now fire when a sub-agent session spawns and completes (#5868) - [Bug fix] Sub-agents now inherit the session's selected model when a dispatch doesn't name one, instead of silently running on the provider default (#5871) - [Bug fix] Native workers survive tmux stalls up to 10s during parallel boots, and `omnigent config list` shows whether codex is signed in with a ChatGPT plan or an API key (#5872) - [Bug fix] `sys_list_models` no longer reports a dispatchable cursor-native worker as unable to run when its model-listing probe fails (#5873) - [UI] Embedded app Appearance settings now point to Databricks preferences for the light/dark theme. (#5889) - [Bug fix] A stale `DATABRICKS_BEARER` left in your shell no longer breaks gateway auth — a freshly logged-in Databricks profile now wins. (#5891) - [UI / Bug fix] Web approval cards can now remember Codex MCP tool approvals for the current session or always. (#5911) - [UI / Feature] Restored Rename and Move session to the chat header kebab menu, with a hover flyout project picker on desktop (#5912) - [Bug fix / Docs] DELETE THIS WHOLE SECTION if the change isn't noteworthy (#5915) - [UI / Bug fix / Test/CI] Chat links once again open outside the current chat page. (#5922) - [Bug fix] Approving or rejecting a plan from the web UI now works reliably in Claude Code (#5923) - [Bug fix / Test/CI] Fixed the UI Preview deploy gate prompting maintainers for environment approval (#5925) - [UI / Bug fix] Archiving a session now removes it from the sidebar instantly and no longer jumps you away from a session you switched to mid-archive. (#5928) - [UI / Bug fix] Newly-created sessions now appear in the sidebar immediately instead of a few seconds later. (#5929) - [Bug fix] Automation-created sessions on a terminal harness now show the Chat/Terminal switcher. (#5930) - [Bug fix / Test/CI] `/compact` now returns a clear error for SDK-harness sessions instead of silently attempting server-side compaction. (#5932) - [UI / Bug fix] Forking a session whose worktree folder was deleted now recreates the worktree under the original branch name instead of failing. (#5945) - [Bug fix] Archiving a session now silences its notifications and clears it from the app badge (#5954) - [Bug fix] Disabling host-ID slice-key routing now also disables it for spawned runners. (#5961) - [Bug fix] Devin and Grok Build now appear in the New Chat picker when the connected host has them (#6071) ## [v0.11.0] — 2026-08-24 - [UI / Bug fix / Docs] Sign in to Google-backed Omnigent servers from the iOS app without hitting `disallowed_useragent` (#2556) - [UI / Feature] Claude Code sessions can change permission mode (Manual, Auto, Accept edits, Plan) while running, from the chat's settings or with shift+tab in the terminal — each keeps the other in sync. (#4018) - [Feature] Renaming a session with `/rename` inside a native Claude Code terminal now updates its name in the Omnigent UI (#4104) - * Preserve original Slack listener exceptions and tracebacks in error logs. (#4510) - [Bug fix] Codex agents now surface gateway authentication failures in seconds with the real cause instead of waiting ten minutes and reporting a generic wedged-model error. (#4612) - [Feature] OIDC/SSO unattended hosts no longer crash on session-JWT expiry; they now automatically refresh their credentials within a 30-day login window. (Accounts username/password hosts are unchanged — this refresh path is OIDC-only.) (#4743) - [Bug fix] `omnigent host` now stays connected when optional harness detection fails and surfaces server-side tunnel setup errors. (#4769) - [Feature] Scheduled tasks can now set a per-firing cost budget (`max_cost_usd`) that caps LLM spend on each run (#4791) - [Bug fix] Sub-agent inbox wake notices no longer repeat the same "results waiting in inbox" line while a parent's results sit undrained. (#4803) - [Chore] Cache session access checks briefly to cut per-event database load on active sessions (#4820) - [Chore] `omnigent host` conflict error now shows the exact `omnigent host stop` command to run (#4821) - [Bug fix] Resuming a conversation no longer fails with `string indices must be integers` when the history contains a plain-text assistant message (#4824) - [UI / Bug fix / Feature] Cmd/Ctrl+N now starts a new session, including in the macOS desktop app without opening another app window. (#4840) - [Bug fix] Agent and session discovery tools now page large catalogs through an opaque cursor, or return a bounded diagnostic when the smallest page cannot fit. (#4892) - [UI / Feature] Imported sessions can be resumed from the web via the host picker (defaulted to your current online machine) (#4905) - [UI / Bug fix] The "Working…" indicator and the background-tasks pill now show together while the agent works with background tasks running (#4906) - [Bug fix] Hosts recover faster after temporary network or server interruptions. (#4981) - [UI / Feature] Usage sessions table shows a "+N" badge when sub-agents used different harnesses (#4996) - [Bug fix] `omnigent host stop` no longer crashes when a stale daemon record points at another user's process — it warns and cleans up the record instead (#5012) - [UI / Bug fix] Dollar signs in chat messages — prices, rates like `$/PR`, and shell variables — render as plain text instead of being turned into LaTeX math (#5013) - [Bug fix] Host daemons now recover automatically when a Databricks OAuth token expires during startup. (#5014) - [UI] Document view mode is now a labeled dropdown button instead of an icon-only toggle (#5015) - [Bug fix] Docker and Kubernetes deployments honor `execution_timeout` from server configuration. (#5016) - [UI] The workspace side panel no longer has a separate Shells tab — shells open as closable tabs instead (#5017) - [UI / Bug fix / Feature] Model pickers, the "Default" label, and the composer chip now show exactly the models the claude/codex CLI reports — and a model switch shows a pending spinner until the terminal confirms it. (#5022) - [Bug fix] Codex sessions now show context usage against the effective context window reported by Codex. (#5026) - [UI] Moved the task tracker into the chat as a collapsible “Plan (N/M)” card pinned above the conversation, replacing the separate Tasks side-panel tab. (#5036) - [UI] Removed the margin around the shell in the right-side panel so the terminal fills the panel edge-to-edge (#5038) - [Bug fix] Failed Claude-native sub-agents no longer leave terminal sessions running. (#5040) - [Bug fix] Managed-host relaunches preserve prior host logs for troubleshooting. (#5042) - [Bug fix / Feature] Dormant Kubernetes managed hosts can be resumed instead of leaving sessions permanently offline. (#5046) - [UI / Bug fix] Chat message timestamps now track the latest activity in a turn instead of its start, so long-running turns no longer look 30+ minutes stale (#5047) - [Bug fix] Codex web sessions now retain shell and MCP tools when using translated model arms. (#5048) - [Bug fix] Approval prompts from ACP agents (e.g. Devin) now name the tool and show its (#5050) - [Feature] Approval prompts from ACP agents now offer the agent's own scopes — e.g. "allow (#5053) - [Feature] ACP agents (e.g. Devin) now honor `permission_mode: bypassPermissions` in their (#5056) - [UI / Bug fix] Custom date range picker on the usage page now prevents selecting future dates or inverted ranges. (#5058) - [UI / Bug fix] Codex usage-limit and other terminal turn errors now appear in the web conversation instead of failing silently. (#5060) - [Bug fix / Test/CI] N/A — CI-only change. (#5063) - [Bug fix] OpenAI Agents runs now preserve reasoning item IDs required to replay tool calls on newer models. (#5065) - [UI / Feature] The usage sessions table now shows all models used in a session, not just the primary one — additional models appear as a +N badge with a hover tooltip. (#5069) - [UI / Bug fix] Error banners on failed turns now span the full chat width and no longer show a message timestamp row (#5070) - [UI / Feature] Assign an emoji as a project's icon — from the project header or the sidebar folder menu. (#5099) - [Bug fix] Claude-native sessions no longer silently lose tool calls when authentication fails before a transcript POST is sent. (#5104) - [Test/CI] N/A — test-only change with no user-facing behavior change. (#5106) - [Bug fix] Codex sessions launched from the web no longer get stuck behind the “Hooks need review” terminal prompt when version detection briefly fails. (#5108) - [UI / Bug fix] New sessions remember your last model, effort, and permission settings for each harness. (#5110) - [Bug fix] `omnigent login` to a Databricks workspace now writes a per-workspace `~/.databrickscfg` profile instead of overwriting the shared `DEFAULT`. (#5112) - [Bug fix / Test/CI] Completed chats no longer show a connection-error banner when their host disconnects after the work has finished. (#5113) - [Bug fix] Codex subscription sessions using an older selected model no longer get stuck waiting for an embedded-terminal migration prompt. (#5116) - [Bug fix] The Electron app now returns you to Omnigent when a Databricks workspace navigation lands at the workspace root. (#5125) - [UI / Bug fix] Kept the queued-message strip docked to the composer when a background task is running (#5127) - [UI / Bug fix] Recent servers now appear reliably in the Electron connection screen, with pasted URLs normalized to the server origin. (#5128) - [Feature] Packaged macOS builds can opt into Electron Developer Tools with a local `defaults` setting. (#5130) - [Feature] macOS DMG releases are now signed, notarized, and stapled for stronger download verification. (#5132) - [UI / Bug fix] Electron recent servers now retain Databricks organization links while showing compact server names. (#5133) - [UI / Bug fix] Text copied by terminal apps now reaches your system clipboard in the web terminal. (#5136) - [Bug fix] Kimi Code setup now recognizes pay-per-use API-key auth (Moonshot open platform or the Kimi Code coding endpoint), not just `kimi login`. (#5138) - [Breaking] The deprecated `omnigent[memory]` extra has been removed; use `omnigent[hindsight]` instead. (#5139) - [Feature] Use `omni --profile COMMAND` to print focused CPU profiling results and save the full profile for deeper analysis. (#5141) - [Bug fix] Use `omni --profiling COMMAND` for CPU profiling without conflicting with Databricks `--profile NAME` selection. (#5143) - [UI] The queued-message steer button is now an up-arrow icon with a "Send now" tooltip instead of inline "Steer" text (#5146) - [UI] Completed work sections now use a compact disclosure and vertical activity guide that makes expanded steps easier to follow. (#5154) - [UI / Feature] Desktop update prompts now show the installed and available versions with clearer copy and polished overlay spacing. (#5160) - [Bug fix] A Claude Code session switched to an exact model (e.g. `claude-opus-4-8`) now resumes on that model instead of failing with "not in this host's current model list". (#5167) - [UI] Set and remove a project's emoji icon from the "Rename project" modal, with a combined icon + name control (#5170) - [UI / Bug fix] Fixed the file browser showing no files for directories above or outside the working folder when the app runs behind a reverse proxy (#5174) - [Chore] Native harness launches (`omnigent claude`, `codex`, `pi`, …) notice the host, runner, and terminal becoming ready sooner. (#5190) - [UI] Choose an emoji icon for a project right in the New project dialog (#5209) - [Bug fix] Active native terminal turns no longer lose their harness subprocess when the harness idle timeout expires. (#5212) - [UI / Bug fix] Codex-native sessions can now select Max/Ultra reasoning levels on models that support them (e.g. Sol), instead of silently running at xhigh. (#5217) - [Bug fix] `omnigent resume` now works against servers that key sessions on non-uuid ids (#5218) - [Bug fix] The shell no longer hangs on `exit` after an omnigent codex session ends. (#5228) - [Bug fix] Fixed Codex parallel tool calls getting stuck — all tool outputs now stream immediately instead of stalling for 20+ minutes. (#5229) - [UI / Feature] Manage the active session from a new overflow menu beside its chat-header title. (#5248) - [UI / Bug fix] The Workspace panel stays collapsed across reloads and new chats until you reopen it (#5266) - [UI / Bug fix] A server restart or redeploy no longer marks in-progress sessions as "Runner disconnected unexpectedly", and the stale card clears once the runner is back. (#5269) - [UI / Bug fix] ⌘K opens the command palette while a terminal is focused, and ⌘↑/⌘↓ switch sessions while you're typing in the composer (#5271) - [UI / Bug fix] Embedded terminals no longer garble text after keyboard input during active output, and localhost development previews retain relay-free terminal input latency. (#5275) - [UI / Bug fix] The in-app terminal now reconnects itself after a server restart or redeploy instead of dead-ending on "Bridge closed". (#5277) - [Bug fix] Messages sent from the web chat now reach Claude Code even when the embedded terminal is left in shell mode, a rewind dialog, or a settings panel (#5283) - [UI / Bug fix] Chat errors now show as the standard error pill instead of raw red text. (#5285) - [Bug fix] A Codex session no longer gets stuck on "Native Codex terminal failed to start" after a host restart leaves a stale Codex process holding the session's thread. (#5287) - [Bug fix] A stale model catalog no longer pins yesterday's default when starting a native Claude/Codex session (the CLI's own default is used while the catalog refreshes in the background), and failed native turns now surface the harness's own error text (e.g. `model_not_found: There's an issue with the selected model …`) to the parent session, the session error, and the web instead of a generic "turn failed". (#5288) - [Bug fix] `/compact` on a disconnected native (claude-native) session now wakes the runner and compacts, instead of showing a confusing "no LLM model" error (#5326) - [UI / Bug fix] The workspace "Open new" (+) menu now closes immediately when you launch a shell (#5327) - [UI / Feature] Hovering or tapping the "N background tasks" pill now expands it into a card listing each running background shell (#5328) - [Bug fix] A logged-out page load now makes only its identity and capability checks instead of 11 requests that mostly fail with 401 (#5330) - [UI / Bug fix] File viewer no longer nests a redundant "⋯" menu inside the "⋯" overflow when the toolbar collapses on a narrow panel (#5332) - [Bug fix] Creating an automation/scheduled task with a session-bound agent no longer fails with a 401 on local single-user servers. (#5333) - [UI / Feature] Automations can now set a Claude Code permission mode (e.g. Accept edits, Bypass permissions) per task. (#5346) - [Bug fix] The CLI now starts normally on Windows terminals instead of crashing when selecting a startup theme. (#5370) - [Bug fix] Failure events now parse correctly when a connection drops before response metadata is allocated. (#5371) - [UI / Bug fix] Chat composers no longer flash a redundant native scrollbar while growing. (#5374) - [Bug fix] Older Omnigent clients now explain when a database was migrated by a newer version instead of recommending an impossible schema upgrade. (#5377) ## [v0.10.0] — 2026-08-19 - [Bug fix / Test/CI] Host daemons now honor standard proxy environment variables without forwarding (#1029) - [UI / Feature] Route host- and session-scoped server requests to the replica holding the host's tunnel, and signal `wrong_replica` (HTTP 400 / WS 4400) so clients re-address on a miss. (#2037) - [Bug fix] Keep `serve-mcp` responsive to pings and additional requests during slow tool calls. (#2813) - [UI / Feature / Docs / Test/CI] White-label the web UI from server config with custom names, headings, safe logo assets, favicon, and optional Omnigent attribution. (#2857) - [Bug fix] A transient server hiccup no longer pins a session to the wrong working directory for the rest of the conversation. (#3017) - [Bug fix] Claude SDK agents now discover large MCP tool definitions on demand instead of loading every schema up front. (#3134) - [Bug fix / Docs] Sub-agents no longer inherit their parent's bundle directory (skills, local tools); resolvable children use their own, while unresolvable children never fall back to the parent's (#3567) - [UI / Bug fix] Native-harness sessions no longer leave a stale duplicate of your message (or of the assistant's reply) pinned to the bottom of the web transcript. (#3595) - [Feature] GitHub policy blocks tag pushes (`--tags` / `--follow-tags` / `refs/tags/` refspecs) by default; opt out with `deny_tag_push: false`. (#3620) - [Bug fix] Server URLs and log paths in `omni host status` are now proper clickable links instead of text the terminal has to guess at (#3862) - [UI / Bug fix / Feature] agy sessions now mirror tool calls and sub-agents into the web UI, and no longer duplicate or truncate replies (#3890) - [Bug fix] `force_sandbox` (and any declared `os_env.sandbox`) now actually applies to a Claude Code native session's file/shell tools, not just the terminal process (#3910) - [Bug fix] Native sessions no longer fail with "terminal failed to start" when the host daemon was launched from a directory that has since been deleted (#3974) - [UI / Feature] The server can offer several sandbox providers at once (`sandbox.providers`), and the new-session picker lists one option per provider (#4006) - [Bug fix / Feature / Chore] Switching between conversations is instant — background conversations stay connected, so returning to one shows messages that arrived while you were away (#4113) - [Bug fix] `omnigent pi` now uses each model's real context window and output limit, instead of compacting early and truncating long replies on high-context models. (#4178) - [Feature] Route a host's tunnel, its runners, and its session traffic to one replica so multi-replica deployments keep host-scoped requests sticky. (#4185) - [Bug fix] A custom agent that declares its own provider auth now launches on codex-native instead of stalling on the Codex sign-in screen. (#4208) - [Bug fix] `omnigent server --host 0.0.0.0` with `OMNIGENT_LOCAL_SINGLE_USER=1` no longer 401s every request and 403s the host tunnel; the single-user marker is honored on network-exposed binds, with a warning that the server serves unauthenticated requests (#4224) - [UI / Bug fix] New chats in a project with a default base branch now fork a fresh branch off that default instead of reopening your last-used worktree (#4229) - [UI] New-chat landing header uses tighter Otto sizing and responsive headline scale (#4233) - [Bug fix] Changing effort or model mid-conversation on a Claude Code session no longer risks wedging the terminal or silently keeping the old setting. (#4250) - [Bug fix] `omnigent chat ` can now start a new conversation with an agent registered on the remote server (#4260) - [UI / Bug fix] Collapsed "Worked for …" rows in a chat transcript now sit at an even spacing and draw their full-width divider (#4284) - [UI / Bug fix] Voice dictation now inserts text at your cursor instead of appending it to the end of the composer (#4290) - [UI / Feature] The file panel can now browse anywhere the session can reach, not just the folder it started in (#4306) - [UI / Bug fix] Navigating to another session while a new one is still being created no longer yanks you into the new session when it finishes (#4307) - [UI / Bug fix] New polly and debby sessions now show the same "Starting up…" spinner as claude-code, instead of a "Connecting…" row under the composer (#4312) - [Bug fix] Duplicate-detection comments no longer ask you to close your issue when the matching issue is already closed — an already-fixed match now asks whether you're on a build with the fix, and treats a still-reproducing report as a regression. (#4313) - [Bug fix] Kimi and Hermes sessions launch again — their version checks compared against the wrong version series and rejected every current CLI. (#4314) - [UI / Feature] Organizations can preconfigure Omnigent server URLs through Android managed configuration, and they show up ready to tap in the app's server list. (#4315) - [Feature] `omnigent host --background` starts the local server and registers this machine as a host without tying up a terminal. (#4317) - [UI / Breaking] Reverts the shared-session approval-authority and message-attribution features (#2150 stack); session approvals are again available to any shared editor. (#4318) - [UI] Administrators can preset the iOS app's server URLs with a managed app configuration, so managed users pick their organization's server instead of typing it (#4319) - [Bug fix] Fixed a bug where an archived session (or an archived sub-agent) could be gated as if it had spent nothing, letting a tool call proceed over its actual budget. (#4320) - [Feature] `omnigent start` starts the local server and registers this machine as a host — the on switch to go with `omnigent stop`. (#4321) - [Bug fix / Test/CI] Fix `omnidev` restart loop on Linux caused by non-mutating file access events (#4330) - [Feature / Docs] Issue triage now explains its impact assessment and priority in one bot comment instead of adding severity labels. (#4334) - [UI / Bug fix] Opening the left sidebar no longer squeezes the chat below its minimum width — the browser/workspace panel yields instead and restores its width when the sidebar collapses. (#4337) - [Bug fix] Pi sessions on a Databricks workspace no longer hang when the workspace model list is unavailable — non-Claude models are routed by family, and a model that truly can't be served now says so instead of never replying (#4339) - [Chore] Files in the viewer load faster — workspace-file reads are now gzipped, cutting a 1 MB text file from ~2.3 s to ~1.3 s (#4341) - [Bug fix / Chore] A claude-native session no longer shows "Working…" forever when Claude exits (#4344) - [UI] The sidebar "Needs response" badge now uses the brand accent color (pink by default), matching the unread indicator. (#4346) - [UI] Refreshed modal styling — larger rounded corners, softer drop shadow, and roomier padding (#4347) - [Bug fix] Pi sessions on a proxy that exposes both Anthropic and OpenAI surfaces now send each model to the surface its family speaks, instead of routing everything through Anthropic and hanging (#4348) - [Bug fix] Session snapshots no longer fail when a session contains a malformed legacy agent id. (#4350) - [Bug fix] A session whose message the runner refuses now reports the failure and its reason instead of appearing to finish successfully. (#4354) - [UI / Feature] Hover the collapsed sidebar toggle to peek the conversation list without pinning it open. (#4355) - [Bug fix] Generic-ACP / Goose / Qwen turns that fail now report the exception type instead of a blank "inner executor error: " with no detail. (#4362) - [UI / Bug fix] Messages sent from the chat UI no longer stop reaching the agent after a dropped network request (#4366) - [UI / Chore] The Files panel is now split into separate **Files** (folder tree) and **Changes** (changed files) tabs (#4367) - [UI / Feature] Chat messages now show their timestamp beside the Copy/Fork actions. (#4372) - [Bug fix] A conversation link copied from your browser now works wherever a server URL is expected, instead of failing later with an opaque "Method Not Allowed" crash (#4374) - [UI / Bug fix / Test/CI] Clicking a sidebar session that needs a response no longer runs its title under the "Needs response" tag, and the Inbox count badge now matches the sidebar's pink accent (#4375) - [UI / Bug fix] Maximized workspace panel no longer shows chat content through a transparent background in dark mode. (#4376) - [Bug fix] Agents now inherit your ssh-agent, so git-over-SSH and SSH-cert-authenticated tooling work in agent shells and terminals (#4377) - [Bug fix] The sidebar remembers your session filter across reloads instead of resetting to "All sessions" (#4381) - [Feature / Docs / Test/CI] Blaxel is now available as a sandbox provider for CLI and managed-host deployments. (#4383) - [UI] The Chat/Terminal switcher is now a segmented toggle — both views are visible at a glance and switching takes one click (#4385) - [Bug fix / Feature] `omnigent run --server local` runs against a local server, overriding any configured server default — and the no-AGENT `omnigent run --server ""` no longer fails with `Agent path not found: https:` (#4387) - [UI / Bug fix] Terminal-first sessions return to chat automatically when the runner stops or disconnects, instead of stranding on an empty "No terminals available" terminal view (#4388) - [Bug fix] The `build-omnigent` skill is available again in native `omnigent claude` and `omnigent codex` sessions (#4391) - [Bug fix] A custom ACP agent can declare the environment variables it authenticates with via `env_passthrough`, and a stalled ACP handshake now reports which call timed out instead of failing with an empty message. (#4392) - [Bug fix / Feature] The Copilot harness now authenticates with your existing `gh auth login` session, and a GitHub Enterprise host can be set via `omnigent setup` (#4396) - [Bug fix] MCP server configs can now use `${VAR}` placeholders in the `url` field, not just in `headers` — so a config can be committed to version control without hardcoding the endpoint. (#4398) - [Bug fix] `kimi-native` sub-agents honor `executor.config.yolo: true` (launching `kimi --yolo`) and `antigravity-native` sub-agents honor `permission_mode: bypassPermissions`, so server-spawned workers no longer stall on interactive approval prompts. (#4401) - [Bug fix] Resuming a claude-native session no longer drops a message sent right after the session starts. (#4403) - [Bug fix] A sub-agent session no longer logs a spurious "did not resolve in the parent spec" warning on every turn. (#4435) - [UI / Bug fix] Bulk-select sessions and move them to a project in one action via the new folder icon in the selection bar. (#4452) - [UI] Codex's bypass-approvals option now matches Claude's clean permission UX — no more red warning banners (#4467) - [Bug fix] Compaction snapshots no longer store raw image data, which cuts the size of newly written compacted conversation rows substantially. (#4470) - [UI / Bug fix] The new-session workspace picker now navigates to `~/…` paths and shows a clear error when a typed path doesn't exist (#4480) - [UI / Feature] Harness launch failures now show a clear title, cause, and suggested fix instead of a raw error code and truncated log tail. (#4485) - [UI / Feature] Sub-agents are now auto-assigned readable structured names (e.g. `researcher-1`) and a task-derived display label in the Agents panel (#4489) - [UI] Restored the down chevrons on the new-session composer's chips and made every dropdown trigger show a pointer cursor (#4493) - [UI / Bug fix] Modal dialogs and the workspace "Open new" menu no longer render behind the embedded browser pane (#4500) - [Bug fix] Named `sys_session_send` no longer returns a spurious 404 on the second and later sub-agent sends from a bundled agent (#4501) - [Bug fix] Session search no longer hangs on "Searching…" — content search is now backed by a trigram index and bounded by a timeout. (#4502) - [Bug fix / Test/CI] Fixes an HTTP client resource leak when OpenAI Agents SDK executors shut down. (#4508) - [Bug fix / Test/CI] Honor OmnigentClient timeout for ordinary Python SDK HTTP requests. (#4509) - [Bug fix] Sessions ride out brief runner-tunnel drops (laptop sleep-wake, ingress recycles) without flashing Failed or truncating the streaming reply. (#4516) - [Bug fix] `omnigent` no longer crashes on startup when your shell sets a SOCKS proxy (e.g. `ALL_PROXY=socks5://…`) and the `httpx[socks]` extra isn't installed (#4517) - [UI / Bug fix] Attaching an unsupported file in a new chat now tells you why up front and keeps your message instead of losing it (#4519) - [Bug fix] `omni` now works on machines with an HTTP proxy configured, and reports an unreachable server as a clear error instead of a crash. (#4520) - [Bug fix] Sessions that outlive their 60-minute runner bearer no longer permanently lose runner→server auth when the token re-mint is rejected — the runner now falls back to the machine's SDK/OIDC credential. (#4521) - [Bug fix] Harness logs now go to a file under `~/.omnigent/logs/harness/` (or the runner's log), and a failing ACP turn quotes the agent's own error output instead of dropping it. (#4523) - [Bug fix] An `openai-agents` agent with no pinned model no longer fails with a confusing "install databricks-sdk" error when only OpenAI credentials are missing (#4526) - [Bug fix] Claude native sessions now report per-turn token usage (`gen_ai.usage.input_tokens` / `output_tokens`) to MLflow and other OpenTelemetry backends. (#4530) - [UI / Bug fix / Feature] Move a running session to another machine from the host badge in the composer. (#4531) - [Bug fix] Upgrading omnigent in place no longer breaks harness launches on already-running runners (#4539) - [Chore] The session-search index migration builds its Postgres indexes concurrently, so upgrades no longer block writes while the indexes build. (#4541) - [Feature] The Android app now opens Databricks workspaces on their `/omnigent` app instead of the workspace landing page. (#4543) - [Bug fix] `omnigent host` pointed at a local server that has exited now stops after ~5 minutes with a clear error instead of reconnecting forever. (#4544) - [Bug fix] Runners no longer crash-loop at session start when signal-handler registration fails; they log one warning and keep working. (#4545) - [Bug fix] Session search now returns results instead of timing out on large workspaces. (#4546) - [UI / Bug fix] Modal buttons like Stop session and Clone now show a spinner while the action is running, instead of just greying out. (#4548) - [UI / Bug fix] The desktop server picker moved from the window title bar to the bottom of the sidebar, fixing an overlap with the chat header on narrow windows — and Windows and Linux desktop now have it too (#4551) - [UI] The embedded terminal connects in the background and stays connected across Chat/Terminal flips and recent-session switches, so opening it is near-instant instead of reconnecting every time. (#4552) - [Bug fix] The Android app no longer shows the Databricks workspace navigation bar around Omnigent when connecting to a workspace-hosted server. (#4555) - [UI / Feature] On the macOS desktop app, the sidebar header now shares the title-bar row with the window controls — the empty strip above the sidebar and the redundant wordmark row are gone, and the Collapse/Search/Settings buttons sit beside the traffic lights. (#4557) - [Bug fix] Codex sessions on a ChatGPT-account or API-key login launch again, instead of failing with "model is not supported when using Codex with a ChatGPT account" (#4558) - [UI] Connecting the iOS app to a Databricks workspace now opens Omnigent directly and hides the workspace navigation bar (#4559) - [Bug fix] kiro sessions no longer fail the first message with a connection error when the kiro TUI is slow to start (#4562) - [Bug fix] `omnigent host` now warns once and backs off when a server accepts connections but never responds, waits out (up to 120s) a slow-booting local server instead of stranding it — stopping it if it truly fails — recovers fast runner starts after a zygote crash, and no longer leaves empty log files behind. (#4563) - [Bug fix] Named `sys_session_send` no longer returns a spurious 404 on the second and later sub-agent sends from a bundled agent (#4564) - [UI / Bug fix] Deleting a session removes it from the sidebar immediately instead of waiting for the server to finish tearing it down (#4566) - [Bug fix] Session search no longer times out on large workspaces. (#4567) - [UI / Bug fix] Fixed iOS controls rendering under the status bar on Databricks workspace-hosted servers (#4568) - [UI / Feature] You can now leave a session someone shared with you — pick "Leave session" from its sidebar row menu to clear it from your sidebar without asking the owner (#4571) - [UI / Bug fix] The workspace Files panel now shows hidden files by default, and its eye icon shows whether they are visible rather than what clicking will do. (#4575) - [Bug fix] Switching a session's agent now updates the tools its native harness can call, instead of leaving the previous agent's tools in place (#4576) - [Bug fix] The native pane reaper no longer kills a terminal that is actively producing output when the harness status pipeline stalls; it now checks tmux's own activity clock before reaping. (#4577) - [Bug fix] A silently stalled claude-native transcript forwarder now self-recovers within five minutes and logs exactly where it stalled, instead of freezing mirroring and session status indefinitely. (#4578) - [Bug fix] A claude-native transcript forwarder that stops — cancelled, crashed, or returned — now always logs an attributed exit line instead of dying silently. (#4579) - [Bug fix] A stray hook event from another Claude session can no longer silently redirect a claude-native session's transcript mirroring; session identity now changes only via SessionStart announcements. (#4580) - [Bug fix] `omni claude` streaming, statusline, and typing during tool-running turns now respond at native speed: hook subprocesses skip the framework's eager import graph, and the blocking hook path runs as shell + a loopback `curl` relayed by the long-lived runner instead of spawning a Python interpreter per event. (#4582) - [UI / Bug fix / Feature] Fork a sub-agent to promote it into a top-level session of its own. (#4584) - [Bug fix] Upgrading omnigent in place no longer breaks runner launches on already-running hosts (#4587) - [UI / Bug fix] Native-harness sessions no longer briefly drop your in-flight message bubble when an interrupt marker is reconciled at the same time. (#4591) - [UI / Bug fix / Chore] Native assistant text now reconciles cleanly with committed transcript messages without duplicate streaming output. (#4593) - [Bug fix] The embedded browser pane no longer lingers over the welcome screen after switching or disconnecting from a server (#4595) - [Chore] Removed the "A new version of Omnigent is available" prompt and browser PWA install support; the desktop and mobile apps remain the installable clients. (#4617) - [Chore] OpenTelemetry exporters and automatic instrumentors are now installed through `omnigent[tracing]` instead of the default package. (#4621) - [Bug fix] Development builds no longer show an update reminder for the matching final release. (#4628) - [Bug fix] `omni host` no longer prints a zygote traceback — and keeps copy-on-write runner forking — when started from a directory that contains an `omnigent` checkout (#4631) - [UI / Bug fix] Clicking a file an agent mentions in its reply now opens it, including `path:line` citations and markdown links (#4644) - [UI / Bug fix] Fixed long unbroken text or inline code in chat messages overflowing or getting cut off at narrow window widths. (#4651) - [Bug fix] Fixed a duplicate assistant message that could appear after reconnecting to a Claude Code (native) session (#4656) - [Bug fix / Chore] Resuming or forking a Claude Code session containing screenshots no longer duplicates image payloads into metadata and inflates the request past the context limit. (#4659) - [UI / Bug fix] Archiving the current session now redirects to the home page instead of leaving you on the archived session (#4671) - [UI / Feature] Usage page shows session costs, daily spend timeline, and breakdowns by harness and model (#4673) - [Bug fix] Sessions whose workspace is an omnigent checkout no longer run a different omnigent than the one you installed (#4688) - [Bug fix] `omnigent run --harness acp:` now launches the ACP agent you asked for instead of the first one configured (#4689) - [UI / Bug fix] The desktop app now auto-selects this machine after "Run on this machine" (#4691) - [UI / Bug fix] The managed sandbox host option (and other capability-gated UI) now appears on its own after a slow `/v1/info` probe, instead of staying hidden until a page reload. (#4694) - [Chore] Runner-backed resource APIs now avoid redundant session reads, improving responsiveness under load. (#4695) - [Bug fix] ACP agents now report cached-read tokens, so token usage reflects what was actually billed (#4699) - [Bug fix] Built-in ACP agents like Grok Build now appear in `omni setup` instead of being invisible (#4700) - [Bug fix] `omnigent run --harness acp:` now works with remote servers by resolving the slug client-side and embedding the full agent config in the spec. ACP agent settings (session_id_mode, send_model, omnigent_mcp, env_passthrough) are now preserved through embedding. (#4702) - [Bug fix / Feature] `/model` now switches an ACP agent's model mid-conversation instead of being ignored, and keeps the chat history (#4703) - [Bug fix] A host name set in `config.yaml` is now kept when no `host_id` is present — the id is generated instead of overwriting your chosen name. (#4708) - [Bug fix] `omnigent resume` now lists only your own sessions, not ones shared with you (#4709) - [UI / Bug fix] The Inbox count badge now uses the same text and background colors as the selected session item in the sidebar (#4714) - [UI / Feature] Multi-session delete now shows a table of worktree branches you can pick to clean up (with a tri-state select-all header), instead of blocking branch cleanup behind single-session delete (#4715) - [Bug fix] OpenCode 1.18.x installs are now accepted; the version gate no longer rejects users who installed OpenCode via its official upstream route. (#4725) - [UI / Bug fix / Chore / Test/CI] Approval prompts now name the assistant that asked (Claude Code, Codex, Cursor, Antigravity, Kiro, Goose, Qwen Code, Hermes) instead of an internal policy id (#4735) - [UI / Bug fix] Opening the workspace folder browser no longer flashes an "Up one level" tooltip over the listing (#4742) - [Feature] Kubernetes sandbox runners now use Jobs with automatic restart on crash (up to 3 retries) and a liveness probe, replacing bare Pods that required manual intervention after a failure. (#4744) - [UI / Bug fix] The chat transcript now detects a silently dead live connection and reconnects on its own — worst case 45 s, instantly on tab refocus — instead of freezing until the page is reloaded. (#4750) - [Bug fix] Chat messages sent while the terminal's Claude composer is covered by the ctrl+r history search or a hand-opened `/model` picker now dismiss the overlay and deliver, instead of silently vanishing (#4751) - [Bug fix] Creating a session from the web UI is faster end-to-end: the chat page opens immediately and the terminal is ready sooner — including the first session after a host restart, which no longer pays a multi-second warmup. (#4752) - [UI / Bug fix] Answered question and plan cards stay outside the "Worked for" fold, read as settled, and survive a page reload (#4760) - [UI / Feature] Web terminals now attach directly over loopback when the runner is on the same machine as the browser, cutting keystroke echo from ~250 ms to under 10 ms against a remote server. (#4763) - [UI / Bug fix / Test/CI] The Sessions filter is now always visible, so session filtering is discoverable without hovering the sidebar header. (#4764) - [Feature] New `OMNIGENT_REQUIRE_WRAPPER` env var lets operators require the CLI be run through a wrapper (e.g. `isaac omni`) and refuse direct `omni` calls (#4766) - [UI / Bug fix / Chore / Test/CI] Chat output stays visible above a growing composer; bottom-following readers remain pinned while readers who scroll up—even just 50px—keep the same visible content. (#4767) - [Bug fix] `omnidev --vite-port` once again starts the frontend on the requested port. (#4770) - [Feature / Test/CI] macOS desktop app now ships an Intel (x64) build alongside Apple Silicon. (#4772) - [UI / Feature / Docs] Usage and web-driven harness setup can now be enabled per deployment with `OMNIGENT_FEATURES`. (#4775) - [UI / Bug fix / Feature] In-chat errors now provide expandable diagnostics and recovery-aware Retry, copy, and dismiss actions without replaying failed input, and cancelled retry requests no longer leave stale recovery results cached. (#4787) - [Feature / Docs] ArgoCD quick-start overlay for deploying Omnigent with the kubernetes sandbox provider (#4788) - [Bug fix] `omnigent[antigravity]` no longer crashes with a protobuf gencode/runtime version mismatch on startup. (#4795) - [UI / Bug fix] Server URLs in copyable connection and reconnect commands are now safely quoted. (#4817) - [Bug fix] Resumed Codex conversations now keep the authentication provider selected in Codex configuration. (#4818) - [Bug fix] `omnidev omnigent` commands now keep runtime state and configuration inside their development pod. (#4822) - [Bug fix] Native Windows: harness CLIs (codex, pi, claude-sdk, antigravity) no longer hang on spawn due to missing `SYSTEMROOT`/`COMSPEC`; Windows drive-letter workspace paths (`C:\…`) are now accepted; pre-release harness CLI versions (e.g. `0.146.0-alpha.9.2`) no longer fail the version gate. (#4886) - [UI / Feature] Background tasks that keep running after a turn ends now show as a pill above the composer instead of a "Working…" spinner (#4893) - [UI / Bug fix] Maximizing the workspace panel in the desktop app no longer tucks its tab icons under the macOS window controls. (#4897) - [Feature] Configured ACP agents (e.g. Devin) and installed ACP CLI harnesses (e.g. Grok Build) now appear in the web New Chat picker, like the native harnesses (#4909) - [Bug fix] Managed codex, claude-sdk (Polly/Debby), and pi harnesses resolve their launch model from the workspace's Unity Catalog model services, so they no longer fail against a Databricks AI Gateway that has retired the legacy `databricks-*` model namespace (#4915) - [UI / Feature] Devin is now a built-in harness — set it up in `omni setup`, launch it with `--harness devin` or from the New Chat picker, no `acp:` config needed (#4920) - [Bug fix] `omni setup` and the New Chat picker no longer show a duplicate — or silently ignore — a built-in ACP harness you configured yourself under the same name; your own command wins. (#4927) - [UI] Chat error banners are now a compact centered pill with inline Retry, matching the design prototype (#4931) - [UI / Feature] The chat header now shows the conversation's name, its project folder, and the sub-agent path, and title bars are a consistent 48px. (#4940) ## [v0.9.0] — 2026-08-11 - [UI / Bug fix] Recent servers remain one-click connectable and now include a separate copy action. (#2555) - [Feature] New `nimble_extract` and `nimble_research` builtins: pull structured web data through a (#3117) - [Bug fix] Claude SDK sessions no longer inline base64 image/document tool results into replayed history, guarding against context overflow on resume (#3120) - [Bug fix] Session metadata now exposes the last persisted activity time so orchestrators can detect running sessions that have stopped advancing. (#3279) - [Feature / Docs] Agent YAML now supports `sandbox.type: auto` to explicitly select the platform-default sandbox. (#3339) - [Feature / Breaking] Managed runner Pods are now labelled with the agent they are running, so admission policies and Pod selectors can target a single agent's sandboxes. **Breaking:** session create and patch now reject client-supplied `omnigent.sandbox.*` labels, a namespace reserved for server-internal sandbox lifecycle state. (#3361) - [Bug fix] Conversation retrieval uses sqlite index. (#3451) - [Bug fix] The GitHub and working-directory policies now gate commands wrapped in `sudo -u`, `env -i`, `command -p`, `time -p` and `exec -a` — including bundled short options like `sudo -nu root` — instead of letting them through (#3559) - [Feature] GitHub policy blocks force-push (`--force` / `-f` / `--force-with-lease`) by default; opt out with `deny_force_push: false`. (#3570) - [Bug fix] `omni server start` works again as a deprecated alias for `omni server --background`, fixing "Start locally" on desktop clients older than v0.7.0. (#3578) (#3597) - [Bug fix] Codex sessions opened from the desktop no longer time out while waiting for a hidden project-trust prompt. (#3709) - [UI / Bug fix] Archiving a session no longer waits for its runner to stop — the row leaves the sidebar immediately while the server stops the session in the background (#3783) - [UI / Feature] Completed turns in the chat view fold their working steps behind a "Worked for Xs" row, so the final answer is where reading starts (#3786) - [UI / Bug fix] Forking a session in a project now files the clone into the same project, and it appears in that folder immediately (#3793) - [Bug fix] Project creation now works on Databricks Apps deployments — the entrypoint wires the project store so the Projects API is mounted. (#3866) - [Bug fix] Antigravity workers now wait for model initialization before starting a fresh conversation. (#3878) - [Bug fix] `omnidev` no longer fails to start when a global `UV_PYTHON` points at an unsupported interpreter (#3883) - [Chore] DELETE THIS WHOLE SECTION — internal runtime tuning, no user-facing change. (#3901) - [Feature] DELETE THIS WHOLE SECTION — internal runner infrastructure, no user-facing change. (#3921) - [Bug fix / Test/CI] The desktop app's version now tracks the release version automatically (previous releases shipped the desktop shell still reporting 0.6.0) (#4005) - [Feature] Database observability integrations can identify semantic FileStore and ConversationStore queries. (#4007) - [Bug fix] Long context compaction no longer fails with a 240s idle-watchdog timeout on near-full sessions (#4013) - [Bug fix] Managed-host wake now reports launch progress ("Starting host") instead of a frozen "Provisioning sandbox" band. (#4016) - [Bug fix / Feature] `omnigent run --profile ` authenticates a remote `--server` with a named Databricks profile (enables headless service-principal access to a deployed app) (#4017) - [UI] Text and borders now use the Zinc neutral palette. (#4019) - [UI / Chore] The sidebar and side panel now sit flush against the window edges, with the background gradient moved onto the sidebar. (#4020) - [UI] Tightened body and chat text to the design's 13/18 type scale. (#4021) - [Bug fix] Fixed a bug where a transient IP ACL block mid-session could permanently brick the runner's token factory, requiring a manual restart to recover. (#4024) - [Bug fix] `omnigent host` now survives a dropped VPN — a 401/403 on an already-connected host retries and auto-reconnects instead of exiting (#4025) - [UI / Bug fix] Error messages that mention environment variables like `$LLM_API_KEY` no longer render as garbled math (#4026) - [Bug fix] Native Codex and Claude provider credentials are kept out of child process arguments. (#4030) - `omni host status` is significantly faster when stale daemon records have accumulated. (#4031) - [Feature / Docs / Test/CI] New issues now receive duplicate guidance; high-confidence duplicates are labeled and linked, with automatic closure available behind a default-off repository variable. (#4037) - [UI / Bug fix] Switching between two terminal-view sessions no longer shows the previous session's stale terminal history (#4043) - [UI / Bug fix] The landing screen headline has a new look, and the sidebar is no longer transparent over the conversation on narrow screens. (#4052) - [UI / Bug fix / Feature] Sessions can now be filtered by All, My, Shared, or Archived from the Sessions heading, and the Projects menu offers both Expand all and Collapse all. (#4055) - [Feature / Chore / Test/CI] Database operations now expose stable semantic query names for tracing and logging. (#4059) - [Bug fix] Approving a plan from the web UI now works for Claude Code sessions, including "Yes, and use auto mode" (#4067) - [Bug fix] The "Starting MCP servers" line in Codex sessions now clears as soon as the agent starts working, instead of lingering for the whole first turn (#4071) - [Feature] Boxlite sandboxes support a configurable disk size via `sandbox.boxlite.disk_size_gb` (#4072) - [Bug fix] `brew install omnigent` works again, and installs prebuilt wheels instead of (#4080) - [Bug fix] Claude sessions routed through the Databricks AI gateway now send the `x-databricks-use-coding-agent-mode` header the gateway requires (#4082) - [Feature / Docs / Test/CI] Comment `/reopen` on a closed pull request to reopen it yourself (#4084) - [UI / Bug fix] A disconnected host now always shows its name with a red dot in the composer, and clicking it opens the reconnect instructions (#4090) - [UI / Bug fix / Test/CI] Reasoning indicators now stay stable during active turns instead of switching between thinking and elapsed-time labels. (#4091) - [Bug fix] Fix host tunnel disconnecting with "ping timeout" when a harness CLI probe hangs during the readiness refresh (#4092) - [UI / Bug fix] The composer no longer briefly shows the previous session's model when you switch between Codex and Claude Code sessions (#4093) - [UI / Bug fix] The "new session in project" composer now picks up a project's edited default settings immediately, without having to click away and back. (#4097) - [Bug fix] Pi and Pi-native no longer fail with a 404 when a model ID like \`system.ai.claude-opus-5[1m]\` is configured against the Databricks AI Gateway. (#4105) - [UI / Bug fix] [UI] Chat messages no longer crowd the conversation tick rail on narrow layouts (#4106) - [UI / Feature] The harness picker now leads with the fully supported harnesses, Claude Code and Codex, and promotes any harness you've launched before out of the "More" group. (#4107) - [UI / Feature] Adds an "Execution logs" debug column to the conversation page when \`?debug=1\` is in the URL, letting developers inspect raw session items for the main thread and any subagents. (#4109) - [UI / Feature] Adds a live SSE event viewer to the execution logs debug panel (`?debug=1`) — click the **SSE** tab to see raw stream events as they arrive from the server. (#4111) - [Feature] Issue rankings now use a deterministic, explainable severity and component scoring model. (#4117) - [Feature] Issue-priority rankings can now be generated as a paused, review-first Databricks job. (#4118) - [Feature] Issue prioritization can safely propose and apply severity, priority, and component labels without overwriting maintainer judgment. (#4119) - [Feature] Dashboards can query the latest issue-priority ranking through one stable Unity Catalog view. (#4120) - [UI / Bug fix] Inline code and other small text no longer render undersized in the web UI (#4122) - [UI] Assistant message actions now stay hidden until you hover the response (#4123) - [UI / Bug fix] Switching conversations shows a loading spinner again instead of painting a (#4124) - [UI / Bug fix] Shell tabs now persist per session — opening a shell, switching sessions, and coming back keeps the tab open (#4125) - [Feature] Add `dev/resolve-agent`: resolve a repro-agent reproduction by reviewing an (#4127) - [Bug fix] Claude Code sessions with a background task running no longer queue new messages — they start a fresh turn immediately. (#4132) - [UI] The composer's send button is now a rounded square with a full-size up arrow, and the home-page composer starts at a single row. (#4134) - [Bug fix] `omnigent codex` now keeps the terminal's session link and the exit `--resume` (#4138) - [UI] The harness selector in the composer is now a single split button — hovering either the harness name or the settings gear highlights the whole control. (#4142) - [Chore] N/A — internal repository organization only. (#4149) - [UI / Chore] Interface font size now scales captions, descriptions, and menu subtitles along with body text (#4150) - [Bug fix] Policy-evaluation failures now report the underlying cause instead of an opaque `502` page. (#4154) - [Bug fix] A managed sandbox whose host process crashes now restarts it in place, keeping (#4155) - [UI / Bug fix] Steering a native session mid-tool-use no longer shows a raw "[Request interrupted by user]" line and a blank bubble — the interruption renders as a muted marker and your attachments stay on your message. (#4160) - [UI / Bug fix] The chat composer no longer pushes the conversation around when you add newlines with Shift+Enter (#4161) - [UI / Bug fix] Unarchiving a session from Settings now opens it, instead of leaving you on the settings page. (#4171) - [UI / Bug fix] Scheduled /loop iterations in claude-native sessions now render as separate turns with their own "Worked for" folds that stay closed between ticks (#4174) - [Bug fix] Runner tunnel HTTP 401 errors now suggest stopping stale host instances with `omnigent stop`. (#4175) - [UI / Bug fix] [UI] New sessions open right away instead of waiting for the runner to start (#4183) - [UI / Bug fix] Conversation images load in parallel, stay cached between visits, and no longer (#4187) - [UI / Bug fix] The chat view no longer loses its working indicator mid-session on Claude Code sessions, and says when the agent is parked on a prompt. (#4195) - [UI / Bug fix] The sidebar's Pinned and Projects sections now stay put when you switch the (#4200) - [Bug fix] Archiving a session now also unpins it, so it won't reappear pinned when unarchived (#4202) - [UI / Bug fix] Scrolling back through a conversation no longer fights you when older messages load (#4204) - [UI / Feature] Projects can set a default base branch that pre-fills when starting a new worktree session (#4205) - [UI] Composer footers no longer show a shaded tray behind the status chips (#4215) - [Bug fix] `omni host stop` now tells you to retry with `--force` when the session-list pre-check times out (#4216) - [UI / Feature] Shared elevation shadows for composers, menus, cards, and tooltips (#4218) - [UI] Chat header icon controls are smaller (24px) and more evenly spaced (#4219) - [Feature / Docs] Issue prioritization can now grade maintainer issues and refresh rankings with short-lived GitHub App credentials. (#4221) - [UI] Sidebar uses tighter padding and gaps around the header, nav, and session list (#4222) - [Feature] Duplicate-detection comments now ask the reporter to close their own issue when (#4223) - [UI] New Chat composer footer selectors no longer show chevron icons (#4225) - [UI] Dropdowns and menus use one consistent popup style across the app (#4228) - [Bug fix] Fix a spurious "runner didn't come online in time" failure when starting a session in a large git workspace, by running `git status` off the runner's event loop. (#4259) - [Bug fix] Fixed a hermes-native session losing an assistant turn's tool call or prose when a mirror post failed partway through a message row (#4261) - [UI / Bug fix] Sending a message now works immediately while an agent's background tasks are still running, instead of queueing behind a "Steer" button, and the sidebar no longer shows a session as busy for background work alone (#4266) - [UI / Bug fix] Claude Code / Codex / OpenCode sub-agent sessions now show the product name instead of the (#4267) - [UI / Bug fix] Renaming a session in the sidebar no longer flashes the previous name as the edit field closes (#4277) - [UI] New-session and chat surfaces now use consistent navigation, composer, and interaction styling. (#4288) - [UI / Bug fix] Opening a session no longer keeps loading older messages and shifting the transcript while you read (#4291) - [Bug fix] A runner disconnecting no longer marks finished sub-agents as failed — the Agents tab keeps their "Done" state and shows an interrupted session as a recoverable "Disconnected" instead of a red "Failed". (#4293) - [Bug fix] Runner errors that tell you to check the logs now name the exact log file to open (#4295) - [Bug fix] Signing in to Databricks-hosted deployments on Android now happens in the app (#4296) - [UI / Breaking] Reverted the shared-session approval-authority and message-attribution features. **Breaking:** session approvals are once again available to any shared editor, not just the session owner. (#4318) - [UI] The Chat/Terminal switcher is now a segmented toggle — both views are visible at a glance and switching takes one click. (#4385) - [Bug fix] claude-native routing now counts managed-settings AI Gateway backing, so gateway-backed claude-native sessions route correctly. (#4491) - [Bug fix] MCP tool search stays enabled for gateway-backed native sessions. (#4533) - [Bug fix] The runner preserves CLAUDE_CODE_USE_GATEWAY / ENABLE_TOOL_SEARCH, keeping tool search working for gateway-backed Claude sessions. (#4553) - [Bug fix] Codex sessions on a ChatGPT-account or API-key login launch again, instead of failing with "model is not supported when using Codex with a ChatGPT account". (#4558) ## [v0.8.2] — 2026-08-04 - [Bug fix] Claude sessions routed through the Databricks AI gateway now send the `x-databricks-use-coding-agent-mode` header the gateway requires (#4086) ## [v0.8.1] — 2026-08-03 - [UI] Reverted the v0.8.0 "Chat/Terminal switcher in the header" change; the switcher returns to its previous location. (#3931) ## [v0.8.0] — 2026-08-03 - [Bug fix] Cursor YOLO sessions no longer stall piloted parents on mirrored tool-approval cards when Cursor leaves a lingering pending gate. (#2338) - [Feature] codex-native startup-timeout errors now name the resolved provider/model routing (and the login-fallback case) instead of pointing at the runner log (#2843) - [UI / Bug fix / Feature] Pi can now create task plans and display them in the shared Tasks panel without requiring an optional Pi extension. (#2884) - [Feature] `detect_loop` builtin policy catches agents stuck retrying the same tool call and prompts for approval to break the loop (#3158) - [Feature] New `detect_thrashing` builtin policy detects when an agent is stuck in a failure loop and alerts the user to intervene. (#3160) - [Bug fix] kimi sub-agents now report completion to a parent orchestrator instead of leaving the fan-out waiting forever. (#3166) - [UI / Bug fix / Chore / Test/CI] Conversations show their newest messages immediately, pin the latest turn below the header, and load older context smoothly near the top. (#3228) - [Docs / Chore / Breaking] The `run__native` launchers accept a uniform `extra_args`; the per-harness `_args` keyword is deprecated and will be removed in 0.9.0. (#3244) - [Bug fix] Intelligent routing no longer drops the first message on a new claude-native session (#3257) - [Feature] `linux_bwrap` sandboxes and their egress rules now run on the Databricks Lakebox backend. (#3258) - [Feature] `sandbox.kubernetes.secret_mounts` projects a Secret as a rotation-friendly read-only file volume on the runner (#3280) - [Bug fix] Session cost panel now shows a per-model breakdown for sub-agents/second heads (e.g. Debby's GPT head, Polly's codex sub-agents) running on an unpinned codex model, instead of folding their usage into the total with no per-model entry. (#3287) - [Bug fix] Fix `antigravity-native` readiness detection for `agy` CLI installs on macOS where OAuth credentials live in Keychain (#3289) - [Bug fix] Fixed a race condition where deleting two admins at nearly the same time could leave a deployment with zero admins and no way to recover through the API. (#3304) - [Docs / Chore] Resuming a goose / hermes / antigravity / qwen / opencode native session now attaches to the live TUI instead of double-posting each message through the Omnigent REPL. (#3314) - [UI / Feature] Workspace rail now shows files and shells as editor-style tabs, opens shells in-rail instead of replacing the chat, adds a full-screen toggle, and adds a "+" menu for creating shells with a remembered type picker (#3333) - [UI / Bug fix / Feature / Test/CI] `omnigent setup` can import OpenClaw/acpx coding agents from an auto-detected or user-selected config into the generic ACP harness picker, and `omnigent run --from-openclaw ` can try one without saving it. (#3354) - [Feature] Polly can launch supported Claude and Codex implementation children in goal mode. (#3362) - [Bug fix] Claude sessions started with a model alias (e.g. Opus) no longer fail on gateway setups that can't pin the alias — the launch resolves to a routable model id. (#3378) - [Feature] `omni setup` now supports signing in to Antigravity with Google OAuth through `agy`, alongside Gemini API keys. (#3391) - [UI / Feature] Archived sessions in Settings are now grouped by date (Today, Yesterday, Previous 7/30 days, month/year) for easier browsing. (#3394) - [UI / Bug fix] Subagent graph view nodes are now clickable and navigate to the selected session. (#3395) - [Bug fix] Dedupe codex-native's per-session plugin cache to reclaim disk (#3401) - [Bug fix / Test/CI] Shared-session sub-agent completion notices are attributed to the collaborator who dispatched the sub-agent. (#3409) - [Bug fix / Test/CI] N/A — test-only change. (#3410) - [Bug fix / Test/CI] Codex sessions keep their selected permission mode when resumed on a replacement host. (#3411) - [Bug fix] Only session owners can approve tools that run with owner credentials in shared sessions. (#3416) - [Bug fix] Fixed a bug where a malformed or unrecognized tool-call payload on certain harnesses (notably OpenCode) could silently bypass a configured tool-call policy instead of being blocked or asked. (#3418) - [Bug fix / Feature / Docs / Test/CI] ACP agents can opt out of Omnigent’s MCP relay with `omnigent_mcp: false`, enabling compatible OpenClaw Gateway ACP registrations. (#3420) - [Feature / Docs] Shared-session agents can distinguish who wrote each message without changing whose credentials execute the session; operators can hide model-visible author labels with an environment flag. (#3422) - [Bug fix] `/model` and the startup header no longer name an Omnigent provider and model for ACP-backed sessions, which run on the agent's own auth and model. (#3431) - [Bug fix] Session tokens saved by `omnigent login` are now created owner-only, so a JWT is never briefly world-readable on first login, and an interrupted write no longer discards every stored token. (#3441) - [Feature / Docs / Chore / Test/CI] Model selection can now represent provider choices through stable intents and normalized capability metadata. (#3443) - [UI / Feature] Session owners can grant trusted collaborators permission to approve privileged actions without transferring ownership; ordinary editors can reject but cannot approve. (#3446) - [Bug fix / Feature / Docs / Chore / Test/CI] Default model selection now follows the active provider catalog instead of release-specific model names baked into runtime harnesses, while retaining general-purpose selection policy and Databricks gateway routability. In cold-cache Databricks environments without GitHub egress, configure `executor.model` or a provider `models.default`. (#3448) - [Feature / Docs / Chore / Test/CI] Smart routing now chooses only from models discovered on the active runner instead of falling back to release-specific model names. (#3450) - [Feature / Docs / Chore / Test/CI] The Kiro model picker now follows the models and metadata reported by the installed Kiro CLI. (#3452) - [Feature / Docs] Minimal `omnigent run` agents now discover their default model instead of using a release-specific built-in endpoint. (#3455) - [Feature / Docs / Test/CI] Provider setup and unconfigured provider runtimes now select current catalog models instead of release-specific built-in defaults, and fail with explicit configuration guidance when discovery is unavailable. (#3456) - [Docs / Chore] The Kimi launcher example now respects the default model configured in Kimi Code. (#3457) - [Bug fix] `omni resume` now accepts a conversation id pasted with stray punctuation (trailing period, quotes, backticks) instead of crashing (#3465) - [UI / Bug fix] Sidebar New session, Automations, and Inbox icons now sit on the same left column (#3468) - [Chore] Android app now targets Android 16 (API 36) to stay compliant with Google Play's (#3470) - [Feature / Test/CI] Nightly prerelease builds: every night a `X.Y.Z.devYYYYMMDD` tag of main is cut automatically; install or update with `scripts/update_nightly.sh` or `omni upgrade --nightly` (#3475) - [Bug fix / Breaking] Agent CLIs (qwen, goose, kimi, hermes, and generic ACP agents) no longer receive unrelated host credentials such as cloud tokens and other providers' API keys; an agent that authenticates from a variable outside its own family now declares it in `os_env.sandbox.env_passthrough`. (#3479) - [UI / Bug fix] Conversation sidebar text now scales with the Interface font size setting (#3480) - [Bug fix] Fixed two `claude-sdk` steering bugs: messages sent during an active turn were answered one turn late (a permanent chat desync), and steering several messages at once dropped all but the last. Steered messages are now buffered correctly and all of them reach the model. (#3484) - [Bug fix] Fix the first message being silently dropped when a session resumes on a managed sandbox / lakebox (#3488) - [UI / Bug fix] The workspace file view keeps its scroll position — both the file tree and the open file — when you switch between sessions (#3490) - [UI / Bug fix] Deleting a pinned session now removes it from the sidebar's Pinned section immediately, and sidebar rows no longer grow or shift while being deleted or renamed (#3492) - [Chore] Faster initial load — syntax-highlighting language grammars now load on demand instead of all upfront. (#3496) - [UI / Feature] Markdown file previews render fenced Mermaid diagrams. (#3498) - [Bug fix / Feature] Antigravity (`agy`) sub-agents now reliably receive their first turn, get their approvals dismissed in the terminal, and stop showing as still-running after they have finished. (#3499) - [Docs / Chore] qwen-native's terminal-start error label now reads "Qwen Code" (consistent with the other native harnesses) instead of "qwen". (#3500) - [UI / Bug fix] Terminal view scrolling now works with macOS trackpads and with TUIs that enable mouse tracking at startup (OpenCode, Claude Code) (#3510) - [Bug fix] Runners now retry login-page redirects with refreshed credentials instead of exiting, so a hosted session survives an expired bearer (e.g. after the machine slept through a token's lifetime) and reconnects on its own. (#3511) - [UI / Bug fix] The chat view shows the "Starting up…" spinner while a message is waking a disconnected runner, instead of nothing until the runner boots; the sidebar row shows a spinner while a session is starting up (#3514) - [UI / Bug fix] Renaming a session in the sidebar no longer hits the wrong row when the list reorders — row order holds while the pointer is over the list or a rename is in progress (#3515) - [UI] Collapsed tool runs in the chat view are labeled by what they did ("Ran 1 shell command, read 2 files") instead of "See N steps" (#3518) - [Feature] Sandbox dotfile hiding is now top-level only by default (opt into the full-tree walk with `cwd_hidden_scan_recursive: true`), and `mask_paths` hides named files or folders. Untrusted-tree sandboxes that relied on recursive masking should set `cwd_hidden_scan_recursive: true` on upgrade. (#3519) - [UI / Bug fix] Cloning a session that runs in a git worktree now pre-fills the original repo with the worktree branch (instead of the worktree path as the working directory), and the clone dialog blocks creation when the picked working directory doesn't exist on the host (#3521) - [Bug fix] `omnigent sandbox create --provider openshell` no longer crashes against openshell SDK >=0.0.86; workspace is configurable via `sandbox.openshell.workspace` or `$OMNIGENT_OPENSHELL_WORKSPACE` (defaults to `"default"`). (#3524) - [Bug fix] Shared-session agents distinguish speakers without treating claimed roles as authorization. (#3527) - [Bug fix] Direct `omnigent.llms.Client` Anthropic reasoning requests now select adaptive or fixed-budget thinking from live model capabilities. (#3529) - [Chore / Test/CI] N/A — internal lint cleanup. (#3545) - [Bug fix / Chore / Test/CI] N/A — internal lint cleanup. (#3546) - [Chore / Test/CI] N/A — internal lint cleanup. (#3548) - [Chore / Test/CI] N/A — internal lint cleanup. (#3549) - [Bug fix / Docs / Chore] Model context limits now follow live provider catalog maximum-input metadata instead of adding output capacity or relying on stale built-in model IDs. (#3551) - [Test/CI] N/A — internal CI enforcement only. (#3552) - [Bug fix] User messages no longer risk a React hook-order crash when changing from a system marker to regular content. (#3553) - [Chore] N/A — internal code-quality cleanup only. (#3554) - [UI / Feature / Test/CI] Choose a Codex model before starting a Web UI session (#3556) - [Chore] N/A — internal code-quality cleanup only. (#3571) - [Bug fix / Docs / Chore] Pi now routes Databricks models through the API advertised by the live model catalog instead of a release-specific model allowlist. (#3572) - [Bug fix] Bulk conversation actions now report structured errors when only some items fail. (#3573) - [Chore] N/A — internal code-quality cleanup only. (#3574) - [Chore] N/A — internal code-quality cleanup only. (#3575) - [Feature] `omnigent import --force` replaces a previously imported chat with the latest local transcript. (#3576) - [UI / Feature] Subagent graph panel now has zoom in, zoom out, and fit-to-view buttons for easier navigation of large agent trees (#3583) - [UI / Bug fix] Change a session's model and effort from the config gear while the session is asleep — the change is saved immediately and applies when the next message wakes it. (#3584) - [Feature / Test/CI] Add a Locust WebSocket load test (`dev/loadtest/`) with a one-command runner and result summary (#3591) - [Feature] Sandbox now hides dotfiles (`.env`, `.aws`, `.ssh`, ...) under `write_paths` roots, not just `cwd` and `read_paths` (#3596) - [Test/CI] N/A — internal CI enforcement only. (#3600) - [Feature] GitHub policy blocks destructive operations (deletes) by default across MCP tools, `git push --delete`, and `gh * delete`; opt in with `allow_destructive: true`. (#3622) - [Feature / Chore] The Cursor model picker now follows the models advertised by your installed Cursor CLI. (#3624) - [Feature / Docs / Chore] Pi gateway sessions now list the models currently available from the workspace instead of a release-specific bundled menu. (#3629) - [Docs / Chore] Setup and tool help no longer recommend release-specific model ids. (#3630) - [Feature / Docs / Chore] Static model catalog responses now identify fallback ownership and advertise the current GPT 5.6 Sol, Luna, Terra, and GPT 5.5 Codex aliases. (#3632) - [Feature] Catalog-backed model defaults now reuse a validated last-known-good provider catalog during transient upstream outages or empty responses. (#3641) - [Chore] N/A — internal typing cleanup only. (#3643) - [Chore] N/A — internal typing cleanup only. (#3645) - [Chore] N/A — internal typing cleanup only. (#3646) - [Docs / Chore / Test/CI] Repository lint now permits unavoidable static model aliases only through auditable owned fallback records. (#3647) - [Chore] N/A — internal typing cleanup only. (#3649) - [Chore] N/A — internal typing cleanup only. (#3650) - [Chore] N/A — internal typing cleanup only. (#3651) - [Chore] N/A — internal type cleanup only. (#3652) - [Chore] N/A — internal type cleanup only. (#3653) - [Chore] N/A — internal type-safety refactor. (#3655) - [Chore] N/A — internal type-safety refactor. (#3657) - [Chore] N/A — internal type-safety refactor. (#3659) - [Bug fix] An undeclared sub-agent name on session create is now rejected instead of silently running the child as the parent agent (#3662) - [Chore] N/A — internal type-safety refactor. (#3663) - [Chore] N/A — internal type-safety cleanup. (#3664) - [Chore] N/A — internal type-safety refactor. (#3665) - [Chore] N/A — internal type-safety cleanup. (#3666) - [Chore] N/A — internal type-safety cleanup. (#3667) - [Bug fix] The Codex model picker now hides OpenAI models that the installed Codex CLI cannot run. (#3668) - [Chore] N/A — internal type-safety cleanup. (#3669) - [Chore] N/A — internal type-safety cleanup. (#3671) - [Chore] N/A — internal type-safety cleanup. (#3674) - [Chore] N/A — internal type-safety cleanup. (#3675) - [Chore] N/A — internal type-safety cleanup. (#3676) - [UI / Feature] Redesigned the sidebar's bulk-select bar and added per-section selection: pick sessions from the flat list or from within project folders (#3677) - [Chore] N/A — internal type-safety cleanup. (#3678) - [Chore] N/A — internal type-safety cleanup. (#3679) - [Chore] N/A — internal type-safety cleanup. (#3680) - [Chore] N/A — internal type-safety cleanup. (#3681) - [Chore] N/A — internal type-safety cleanup. (#3683) - [Chore] N/A — internal type-safety cleanup. (#3684) - [Chore] N/A — internal type-safety cleanup. (#3686) - [Chore] N/A — internal type-safety cleanup. (#3687) - [Chore] N/A — internal type-safety cleanup. (#3689) - [Chore] N/A — internal type-safety cleanup. (#3691) - [Chore] N/A — internal type-safety cleanup. (#3695) - [Chore] N/A — internal type-safety cleanup. (#3696) - [Chore] Malformed tools, retry, and MCP YAML now fails with actionable parser errors instead of leaking untyped values. (#3705) - [Chore] N/A — internal type-safety cleanup with no user-facing behavior change. (#3706) - [Chore] N/A — internal ASGI type cleanup with no user-facing behavior change. (#3707) - [Chore] N/A — internal migration decoding hardening with no supported-input behavior change. (#3708) - [Chore] N/A — internal type cleanup with no user-facing behavior change. (#3729) - [Chore] N/A — internal type cleanup with no user-facing behavior change. (#3734) - [Chore] N/A — internal type cleanup with no user-facing behavior change. (#3735) - [Chore] N/A — internal type cleanup with no user-facing behavior change. (#3736) - [Chore] N/A — internal type cleanup with no user-facing behavior change. (#3737) - [Chore] N/A — internal type cleanup with no user-facing behavior change. (#3739) - [Chore] N/A — internal type cleanup with no user-facing behavior change. (#3740) - [Chore] N/A — internal type cleanup with no user-facing behavior change. (#3741) - [Chore] N/A — internal type cleanup with no user-facing behavior change. (#3742) - [Chore] N/A — internal type cleanup with no user-facing behavior change. (#3743) - [Chore] N/A — internal type cleanup with no user-facing behavior change. (#3744) - [Chore] N/A — internal type cleanup with no user-facing behavior change. (#3745) - [Chore] N/A — internal type cleanup with no user-facing behavior change. (#3746) - [Chore] N/A — internal type cleanup with no user-facing behavior change. (#3747) - [Bug fix / Chore] Managed Islo hosts now receive configured provider gateways during startup. (#3748) - [Chore] N/A — internal type cleanup with no user-facing behavior change. (#3751) - [Chore] N/A — internal type cleanup with no user-facing behavior change. (#3752) - [Bug fix] Antigravity sessions without an explicit model now follow the installed SDK's current default. (#3762) - [UI / Bug fix] Moving a session into a project updates the sidebar instantly instead of after a multi-second wait (#3784) - [UI / Feature] `omnigent --help` now groups launch commands under a **Harnesses** section, colorizes the output, hides harnesses whose optional extra isn't installed (with a notice pointing at `omnigent setup`), drops the duplicate `update` alias line, and tidies the command descriptions (#3795) - [Feature] `omni upgrade` now preserves requested extras for `uv tool` and `pipx` installs, supports `--extra`, `--target-version`, and `--dry-run`, and refuses to auto-upgrade `pip` / `uv pip` installs because those installers don't record extras. (#3796) - [UI / Chore] `omnigent --help` command descriptions are tidied (harness rows read "Launch with Omnigent"), and the duplicate `update` alias line is hidden from the listing (#3797) - [Bug fix] Prevent `list_files` from running without a conversation scope. (#3804) - [Bug fix] Reject stale harness continuation requests that cannot resolve an agent model. (#3806) - [Chore] N/A (internal type cleanup) (#3830) - [Chore] N/A (internal type cleanup) (#3831) - [Chore] N/A (internal type cleanup) (#3832) - [Chore] N/A (internal type cleanup) (#3833) - [Chore] N/A (internal type cleanup) (#3835) - [Chore] N/A (internal type cleanup) (#3836) - [Chore] N/A (internal type cleanup) (#3837) - [Chore] N/A (internal type cleanup) (#3838) - [UI / Bug fix] New sessions created inside a project appear under that project immediately instead of briefly showing under "Sessions" (#3869) - [Bug fix / Breaking] The "GitHub Repo & Branch Access" and "Block Working Directory & Worktree (#3888) - [Feature] claude-native sessions now derive their Working/idle status from Claude Code's own session file for faster, more accurate turn-edge detection (falls back to the terminal watcher on older Claude versions) (#3906) - [UI] Tightened the sidebar's spacing so nav, sections, and session rows sit on a consistent vertical rhythm (#3908) - [UI / Bug fix] Sidebar rows no longer stay highlighted in "Select sessions" mode unless explicitly selected (#3912) - [UI / Feature] Opening a shell on a sleeping session now wakes its runner automatically instead of failing with "no runner available" (#3919) - [Bug fix] Pi-native sessions now retain Omnigent system tools and the comment relay. (#3920) - [Chore] N/A — no user-facing behavior change. (#3923) - [Bug fix] Fixed a leak where native Codex sub-agents left orphaned `codex app-server` processes after idle reaping, TUI exit, runner shutdown, or a hard host/runner death (#3925) - [Bug fix / Chore] OpenCode-native model options now fall back to the authenticated server catalog when CLI discovery fails. (#3926) - [UI / Bug fix] The sidebar's My sessions / Shared with me switch stays visible while bulk-selecting sessions (#3927) - [Feature] `omnigent diagnose` prints a secret-free environment snapshot (CLI/server versions, OS, auth mode) for bug reports (#3928) - [UI / Bug fix] Hide the empty Projects header menu (⋯) when you have no projects (#3930) - [UI] Moved the Chat/Terminal switcher for terminal-first sessions from the composer into the session header (#3931) - [UI / Bug fix / Feature] Recent conversations reopen instantly while catching up without reordering live response output. (#3932) - [Bug fix] `pip install` / `uv sync` no longer hangs when pnpm is provided by a corepack (#3986) ## [v0.7.0] — 2026-07-27 - [Bug fix] Hermes thinking now appears in mirrored web conversations. (#1645) - [Bug fix] Image and file attachments now survive session relaunches on remote host runners; attachments that fail to load show a visible marker instead of silently disappearing. (#2085) - [UI / Feature] Voice dictation in the composer now works in Electron, Firefox, and Chromium via optional server-side transcription (`omnigent[dictation]`) — local models, live streaming partials, audio never leaves your server. (#2093) - [UI / Bug fix / Test/CI] Hide Claude task completion control messages from conversation history while preserving them for resume context. (#2104) - [Bug fix / Feature / Docs] Operators can mount pre-created PersistentVolumeClaims (NFS/SMB/SAN) into Kubernetes sandbox runners via `sandbox.kubernetes.pvc_mounts` (read-only by default) (#2435) - [Bug fix / Test/CI] `/compact` no longer races when multiple compact requests hit the same session at once (#2585) - [Bug fix / Test/CI] `sys_call_async` / `sys_cancel_async` now consistently use `handle_id` as the cancel identifier. (#2586) - [Bug fix / Test/CI] Runner idle timeout no longer kills sessions waiting on async tools, timers, or approval prompts (#2588) - [Bug fix] Misconfigured runner tool policies deny tool calls instead of silently allowing them (#2589) - [UI / Feature] Slash-command menus now match any part of a command's name, so `/using-superpowers` finds `/superpowers:using-superpowers` (#2655) - [Bug fix] Host-launched runners now reuse delegated credentials instead of repeating Databricks authentication during startup. (#2762) - [Feature] Projects are now a first-class entity with a `/v1/projects` CRUD API (create, list, rename, delete) and per-session membership. (#2765) - [Bug fix] Hermes forwarder introspects state.db columns to survive cross-version schema drift (#2774) - [Feature] `omni usage` reports your LLM cost for today / the last 7 / 30 days, with a per-session per-model cost breakdown (#2787) - [Feature / Chore] Native Claude sessions start faster by coalescing runner initialization into one handshake. (#2793) - [UI / Bug fix / Feature / Docs / Test/CI] Claude-native launch and in-session pickers now share the selected host's live model catalog, including Claude Code's managed routes. (#2831) - [Bug fix] Managed BoxLite sandboxes remain available after provisioning so agent launches can execute commands reliably. (#2846) - [Feature] Server-side smart routing can now call an external `routes:select` router via `routing.provider: external`, with provider-agnostic auth (`api_key`) and model-name mapping (`model_prefix`) (#2864) - [UI] Chat code blocks no longer load the syntax-highlighter engine until the first (#2886) - [UI / Bug fix] The main chat "Working…" indicator now clears reliably when the session goes idle, instead of occasionally staying lit after a reply completes. (#2900) - [Bug fix] The performance benchmark harness now records HTTP failures and continues the rest of the suite instead of aborting, and excludes fully-failed runs from the summary averages. (#2917) - [Feature / Test/CI] Scheduled tasks can now be created without a workspace or a pinned host for non-code work (research, summaries, chat-only, MCP-only); an unset host runs on your live host at fire time, and an unset workspace defaults to the host's home directory. A pinned host is now authorized (existence + ownership) at create time rather than only at fire time. (#2946) - [Chore / Test/CI] N/A — internal benchmark/dev tooling; no user-facing impact. (#2947) - [Feature] Set `OMNIGENT_CONTAINER_RUNTIME=podman` to use Podman (or another supported runtime) globally instead of Docker, without editing every agent's YAML. (#2949) - [Bug fix] Sending a message to a session whose Claude Code terminal crashed no longer (#2951) - [Bug fix] The desktop app now always quits within a few seconds even if its background cleanup stalls or the OS re-quit is dropped. (#2972) - [UI / Bug fix] Messages send immediately when a session's only remaining work is a background job, instead of being held in the queue until it finishes (#2974) - [UI / Feature] Desktop update notifications now appear in a native corner toast that works (#2975) - [Bug fix / Chore] Runner startup no longer waits several seconds for Git's optional untracked-file cache probe. (#2976) - [Feature / Test/CI] `omnigent` benchmark harness gains `--network-delay-ms` and per-journey HTTP request counts (#2977) - [UI / Bug fix] Pi sessions now show reasoning while it streams and after conversation history reloads. (#2979) - [Feature] The runner log now records why the runner exited (crash traceback, signal, idle timeout, tunnel close, or parent death) (#2985) - [UI / Feature] Set up a missing agent from the New Chat dialog with a guided, step-by-step checklist (#2987) - [UI / Bug fix / Feature] HTTP headers can now be set and edited for HTTP MCP servers in the session agent info panel. (#2989) - Capped unbounded DB list queries in the permission store and reduced session opens in `check_access`/`get_permission_level` from 2–3 to 1. (#2995) - Deleting a conversation with many descendants now issues a single FTS DELETE instead of one per descendant. (#2999) - [UI / Bug fix] Android auto theme and system-bar icons now stay readable with both device themes and explicit in-app theme overrides. (#3006) - [UI / Feature] 3D model files (STL, 3MF, OBJ) now render an interactive preview in the file browser (#3007) - [UI / Bug fix] Subagents panel Graph View now shows the same status dot colors as List View (#3009) - [Feature / Test/CI] Scheduled-task runs now transition to a terminal state (`succeeded`/`failed`) as soon as the dispatched turn finishes, instead of staying `running` forever; run history is readable at `GET /v1/scheduled-tasks/{id}/runs`. (#3014) - [Feature / Chore] When enabled, new sessions receive concise semantic titles in the background without adding work or latency to the active agent turn. (#3024) - [Feature] Offload dictation speech-to-text to a remote worker with (#3025) - [Bug fix / Docs / Test/CI] Codex-native subagents now appear in the Agents panel with their live conversations. (#3028) - [Bug fix] Credential proxy no longer attaches injected credentials to TRACE/OPTIONS requests, and the egress proxy now honors Max-Forwards as a conformant intermediary. (#3029) - [Docs] N/A — internal documentation cleanup. (#3031) - [Feature] Import local Qwen, Kiro, Pi, and Kimi coding chats into Omnigent (#3032) - [UI / Feature] Press ⌘⌥V (Ctrl+Alt+V) to toggle voice dictation from anywhere; while dictating, Enter keeps the text and Esc discards it (#3044) - [UI / Feature] Added: "Auto · smart routing" harness option in the new-chat picker — lets the intelligent router pick both harness and model based on the task description (#3045) - [Feature] Import existing OpenCode chats, including files and tool activity, with `omnigent import` (#3046) - [Bug fix] Dictation streams now reliably release their worker slot when a browser disconnects abruptly. (#3048) - [UI] New-session composer moves harness configuration into a gear-icon modal, with a cleaner agent picker (needs-setup and custom agents folded into flyouts) and Smart Routing offered as a model option. (#3050) - [Bug fix / Feature] The Slack bot can now run against an Omnigent server deployed on Databricks Apps, (#3051) - [Feature] Sessions can now be filed into first-class projects via `PATCH /v1/sessions/{id}` and listed with `GET /v1/sessions?project=`, which dual-reads first-class membership and legacy project labels. (#3053) - [Bug fix / Test/CI] Fixed SDK session telemetry always recording `harness: null` in server deployments not started via the CLI. (#3054) - [Test/CI] N/A — test-only reliability change. (#3056) - [Bug fix] Databricks OAuth CLI profiles no longer fail with a misleading "malformed profile" error; the message now explains the real fix (install `omnigent[databricks]` or refresh the OAuth session). (#3059) - [Bug fix] An idle runner shutting down after inactivity no longer shows a scary "disconnected" error — just send a message to wake it back up. (#3060) - [UI / Feature] The sidebar now uses first-class projects: create empty projects, rename and delete them, and file sessions into them — while existing label-based projects keep working. (#3061) - [UI / Bug fix] The "Host is offline — click to reconnect" prompt now appears in the composer's host badge instead of a separate banner below the composer (#3062) - [Test/CI] N/A (test-only change) (#3063) - [Feature / Docs / Test/CI] New `databricks_cli` credential-proxy type lets sandboxed agents use the Databricks CLI without the real token entering the sandbox (#3080) - [UI / Feature / Test/CI] Polly sessions running on Claude SDK can start Goal mode from the chat composer. (#3084) - [UI / Bug fix] The Configure agent modal's footer no longer shows a gray background band behind Cancel/Save (#3089) - [UI / Feature] The Sidebar is more compact and polished, with clearer status indicators and richer session details on hover. (#3092) - [UI] Reordered the project-folder header buttons (new-session before the menu), (#3096) - [Chore / Breaking] `omni server start` is removed; use `omni server --background` to launch the (#3105) - [Bug fix] `omnigent server --host 0.0.0.0` now enables accounts (login) mode automatically instead of silently 401-ing every request (#3107) - [Feature] Projects can store default session settings (host, workspace, harness, model, …) via a new `config` field on the projects API. (#3108) - [Bug fix] Databricks-served Claude models no longer break non-streaming responses (prompt-policy and smart routing) when returning typed content blocks (#3109) - [Feature] `omnidev omnigent ` runs an omnigent command against the current checkout's pod via `uv run omnigent`, with the pod's isolated env applied (#3110) - [UI / Feature] Configure a session's model, effort, and smart routing mid-chat from a new gear icon in the composer (#3111) - [UI / Feature / Test/CI] Add the `/tasks` Scheduled Tasks page with sidebar navigation, task rows, empty states, suggestion chips, create-dialog entry points, and Playwright E2E coverage. (#3112) - [Bug fix] Reading image files in a Claude Code native session no longer bloats conversation history and breaks resume/compaction on large sessions (#3113) - [Bug fix / Test/CI] The iOS app no longer follows cross-origin redirects when probing a newly approved server for the Databricks workspace mount, so a consented host can't redirect the probe to a different origin. (#3115) - [Bug fix] Forked native sessions (Claude Code, Codex, Pi, Qwen) again resume with their prior conversation history. (#3116) - [UI / Feature / Test/CI] Workspace pane icons now explain themselves on hover, with a cleaner right-side session layout and compact Share action. (#3122) - [UI / Bug fix / Feature] Add a dialog for creating recurring scheduled agent tasks. (#3123) - [UI] Sidebar session hover flyouts and rows now align with the project rows — matching flyout style, title size, and right-edge padding. (#3124) - [Bug fix] Resuming a session with large images stored in history no longer overflows the context window or breaks compaction, on both the SDK and native Claude Code paths (#3133) - [Feature] `omnigent session import` loads a `session export` JSONL back into a server as a new session (#3141) - [Feature] Telemetry now records the agent name for Polly and Debby sessions. (#3152) - [Chore / Breaking] `omni integration slack start` is removed; use `omni integration slack --background` to launch the (#3153) - [UI / Bug fix / Docs / Chore] Slack device login now requires a fresh password at the consent screen, closing a device-code phishing gap where an already-signed-in user could approve a login by reflex. (#3156) - [Feature] `omnigent claude` keeps tool search enabled when launched with `CLAUDE_CODE_USE_GATEWAY=1`. (#3161) - [Test/CI] Fix `test_session_stream_emits_heartbeat_on_idle` after `_session_labels_for_runner_spawn` was extracted into `omnigent.runner.native.orchestration`; patch the heartbeat cadence on `omnigent.runner.app` where it is defined and consumed. (#3163) - [Bug fix] Crash reports are no longer lost when a process crashes more than once in the same second. (#3173) - [Bug fix] Custom codex-native agents launch on the model declared in the agent spec (`executor.model`) instead of silently falling back to the provider default (#3175) - [Bug fix] Single-file agent YAMLs that nest the executor under `type:`/`config:` (the bundle config.yaml shape) now fail at load time with the correct flat spelling, instead of silently running a harness inferred from the model prefix (#3178) - [UI / Bug fix / Feature] Use native Codex goal mode from Polly's Goal control (#3181) - [UI / Bug fix] Renaming a session now updates the name in the sidebar instantly instead of after a short delay. (#3185) - [UI / Bug fix / Feature / Test/CI] Edit scheduled tasks and type exact run times, with a scrollable time picker and a consistent, fully-visible dialog. (#3186) - [UI / Feature] Pinned sessions now persist server-side per user, so pins follow you across devices and browsers. (#3189) - [Feature] New sessions now receive concise semantic titles automatically without additional configuration. (#3191) - [Test/CI] `/rerun` PR comment re-runs failed CI on the current commit without dismissing approvals (#3195) - [Feature] Native Codex sessions can now receive concise automatic background titles. (#3199) - [Bug fix] Qwen3, inkling, and other non-OpenAI models now work in the Pi SDK executor harness (#3203) - [Chore / Breaking] Slack-on-Databricks deploy: renamed `OMNIGENT_SLACK_WEBAUTH_BASE_URL` to `OMNIGENT_SLACK_DATABRICKS_APP_URL` (`--app-url`), removed the `WEBAUTH_PORT` / `DATABRICKS_WORKSPACE_HOST` overrides, and dropped deploy-time `uv lock` in favor of in-container `uv run`. (#3206) - [UI / Bug fix] Sidebar session titles use the available space cleanly and reveal branch and action details only when needed. (#3208) - [UI / Bug fix] Removed the redundant "Create new project" option from the sidebar project picker — create projects with the + icon next to Projects (#3210) - [Feature] Smart routing now activates automatically when a server `llm:` block or an external `routing:` block is configured — no `OMNIGENT_SMART_ROUTING` env var needed (#3215) - [UI / Feature / Test/CI] Scheduled task rows now show when each task will next run ("Next run in 15h") and a "Run now" action in the ⋯ menu to fire a task immediately, with refreshed row styling. (#3218) - [UI / Feature] Projects now carry default session settings (host, working directory, agent, optional git worktree) that pre-fill the new-session composer. (#3221) - [Bug fix] Fixed per-model cost attribution for native harnesses so a session's per-model (#3223) - [UI / Bug fix] Codex task plans now stay in Tasks instead of being duplicated in chat. (#3249) - [UI / Bug fix] Smart Routing no longer appears in the model dropdown for native terminal sessions (Claude Code, Codex, Pi), where it had no effect (#3259) - [Bug fix] Sandboxed agents can now run tools managed by update-alternatives (awk, python3, editor, and similar) on Linux. (#3263) - [Bug fix] Egress proxy now trusts corporate/MDM CA roots installed under the system `capath` directory, so TLS to hosts behind a corporate MITM works from a sandboxed agent. (#3264) - [Bug fix] Large historical attachments no longer inflate replay and compaction context as inline base64 text. (#3267) - [Docs] Contributors can now use `omnidev` as the documented worktree-safe local testing flow. (#3277) - [Bug fix] Custom OpenAI Agents can use Unity AI Gateway Model Services with fully qualified model names when a Databricks provider or profile is configured. (#3288) - [UI / Bug fix / Feature] Configure recoverable dangerous shell commands to ask for approval or deny execution, while always blocking catastrophic operations. (#3297) - [Bug fix / Feature] Pi harness now routes kimi, inkling, GLM, qwen3, Gemini 3+, and Llama through the correct AI Gateway endpoints, fixing "Stream ended without finish_reason" errors and ensuring `system.ai.*` ids are used throughout. (#3307) - [Feature] Add a top-level `justfile` with recipes for launching the iOS Simulator, running the Android debug build, starting the omnigent dev pod, and running pre-commit/lockfile normalization. (#3310) - [UI / Bug fix] Sidebar header action buttons are now vertically centered with section titles. Session row hover is smoother, and active items no longer flash when hovered. (#3311) - [UI / Bug fix] Aligns project folder icons and color with the rest of the sidebar. (#3317) - [Bug fix] Unsupported Claude Code slash commands are now escaped and sent as regular user messages instead of leaving the native terminal in an undriveable state. (#3319) - [Feature] `omnigent server` now tells users they can set `OMNIGENT_AUTH_ENABLED=0` to override automatic multi-user mode when binding to a non-loopback interface. (#3320) - [Chore / Breaking] [Breaking] The deprecated `OMNIGENT_ACCOUNTS_ENABLED` environment variable has been removed; use `OMNIGENT_AUTH_ENABLED` instead. (#3322) - [UI / Bug fix] Fixed pinned sessions being lost when the web UI was updated before the server. (#3323) - [UI / Feature] Automations list: tasks now render as cards and show a live-updating relative next-run time ("Next run in 3 hours"). (#3324) - [UI] Settings → Appearance no longer has a separate Sidebar font size control, and a new "Reset to defaults" button restores every appearance preference after confirmation. (#3326) - [UI] Starting a session inside a project now names the project in the new-session (#3327) - [UI] The Files workspace tab now uses a stacked-files icon. (#3329) - [UI / Feature] Automations: scheduled tasks can now pick a model and reasoning effort in the create/edit dialog (defaults to the agent's settings). (#3331) - [UI / Bug fix] Fixed sessions pinned in the updated web UI being lost after the server was updated. (#3332) - [UI / Feature] Native harness setup now checks the installed CLI version and prompts to upgrade if it is too old. Cursor's missing-binary case is normalized to the same structured `binary-missing` signal as the other CLI-backed native harnesses. (#3335) - [Bug fix] Pi sessions now show a clear error when their Databricks login has expired, instead of silently accepting messages with no reply (#3336) - [Test/CI] N/A (internal CI change). (#3338) - [Bug fix] claude-sdk harness now surfaces harness-level failures (expired login, auth error) as structured errors instead of storing them as assistant messages. (#3342) - [UI] Align the sidebar brand row with the rest of the navigation. (#3346) - [UI / Bug fix] Short links like `#3090` in chat markdown tables no longer stack one character per line (#3350) ## [v0.6.0] — 2026-07-21 - [Bug fix] `sys_os_shell` commands no longer inherit omnigent's own `PYTHONPATH` entry, so project subprocesses resolve their own installed packages instead of omnigent's. (#1861) - [Bug fix] Stopping a Goose turn no longer leaves stale ACP session state behind when the subprocess is terminated. (#1928) - [Bug fix] Cancelling or deleting a session during agent cold start no longer leaks the harness subprocess. (#1982) - [Bug fix] macOS sign-in with a hardware security key (e.g. YubiKey) works again. (#2036) - [UI / Bug fix] Tool-call cards keep their live spinner when a superseded response terminates mid-turn (fixes a first-turn "no spinner" on native-terminal harnesses). (#2045) - [Bug fix] hermes-native tool-call cards now show a live spinner and elapsed timer while a tool runs, including on the first turn. (#2046) - [Bug fix] Fix blank white page on Safari/iPadOS older than 16.4 caused by regex lookbehinds on the web UI boot path (#2105) - [UI / Feature / Chore] A project's "new session" pencil now prefills the composer from the project's latest session — host, repo, agent, and a fresh git worktree branch — so starting a new chat in a project is one prompt away. (#2133) - [UI / Feature] Filter the Archived sessions view by project (#2134) - [Bug fix / Docs / Test/CI] Polly now verifies pytest test-count discrepancies against collected cases before recording miscount/fabrication claims. (#2140) - [Bug fix] Evict the cached claude-sdk client when a turn is cancelled so the session recovers on the next turn (#2169) - [UI / Bug fix] Tapping an Android notification now opens the waiting session (or the inbox). (#2210) - [Bug fix] Fixed the headless Hermes harness registering no Omnigent MCP server (agent had no builtin tools). (#2216) - [Feature / Breaking] Ids are now bare 32-character hex (no `conv_`/`ag_`/`host_` prefixes) stored as 16-byte binary; existing prefixed ids in URLs, configs, and clients keep working. (#2228) - [Bug fix] `sys_list_models` no longer misreports codex `cli-config` providers and cursor workers as having no usable model provider. (#2237) - [Bug fix] Cursor sessions now run shell tools in the declared workspace directory instead of the runner's working directory (#2244) - [UI / Bug fix / Feature] Conversation view gains a turn-rail minimap for jumping between messages (#2285) - [Feature / Docs] `sandbox.host_config` in the server config injects verbatim host `config.yaml` content (e.g. a `providers:` gateway block) into managed sandboxes before the host starts (#2306) - [Bug fix] `omnigent server` now accepts documented boolean server-config values like `sandbox.kubernetes.in_cluster: false` instead of rejecting them at startup. (#2314) - [Bug fix] Chat sessions now recover automatically from a brief reverse-proxy 404 during a backend restart, instead of freezing until a manual page refresh. (#2316) - [UI / Bug fix] Bulk select-all/delete/archive in the sidebar now correctly handles collapsed sections (#2377) - [Bug fix / Feature] `omnigent run --harness -native` now launches every registered native harness with matching prompt and model behavior. (#2379) - [Feature / Docs / Test/CI] Harness bench now reports Omnigent MCP relay support separately from vendor-native tool calling. (#2380) - [Bug fix] Sessions are now stopped server-side before archive or delete, so SDK and API callers get the same stop-first behavior the web UI provides. (#2400) - [UI / Bug fix / Test/CI] Sidebar session tabs no longer overflow their background on narrow widths. (#2425) - [Bug fix] Local server startup now works when a system proxy intercepts loopback traffic. (#2433) - [Bug fix] Native TUI harnesses (opencode, pi, hermes) no longer render multibyte UTF-8 as mojibake on deployments whose environment lacks a UTF-8 `LANG`/`LC_ALL`. (#2440) - [Bug fix] Claude native sessions now back off rejected cost updates instead of retrying on every poll. (#2453) - [Feature] Server now collects opt-out usage telemetry for session created, stopped, and deleted events to help understand product usage patterns. (#2457) - [UI / Bug fix] Confirming a Japanese IME conversion with Enter no longer submits the session rename or new-project name inputs (#2459) - [Feature] Server `llm:` config accepts an optional `fallback_models:` list; LLM-backed policies now retry alternate models before failing closed. (#2462) - [Feature] Harden the LLM prompt-classifier policy against prompt injection by spotlighting untrusted content behind an unguessable per-evaluation marker. (#2463) - [Feature / Docs / Test/CI] Harness bench now reports whether forked sessions retain and replay their source conversation history. (#2472) - [Bug fix / Test/CI] Harness benchmark live tables now distinguish not-applicable capabilities from skipped probes. (#2475) - [UI / Bug fix] New sessions respond faster to their first message, and the "Working…" indicator now appears immediately on the first turn instead of staying dark while the runner finishes connecting (#2478) - [Bug fix] A policy-denied message (e.g. hitting the cost budget) now shows immediately instead of only after a page refresh (#2481) - [Bug fix / Feature / Docs / Test/CI] Codex sessions using Databricks custom model aliases can surface reasoning summaries, and the harness benchmark now reports observable reasoning support. (#2482) - [Feature / Docs / Test/CI] The harness benchmark can run selected capability dimensions and pin an exact model directly in each harness argument. (#2485) - [Bug fix / Test/CI] Polly Cursor workers no longer ask for tool permissions by default (YOLO / auto) (#2493) - [Feature] Polly defaults to Sonnet 5 for its brain and Claude Code workers, and Cursor Grok 4.5 for Cursor workers (#2500) - [Bug fix] Polly Cursor workers default to grok-4.5 (#2503) - [Bug fix] Polly Claude brain and Claude Code workers default to the sonnet alias (#2504) - [Bug fix] Polly Claude brain and Claude Code workers inherit the provider default model again (#2507) - [Bug fix] Codex-harness sub-agents no longer crash on macOS when the runner inherits a read-only working directory (e.g. `/` from the desktop app). (#2512) - [UI / Feature / Test/CI] New chats can start with the Workspace panel collapsed via Appearance settings (#2516) - [Bug fix] `sys_advise_models` is only offered to agents when intelligent routing is configured on the server. (#2517) - [UI / Feature / Test/CI] OpenCode-native sessions now show their available models in the web model picker. (#2519) - [Bug fix] Pi's `/model` command now shows all LLM models available on your Databricks workspace (fetched live from the serving-endpoints API) instead of a hardcoded list (#2525) - [UI / Feature] The changed-files panel now shows a per-file line-change count (`+N −M`) beside each file. (#2526) - [Bug fix] Telemetry rollout percentages now honor 0% and 100% exactly. (#2528) - [Bug fix] Pi no longer shows a blocking "Trust project folder?" dialog when launched via Omnigent in a project with `.pi/` settings or extensions (requires Pi 0.79+) (#2529) - [Feature / Docs / Test/CI] Harness metadata can now declare resume, steering, live queue, image, and compaction support for capability conformance checks. (#2530) - [UI] Admin Settings pages (Members, Policies, Sharing) now share the same left and top alignment as the rest of Settings. (#2532) - [Bug fix] Pi's `/model` command now shows GLM, Llama, Qwen, and other non-GPT Databricks models alongside Claude and GPT models (#2534) - [UI / Bug fix] The Members and Sharing settings pages and the Share buttons are hidden in single-user mode (#2536) - [Bug fix] Pi's `/model` command now correctly lists all available Databricks models when using the AI Gateway (cli-config) setup — the NXDOMAIN error that caused single-model fallback is fixed (#2540) - [UI / Feature] Native Pi sessions can now switch model mid-session from the web composer, with the picker scoped to your logged-in models and synced to in-terminal `/model` changes (#2543) - [UI / Feature] Add an opt-in "Hide unconfigured harnesses" setting that filters the new-chat picker to harnesses set up on the selected host (#2544) - [Bug fix] Sending a message to an idle native Pi session no longer gets stuck in the "queued" state until you switch tabs (#2545) - [Feature / Docs / Test/CI] Add `omnigent uninstall` for safely removing the CLI, installer-managed shell/config edits, and optionally local Omnigent state. (#2550) - [Bug fix] Pi's `/model` command now shows all available Databricks models for ucode / Codex app profile-switched setups (#2552) - [UI / Feature] Added a Nord color theme (arctic frost-blue palette) to the Appearance settings palette picker. (#2561) - [Bug fix] Fix `uv tool install` of the `databricks` extra failing to build pyarrow from source on Python 3.14 (#2563) - [Bug fix] Sessions list no longer does a workspace-wide id pre-fetch for the archived filter, restoring the single indexed query on the sidebar path. (#2568) - [Bug fix] The CLI now shows a clear error instead of a raw traceback when the server is too slow or unreachable while starting a session. (#2572) - [Bug fix] Pi harness: Databricks GLM/DeepSeek reasoning models no longer fail with "Stream ended without finish_reason" (#2573) - [UI / Bug fix] Clicking a pinned session that belongs to a project no longer re-opens the project section after you've collapsed it. (#2583) - [Bug fix] Claude-native messages that fail to reach Claude (or stall unsent) now surface the failure instead of silently disappearing. (#2591) - [UI / Bug fix] The file editor now follows Omnigent's selected web and desktop color theme instead of the operating-system theme. (#2594) - [UI / Feature] Hovering a pinned session now shows its project name in a flyout (#2595) - [UI] Sidebar rows, section headers, and nav items now line up on a consistent grid (#2596) - [Bug fix] Queued follow-up messages in the Pi web UI now dispatch immediately when Pi finishes replying (#2597) - [UI / Bug fix] Pinned-session project flyout no longer opens (and gets stuck over the chat) when tapping a session on mobile (#2599) - [UI / Feature] Diff viewer gains a "Wrap lines" toggle, and Find / Download / diff toggles now live in a single "⋯" View settings menu (#2600) - [UI / Bug fix] Mobile session menu opens the project picker in place instead of an off-screen side flyout (#2602) - [Bug fix] `sys_session_send` now reliably accepts model overrides when spawning named sub-agent sessions with a specific model (#2603) - [Chore / Breaking] `omnigent[memory]` is renamed to `omnigent[hindsight]`; the Hindsight memory extra is now the canonical name. (#2605) - [Bug fix] `omnigent host status` now hides the session table by default (use `--sessions` to show it), making the command significantly faster. (#2606) - [Feature] `omnigent:///c/` links open that session in the desktop app, reusing an open window on that server in-place (#2607) - [Bug fix] Fix native Claude sessions overflowing the context limit on reconnect when the conversation contained screenshots (#2609) - [Feature] Session creation requests from the web UI now send an explicit `X-Omnigent-Client` header, enabling the server to record the exact client surface (web/desktop/ios/android) in telemetry without relying on User-Agent parsing. (#2615) - [UI / Bug fix] Mobile: the Chat/Terminal toggle no longer reappears over the sidebar when opening a session's kebab menu (#2617) - [UI] Project sidebar headers show a chevron in place of the folder icon on hover instead of a persistent caret next to the name (#2618) - [UI / Feature] PDF files now preview inline in the file viewer, with scrollable pages and zoom (#2619) - [UI / Bug fix] Find in file now toggles the editor's find bar closed on a second click, and its close button no longer shows a stray keyboard-hint tooltip (#2621) - [UI / Bug fix / Feature] Find in file now works in the markdown editor — highlights and cycles matches, including terms split across bold/italic formatting (#2628) - [Bug fix] Clicking an Omnigent session URL printed inside the embedded terminal now stays in the web app instead of opening a duplicate browser tab/window. (#2639) - [Docs] Clarify optional install extras in the quick-start docs. (#2640) - [Bug fix] `use_responses: false` now correctly selects the Chat Completions API in standard `config.yaml` bundles. (#2641) - [Bug fix / Feature] Import existing Claude Code or Codex chats with `omni import`. (#2649) - [UI / Feature] Customize a built-in color theme with shared light/dark accent, tint, contrast, and two-rail sidebar translucency controls. (#2650) - [UI / Bug fix] Pinned sessions no longer show duplicate rows after upgrading — legacy pin ids are migrated to the new id format automatically. (#2651) - [UI / Feature] Long-running Codex commands now stream their output into the web tool card while they run. (#2652) - [UI / Feature] Randomize accent and background tint colors with a playful new dice button. (#2653) - [Feature] `omnigent:///c/` links open that session in the iOS app, reusing the open window on that server in-place (#2661) - [Bug fix] Pi's `/model` command now shows and correctly routes GPT, Kimi, Llama, GLM, and Gemini 3.x models alongside Claude (#2665) - [UI / Bug fix] The Add Global Policy dialog now shows all available policies, including ones already applied. (#2668) - [UI / Bug fix] The Add Policy dialog for sessions now shows all available policies, including ones already applied. (#2670) - [Bug fix] Deleting or archiving a session now also stops any still-running sub-agent children, instead of leaving them running as unreachable orphans. (#2673) - [UI / Feature] Find in file now works in the markdown and notebook preview — highlights and cycles matches in the rendered document (#2674) - [Bug fix] Codex sessions through a Databricks gateway profile no longer fail with "Invalid Token" when the environment's `DATABRICKS_HOST` points at a different workspace than the profile (#2675) - [UI / Feature] The file panel (changed files, browsing, diffs, and file contents) stays viewable when a session's runner is offline but its host is still connected — no need to send a message to wake it. (#2676) - [UI / Feature] Select text in a PDF preview to add review comments with inline highlight overlays. (#2677) - [UI / Feature] Codex plans now show up in the Tasks panel, the same way Claude Code todos do (#2678) - [UI / Bug fix] Token expiration and other harness startup errors now appear immediately in the chat transcript instead of requiring a page reload. (#2681) - [UI / Feature] Switching back to a recently-opened chat now renders instantly from cache instead of blanking and reloading over the network. (#2688) - [UI / Bug fix] Fixed the comment box being hidden behind the keyboard when commenting on a file in the iOS app (#2694) - [Bug fix] Host-bound sessions relaunch immediately after a Stop or host restart instead of waiting out the runner-connect grace. (#2699) - [Test/CI] Add a `checkout_sha` input to the Benchmark workflow so nightly benchmarks can be run ad-hoc against a specific commit. (#2700) - [Bug fix / Test/CI] Fresh installs no longer resolve an OpenAI SDK combination that crashes every OpenAI Agents harness turn. (#2713) - [Feature] `omni import --harness --last N` can now import up to 50 recent local chats at once. (#2724) - [UI / Bug fix] Cursor setup now distinguishes CLI readiness from SDK API-key configuration and shows install/login guidance before web chat launch. (#2733) - [UI] The Gateway option in model setup no longer cites OpenRouter as an example — use the dedicated OpenRouter option instead (#2738) - [Bug fix] Sandboxed (`darwin_seatbelt`) agents now boot when the helper interpreter or the wrapped CLI is reached through symlinks — uv-installed Pythons and the standalone Claude CLI no longer die with `Operation not permitted`. (#2743) - [Bug fix] A sandboxed claude-sdk agent no longer dies at connect time when its sandbox can't wrap the Claude CLI — it starts with native tools disabled (file/shell access stays sandboxed via the `sys_os_*` tools) and logs why. (#2749) - [Feature] `omnigent setup` can now install Hermes directly before configuring its model provider. (#2751) - [Bug fix] Sandboxed (`darwin_seatbelt`) agents no longer die at startup with "No usable temporary directory" — the private scratch tmpdir is now granted in the sandbox profile before the process is jailed. (#2759) - [Feature / Docs / Test/CI] Benchmark reports now measure cold restarts of existing sessions whose runner is offline. (#2761) - [Docs / Chore / Test/CI] Website release posts now use the narrative, prose-driven MLflow style (#2764) - [Bug fix] opencode-native carries the user config's model default into the synthesized config when no model is pinned (#2775) - [Feature] New sessions automatically get concise, useful titles generated by the agent already handling the conversation. (#2778) - [Bug fix] Forking a Claude Code session onto pi (or other CLIs) no longer fails to start with `required_terminal_exited` (#2780) - [Bug fix] Native Codex and Claude now resolve their CLI from common global install dirs and an `OMNIGENT_CODEX_PATH` / `OMNIGENT_CLAUDE_PATH` override when it isn't on the host daemon's PATH (#2788) - [Feature] Nightly benchmark report now includes server CPU% and RSS memory usage (mean/min/max) alongside latency metrics. (#2795) - [Bug fix] The changed-files panel now shows per-file line-change counts even when the list is served by the host (runner offline). (#2802) - [Bug fix] Harness readiness now finds CLIs installed in common global dirs (nvm/npm/homebrew) that aren't on the host daemon's PATH, matching what the launch resolves (#2805) - [UI / Bug fix / Feature] Config-file policies (declared via `omni server -c`) now appear in the admin Global Policies page as read-only entries labeled "Config". (#2807) - [Bug fix] Codex sessions now inherit global `AGENTS.md` instructions. (#2809) - [UI / Feature] Switching back to a recently-opened chat now renders instantly from cache instead of blanking and reloading over the network. (#2810) - [Bug fix] Allow the ACP prompt deadline to be configured without changing its default. (#2817) - [Feature] The Slack bot now handles tool approvals and questions inline — Approve/Deny (#2820) - [UI / Feature] The Share dialog now shows a QR code so you can open a session in the mobile app by scanning it with your phone. (#2824) - [Bug fix] Harness setup warnings now clear automatically without reconnecting the host. (#2828) - [UI / Feature] Android app shows a floating server switcher pill with a dropdown menu for quick server switching (#2829) - [Feature] Crash reports now show a calm, branded screen with a compact traceback and a one-tap prompt to file a pre-filled GitHub issue (#2841) - [UI / Bug fix] Parallel sub-agent dispatch now explains when to use distinct task titles instead of accidentally reusing and serializing one child session. (#2860) - [Bug fix] Fixed a context-window overflow on a live-streamed turn, leaking its harness process instead of ending the turn cleanly. (#2869) - [Bug fix] Fixed `/model show` (and `list`/`status`/`current`) bricking the session. (#2888) - [Bug fix] Clicking "Stop session" no longer shows a spurious "runner disconnected" error (#2903) - [UI / Bug fix] New-session Send button shows a spinner while the session is being created, instead of looking frozen (#2907) - [Feature / Breaking] Per-harness startup command/args overrides via a polymorphic `harness:` config key + `OMNIGENT__PATH` env-var standardization (legacy `HARNESS_*_PATH` deprecated, slated for v0.8.0 removal) (#2933) - [Bug fix] `omnigent[memory]` is restored as a backwards-compat alias for `omnigent[hindsight]` (the `memory` extra was dropped by #2605); it will be removed in 0.70. (#2938) - [Feature] `OMNIGENT_SESSION_RENAME=on` re-enables the automatic first-turn session rename (disabled by default) (#2944) ## [v0.5.1] — 2026-07-10 - [UI] The desktop Browser tab is now hidden on older desktop builds that don't support the embedded browser, instead of showing a tab that does nothing (#2393) ## [v0.5.0] — 2026-07-10 - [Bug fix] Messaging a long-idle session no longer risks the new turn being killed mid-flight by the idle reaper (#1834) - [UI / Feature] Introduce more secure sharing modes and the ability to toggle public chats on/off. (#1835) - [UI / Feature] Added: `.ipynb` notebooks render as read-only previews in the workspace file viewer (raw JSON still available via the source view) (#1848) - [Feature] `OMNIGENT_OIDC_SKIP_EMAIL_VERIFICATION=1` lets OIDC logins through when the IdP omits the `email_verified` claim (e.g. standard-tier Okta with directory-provisioned users) (#1859) - [UI / Feature] User message bubbles now have a copy button, matching assistant responses (#1900) - [UI] Renamed the sidebar's "Chats" section to "Sessions" to match the "New session" button (#1903) - [UI / Bug fix] Brain-harness override (e.g. claude-sdk vs openai-agents) is now remembered across sessions per agent (#1904) - [UI / Bug fix] "Back to Omnigent" from Settings now returns you to the conversation you were viewing instead of the home page (#1905) - [Bug fix] Release notes now list only user-facing bug fixes and call out breaking changes in their own section (#1909) - [Test/CI] Auto-drafted docs now stage on a per-minor `X.Y-docs` branch and publish to the live site at release, instead of deploying on merge. (#1915) - [UI] Removed the collapse toggle from the Files panel "Working folder" header — the file list is always visible (#1916) - [UI / Bug fix] Opencode agents addressed as `native-opencode` now render with their native terminal UI instead of falling back to plain chat. (#1929) - [Bug fix / Chore] Fixed harness workers (claude, codex, etc.) failing to start when omnigent is launched from a macOS or Linux GUI client due to a stripped PATH. Fix now lives in the Electron launcher (web/electron/src/main.js) per reviewer guidance. (#1935) - [Feature] Child-session lookup by `(agent, title)` now filters server-side instead of fetching all children and scanning in Python. (#1944) - [Bug fix] Sandboxed claude-sdk harnesses now authenticate from an existing host Claude login (`~/.claude/.credentials.json` is bound into the sandbox). (#1946) - [Chore / Test/CI] Runner MCP servers are shared across matching agent specs and started lazily to reduce local memory use. (#1948) - [Bug fix] Fixed: resumed claude-native sessions no longer crash on compaction ("Cannot destructure property 'cumulativeDroppedTokens'") (#1957) - [UI / Feature] The Claude model picker now offers Fable and both Sonnet generations (Sonnet 5 and Sonnet 4.6) as separate selections (#1981) - [Bug fix] Stop rendering a false "terminal did not become ready" error when sending a message to Claude Code mid-turn (#2001) - [UI] [UI] The "Working…" indicator now stays visible for the whole turn and rotates through a few different labels. (#2006) - [Bug fix] Members page now shows a clear "not available in single-user mode" message instead of a confusing auth error when running without accounts or OIDC. (#2013) - [UI / Bug fix] Global Policies settings page now appears correctly in single-user/header auth mode instead of showing a "no permission" error. (#2017) - [Feature] `intent_gate` policy now prompts for user approval (`ASK`) instead of hard-blocking (`DENY`) tool calls that don't match the session's original intent. (#2024) - [UI / Bug fix] Submitting the Codex goal dialog no longer shifts the footer buttons — the loading spinner replaces the button label in place instead of widening the button (#2032) - [UI / Feature] Add a UI font size setting in Appearance to scale the interface (#2040) - [Bug fix] `/compact` on a `claude-sdk` agent with a pinned Anthropic model no longer 500s — the compaction summarizer was routing bare `claude-*` ids to OpenAI instead of Anthropic. (#2043) - [UI / Feature] Set a custom UI font family in Settings → Appearance (type any installed font; blank = system default). (#2047) - [UI / Bug fix] Fix the Appearance font-size input so you can clear and retype a value instead of it clamping mid-edit (#2053) - [Bug fix] Native Claude sessions no longer get stuck showing "Stop" after switching models in the terminal with `/model` (#2082) - [UI / Feature] The sidebar "Search" now opens the command palette (⌘K) to search sessions by title and chat content, with a keyboard-shortcut hint on hover (#2086) - [UI / Feature] Start a new session directly in an existing git worktree by picking it from the worktree field. (#2088) - [Bug fix] Stop rendering a false "terminal did not become ready" error when sending a message to Claude Code mid-turn with many subagents running (#2089) - [UI / Feature] Generate a unique worktree branch name from the new-session composer. (#2094) - [Feature] The harness capability bench now observes native harness tool calls (Tool (#2096) - [Bug fix] Report missing bubblewrap when building a `web_fetch` researcher instead of failing during spawn (#2097) - [UI / Feature] Sessions started in an existing git worktree now show the branch in the sidebar and can delete the worktree + branch from the session delete dialog. (#2098) - [Bug fix] Fixed OpenShell k8s managed sandboxes failing due to Landlock LSM denying `/home/sandbox`; changed home path to `/sandbox` (#2106) - [UI / Bug fix] The share dialog no longer overflows when a grantee's email is long — the name truncates and the domain stays visible. (#2108) - [Bug fix / Test/CI] Keep claude-native model, permission mode, and effort overrides stable across wrapped Claude Code restarts that preserve the settings sidecar. (#2116) - [Feature] Kubernetes sandbox runner Pods can now schedule on arm64 nodes: set `sandbox.kubernetes.node_selector: {kubernetes.io/arch: arm64}` (amd64 remains the default). (#2123) - [Feature / Test/CI] New official `omnigent-server-kubernetes` image ships the kubernetes sandbox provider SDK — the `sandbox-runners` overlay now works against published images, no custom build needed. (#2124) - [UI / Bug fix] codex-native sessions now show MCP server startup progress in the chat, name servers that failed or were cancelled, and Stop can abort a slow MCP startup (#2128) - [Bug fix] Host-spawned runners now inherit `DATABRICKS_AUTH_STORAGE`, so a runner authenticates against the same Databricks token store as the host (fixes a runner tunnel 401 when the store is selected via env var rather than `~/.databrickscfg`). (#2132) - [UI / Feature] Set the code editor and terminal font size and family from Settings → Appearance (#2135) - [Bug fix] Intelligent routing now correctly routes claude sessions instead of leaving them (#2136) - [Bug fix] Fixed inbox approvals not resuming the gated tool call. (#2142) - [UI / Feature] Pick a color theme (Omnigent, Dracula, GitHub, Catppuccin, or Gruvbox) in Appearance settings, independent of light/dark mode. (#2147) - [UI / Feature] Choose a terminal theme (light or dark) independent of the app theme in Settings, Appearance (#2154) - [UI / Feature] Sessions shared with you now live in a dedicated "Shared with me" sidebar tab (multi-user servers only) (#2156) - [Feature] Tightened `conversations.title` DB column to NOT NULL; untitled conversations are now stored as `''` instead of `NULL`. (#2158) - [Feature / Test/CI] Add a performance-benchmark harness for HTTP user journeys, with a seeded corpus, a SQLite+Postgres backend matrix, and a nightly workflow (`uv run dev/benchmarks/omnigent/run.py`) (#2159) - [Bug fix] Sub-agent hermes sessions no longer wake their parent orchestrator before the turn's final answer is mirrored into the transcript (#2161) - [UI / Feature] Session search now shows a preview of the matching message so you can see why a session matched, with the search term highlighted (#2162) - [Feature / Test/CI] Host runner start logs now include the `conv_*` conversation ID alongside the runner token and log path. (#2170) - [Bug fix] The harness capability bench now reports a real native Policy DENY verdict (#2171) - [UI / Bug fix] Cancel in the add-policy dialog now returns to the policy list instead of closing it (#2183) - [UI / Feature] Users can now edit the policy name in the Add Policy dialog before submitting. (#2196) - [Feature / Test/CI] Add a performance-benchmark harness for HTTP + full-turn user journeys (`uv run dev/benchmarks/omnigent/run.py`), with a seeded corpus and SQLite+Postgres backend matrix (#2202) - [UI / Bug fix] The new-session picker now remembers the host you last picked instead of resetting to the default. (#2218) - [Bug fix] Fixed the Hermes `pre_tool_call` hook double-gating Omnigent relay tools, which parked a (#2220) - [UI / Chore] Redesigned Appearance settings: separate Mode and Color theme sections, app-preview Mode tiles, and a color-theme dropdown. (#2225) - [UI / Feature] Added: auto-routing decisions now show as a collapsible card (model pill, tier, rationale, expandable raw verdict) matching the SmartRoutingCard style (#2246) - [Bug fix] Sessions shared with you no longer appear under "My sessions" when they belong to a project — they stay under "Shared with me" (#2249) - [Test/CI] Doc-sync site PRs are now titled after the documentation change instead of the source PR number. (#2250) - [UI / Bug fix] Stop-session dialog now shows the actual server error instead of a generic message. (#2252) - [UI / Bug fix] Project picker menu rows now align on the left and share a consistent height (#2260) - [Feature] The harness bench can now probe any registered harness by name — including the (#2265) - [UI / Feature] A default base branch can be set in Settings › Git to auto-fill the base when naming a new worktree branch (#2267) - [Feature] `omnigent debug logs` tails runner, server, or CLI diagnostic logs; `--session` scopes runner logs to a specific session across relaunches (#2273) - [Bug fix] `omni run --harness acp:` now launches a configured ACP agent instead of failing on the colon in the synthesized agent name. (#2280) - [UI / Bug fix] [UI] Fix iOS crash when granting camera or voice-dictation permission in the app (#2282) - [Test/CI] DELETE THIS WHOLE SECTION — CI-only change, not user-facing. (#2288) - [Bug fix / Feature] Fixed: intelligent routing now overrides any model the orchestrator specified in `sys_session_send` when the parent session has the routing toggle on (#2291) - [Bug fix] Fixed a crash when resuming a Claude-native session whose history contained a `TaskOutput` (or similar) result, so resume no longer times out with a terminal-not-ready error. (#2293) - [Test/CI] DELETE THIS WHOLE SECTION — CI-only change, not user-facing. (#2295) - [UI / Bug fix] "Select all" in bulk selection mode now only selects sessions in expanded sidebar sections, not hidden or archived ones. (#2311) - [Bug fix] Fix pi (and opencode policy) losing live web-UI updates on multi-instance deployments by sending their out-of-process callbacks to the same server instance as the runner. (#2328) - [Bug fix] Default policies created via the API (`POST /v1/policies`) now take effect on sessions. (#2333) - [Feature] omnidev dev pods now get their own isolated `config.yaml` (seeded from `~/.omnigent/config.yaml`), so server-config edits while testing in a pod no longer touch your real config (#2360) - [Bug fix] Session search returns matched-content previews faster on large histories. (#2365) - [Feature / Docs / Test/CI] Harness Bench now measures Policy ALLOW and ASK through native CLI policy hooks. (#2370) - [Bug fix] Managed claude-native sessions against an Anthropic-compatible gateway (e.g. LiteLLM or Databricks) now pass through the gateway model and don't stall on Claude Code's custom-API-key menu. (#2371) ## [v0.4.0] — 2026-07-03 Highlights and full notes: ## [v0.3.0] — 2026-06-26 Highlights and full notes: ## [v0.2.0] — 2026-06-19 Highlights and full notes: ## [v0.1.1] — 2026-06-16 Predates the automated changelog. See the Git history for `v0.1.0..v0.1.1`. ## [v0.1.0] — 2026-06-13 First tagged release.