Commit Graph
20821 Commits
Author SHA1 Message Date
OrcaWinandOrcaWin 4509730131 test: remove repeated wiring and suspended orchestration suites (#41302)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-11 16:16:48 -08:00
Kelvin Amoaba d9d3dfdd08 fix(emulator): make iPhone Duo fold work in release builds and show serve-sim's real error (#41051)
* fix(emulator): let iPhone Duo fold in release builds

Release signing gave serve-sim's in-simulator helpers the hardened runtime,
which drops the DYLD_ROOT_PATH that simctl spawn hands them, so the Duo HID
and accessibility helpers aborted at launch. Sign just those two with only
allow-dyld-environment-variables.

serve-sim's uncaught errors print its minified source, which contains the
"No serve-sim server running" text, so every crash was reported as no active
emulator. Report the thrown error line instead.

Fixes #40509

* fix(emulator): keep multi-line serve-sim error messages

* refactor(emulator): simplify serve-sim failure message parsing
2026-11-12 00:10:11 +00:00
Kelvin Amoaba b72ef23702 fix(native-chat): refuse a startup card choice when the terminal highlight moved, and add the multi-server MCP card (#41216)
* fix(native-chat): refuse a stale startup-dialog card choice and add a card for the multi-server MCP dialog

* fix(native-chat): drop casts from the startup-dialog guard

* fix(native-chat): refuse a startup card choice until the screen model has applied all received output

* fix(native-chat): refuse a clipped MCP server list and guard restored startup cards

* fix(native-chat): allow one startup card choice per screen so a second client's keys can't hit the next dialog
2026-11-12 00:10:05 +00:00
Neil 22c7097240 refactor(mobile): organize browser stream, input and pane modules (#41300)
* refactor(mobile): group browser streams, interactions and pane owners

* refactor(mobile): use named browser module type imports
2026-11-11 16:06:30 -08:00
Neil ee4d4fee4b fix(agent-picker): stop fuzzy-matching Blank Terminal on unrelated agent queries (#41271) 2026-11-11 16:03:10 -08:00
Jinwoo Hong 11f4abef80 perf(orchestration): open no database for profiles without one, and read open-time sweeps through indexes (#41283) 2026-11-11 15:59:56 -08:00
OrcaWinandOrcaWin c2e716dbbb test: remove 17 low-value wrapper and private-state suites (#41292)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-11 15:51:03 -08:00
Brennan Benson 97a8c9177c Refresh cached chat titles only when their saved inputs change (#41242)
* perf: scope saved conversation title refreshes to changed inputs

* Select typed worktree session fields without assertions
2026-11-11 15:47:25 -08:00
Brennan Benson 354bbdcf53 Avoid sorting all folders when resolving one workspace host (#41248)
* Avoid sorting the folder catalog for a single host lookup

* Model the folder point read in remaining runtime fixtures

* Explain the partial emulator routing fixture boundary
2026-11-11 15:46:55 -08:00
Neil 7d141d491f refactor(mobile): group notification delivery and lifecycle owners (#41290) 2026-11-11 15:46:31 -08:00
NeilandBaeTab 823a707e72 fix(cli): align Linear CLI tables by terminal display width (#41287)
Pad Linear CLI and project-list columns using terminal display width (wide CJK/Hangul cells as 2 columns, combining marks and ZWJ sequences aligned to Orca's Unicode11 xterm provider) while preserving terminal-safe line sanitization.

Refs #11883

Co-authored-by: BaeTab <bhwoo48@gmail.com>
2026-11-11 15:38:48 -08:00
NeilandFrederic Barthelemy baf113613e fix(editor): preserve literal & < > prose entities when saving rich markdown (#41289)
Keep typed &, <, and > literal in prose text nodes when encoding them as HTML entities cannot change how the Markdown parses, while leaving entity-like sequences, HTML/autolink/blockquote-ambiguous tokens, and code spans intact.

Refs #16469
Refs #20177

Co-authored-by: Frederic Barthelemy <git@fbartho.com>
2026-11-11 15:33:42 -08:00
Neilandlurunzi d19ee7ab99 fix(native-chat): hide sent [Image #N] prompt markers in user messages (#41288)
Structured image sends replace inline composer chips with `[Image #N]` tokens
for the provider prompt, which left sent `[Image #N]` markers visible in user
message bubbles, copied text, rail/outline previews, and row height estimates.

Strip in-range `[Image #1..imageCount]` markers across user message display,
copy text, row height estimation, and rail/outline previews while preserving
literal markers past `imageCount`, in quoted file references, or inside inline
backticks and fenced code blocks.

Fixes #32727

Co-authored-by: lurunzi <lurunzi@gmail.com>
2026-11-11 15:33:34 -08:00
NeilandKelvin Amoaba 5d61e00c6d build(mobile): upgrade to Expo SDK 58 and React Native 0.88 (#37935)
* build(mobile): upgrade to Expo SDK 58 and React Native 0.88

Expo 58 drops Zod from @expo/cli, which clears the last Zod 3 advisory
(GHSA-mrhx-c7xc-m3w5) in mobile along with its local patch and override.

- Expo 55 -> 58, React Native 0.83 -> 0.88, React 19.3, gesture-handler 3,
  webview 14, reanimated 4.7, worklets 0.13 (SDK 58 bundled versions,
  pinned below today's batch to respect minimumReleaseAge).
- Port the react-native and react-native-webview patches unchanged; drop
  expo-constants, expo-notifications, @expo/cli, expo-router, zod and
  query-string patches plus the zod/query-string/xcode>uuid overrides,
  which upstream fixed or no longer need.
- iOS minimum rises to 16.4 (Expo 58 / RN 0.88 requirement).
- Migrate to RN 0.88 strict types: instance ref types, NamedStyles,
  AppState.currentState, list header/footer nulls.
- Replace removed runtime APIs: InteractionManager -> idle callback with a
  macrotask fallback; StyleSheet.absoluteFillObject -> absoluteFill;
  FileHandle.readBytes -> readBytesSync (it became async).
- Resolve react-native/asset-registry for shared assets in Metro and alias
  the old registry path for react-native-svg in the desktop mobile-web bundle.
- Reduce the iOS scene plugin to the reconnect override; Expo 58's template
  now ships the scene delegate itself.

* fix(mobile): bridge react-native-svg web imports and libsodium runtime for RN 0.88

- Share react-native-svg web shims between the mobile-web build and its render
  checks: map the old asset-registry path to react-native-web's registry and stub
  the Android-only touch-sound TurboModule.
- Patch react-native-libsodium 1.7.0 to read the JSI runtime from the bridge proxy;
  RN 0.88 removed RCTCxxBridge.runtime.

* fix(mobile): use Expo 58's legacy promise resolver for audio permissions

* fix(mobile): skip null handles in the RPC recording timer shims for RN 0.88 types

* style(mobile): format MobilePRSidebar after rebase

* fix(mobile): name RN 0.88 text input refs for declarations; allow queued back in stack render check

- Type text input refs with an exported interface so declaration emit can name hook results
  (RN 0.88 aliases TextInputInstance to an unexported class).
- Expo Router 58 drains back() after a commit; check the interrupted push's exit from the
  frame it starts, bounded to three frames of lag.

* chore(mobile): justify the text input handle interface for React Doctor

* chore(mobile): use a nameable intersection alias for text input refs

* fix(mobile): use sync expo-file-system writes, copies and moves on Expo 58

Expo 58 made File.write/copy/move and FileHandle.writeBytes return promises.
Our callers never awaited them, so failures escaped their try/catch and the
store's tmp-then-move and PDF writes could race their close or rename.

* build(mobile): raise the page bundle budget to 10 MiB for Expo 58

Expo 58 adds about 310 KB to the page: expo-router (+258 KB, now carrying
React Navigation, net about +110 KB) and Reanimated 4.7 (+152 KB). Main had
85 KB of headroom left. 10 MiB still stays within the 10 MiB per-asset contract.

* fix(mobile): drop the window-metrics seed RN 0.88 removed from Android

RN 0.88 no longer holds window metrics: DeviceInfoModule reads the activity's
WindowMetrics on demand and setWindowDisplayMetrics is gone, so MainActivity
no longer compiled. Layout scale still comes from the screen metrics we reseed.

---------

Co-authored-by: Kelvin Amoaba <97001695+AmoabaKelvin@users.noreply.github.com>
2026-11-11 23:30:02 +00:00
Kelvin Amoaba cab41b4075 fix(browser): tell agents when a page waits on a passkey, and let them cancel it (#41048) 2026-11-11 23:27:38 +00:00
Neil 16552ad983 refactor(plugins): organize panel and worker modules by concrete owners (#41277)
* refactor(plugins): group panel and worker modules by owner

* chore(tests): prune retired plugin supervision timeout allowance

* refactor(plugins): consolidate duplicate owner imports
2026-11-11 15:23:33 -08:00
NeilandZetao Qi 891995fe9e fix(native-chat): infer interrupt after acknowledged Escape on chat Stop (#41285)
A chat Stop wrote Escape directly to the runtime PTY, bypassing xterm onData so agents that emit no interrupt hook stayed Working in the sidebar. Send Stop's Escape via sendRawVerified and observe plain-escape against the pre-Escape status baseline only after write settlement.

Fixes #31786

Co-authored-by: Zetao Qi <256975935+QZTnb@users.noreply.github.com>
2026-11-11 15:22:07 -08:00
NeilandSkyler Shaw 32bebf99fa fix(worktrees): prevent overtaken worktree scans from pruning mid-scan lineage (#41284)
Creating a child worktree while a runtime or fleet listing was in flight could delete its fresh lineage edge if the mutation landed after the scan's overtaken check (for example during metadata pruning or removal-checkout probes). Gate pruneLineageForMissingRepoWorktrees on the scan-start generation and pass { scanGeneration } from both runtime callers.

Fixes #16654

Co-authored-by: Skyler Shaw <skyler@jump.run>
2026-11-11 15:18:36 -08:00
Neilandpetersindex 846531cf2f fix(structured-sessions): strip inherited pane identity from agent chat children (#41282)
Claude and Codex chat children kept the launching pane's ORCA_* identity
(pane key, tab, worktree, workspace, terminal handle), so hooks and the
CLI attributed the chat to the host pane. Launch composition now applies
the shared STRUCTURED_CHILD_ENV_TO_DELETE list once for every agent, which
also adds ORCA_WORKSPACE_ID and ORCA_TERMINAL_HANDLE to it; the seal still
keeps a worker's own handle.

Refs #26417

Co-authored-by: petersindex <287557875+petersindex@users.noreply.github.com>
2026-11-11 15:18:28 -08:00
OrcaWinandOrcaWin ce08e6b25e test: remove low-value CLI, mobile, and clipboard cases (#41273)
* test: remove low-value CLI, mobile, and clipboard cases

* test: trim unused keyboard synthesis fakes

---------

Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-11 15:16:34 -08:00
NeilandDavid Garcia f9d545639a fix(ai-vault): show renamed terminal tab title in Session History on matching host (#41281)
Reuse the indexed original-pane target on VaultSessionRow so terminal Session History rows display their open tab's customTitle when getKnownExecutionHostIdForWorktree matches the session host, without defaulting unhydrated or unknown worktrees to local.

Fixes #33661

Co-authored-by: David Garcia <davidgarciab@gmail.com>
2026-11-11 15:12:52 -08:00
Brennan Benson 30fa596371 fix(droid): stop installing the unsupported PermissionRequest hook (#40923) 2026-11-11 15:10:32 -08:00
Neil af2d650c4f fix(native-chat): lower unframed single-line paste threshold to 512 bytes (#41280)
macOS PTYs split unframed writes into 1,022-byte reads, so UNFRAMED_AGENT_INPUT_MAX_BYTES = 1024 left a gap where single-line chat inputs could split across multiple unframed paste reads in Claude Code and other agent TUIs. Lower UNFRAMED_AGENT_INPUT_MAX_BYTES to 512 UTF-8 bytes so long single-line inputs are bracket-framed.

Fixes #32071
2026-11-11 15:08:16 -08:00
Neil 1f1158f7cb docs(orchestration): replace hardcoded worker-start agent ids with <agent> placeholder (#41279)
The orchestration skill guide and reference examples hardcoded --agent codex, leading coordinators on hosts without Codex installed to fail at agent_readiness. Replace hardcoded worker-start agent ids with <agent>, document how to pick an agent id across shared vs remote/WSL/--on execution hosts, and regenerate bundled skill guides.

Fixes #30495
2026-11-11 15:03:56 -08:00
Neilandoutof-place 7c38e53284 test: keep real git and shell test fixtures off developer config (#41278)
Disable commit/tag GPG signing via a cached wrapper GIT_CONFIG_GLOBAL when
the developer's global gitconfig enables signing, clear inherited GIT_CONFIG_GLOBAL
in GitBinaryTestFixture, strip inherited TERM_PROGRAM* in Vitest setup, and
run ssh-posix-command-wrapper shell checks against an empty HOME/ZDOTDIR/XDG_CONFIG_HOME.

Fixes #27210

Co-authored-by: outof-place <contact@outofplace.space>
2026-11-11 15:03:49 -08:00
Neilandh5k 856eb03223 fix(github): gate non-origin remote probes in getGitHubApiRepositoryForRemote (#41276)
Callers such as getRepoUpstream and the tracked-upstream branch fallback called getGitHubApiRepositoryForRemote without checking the cached remote listing, causing repos without an upstream remote to run failing git remote get-url upstream execs on cold lookups. Gate non-origin remotes on shouldProbeGitRemote at the shared entry point while keeping origin unconditional.

Refs #22684

Co-authored-by: h5k <31630310+h5kk@users.noreply.github.com>
2026-11-11 15:02:19 -08:00
Neilandckdwns9121 4533545be3 fix(terminal): restore terminal focus when the context menu closes without taking it (#41274)
Escape or an item that skips refocus unmounts the focused menu onto <body>;
refocus the menu pane then, but leave focus where an outside click put it.

Fixes #21015

Co-authored-by: ckdwns9121 <40492343+ckdwns9121@users.noreply.github.com>
2026-11-11 15:02:12 -08:00
NeilandMateus e59edea2c6 fix(agent-title): keep Claude task titles mentioning Gemini (#41272)
Decorated Claude task titles such as '◐ Alternativas ao Gemini Live' or '. Gemini rate limits' matched the bare gemini token, causing normalizeTerminalTitle to rewrite them to '✦ Gemini CLI'. Behind a spinner or '. '/'* ' prefix, require a Gemini label frame in any wrapper segment while keeping native Gemini glyphs decisive, and reuse the shared detector in terminal-title-agent-type.

Refs #29266

Co-authored-by: Mateus <mateuslannes100@gmail.com>
2026-11-11 15:02:06 -08:00
Brennan Benson 7afc2deeeb fix(settings): flatten Worktree hooks into rows inside one card (#40976) 2026-11-11 15:01:36 -08:00
Kelvin AmoabaandMorten Trydal afb3677e12 feat(native-chat): run GitHub Copilot in Chat over its ACP server (#41055)
* feat(native-chat): run GitHub Copilot in Chat over its ACP server

Copilot chats launch `copilot --acp` with Copilot's own sign-in (or gh's),
so enterprise hosts and managed policy carry over. A Copilot dialect turns
its tool results into plain output and exit codes, and withholds the
commands that would switch Copilot to approving everything behind the
chat's permission mode.

The CLI version reader now accepts a version that ends a sentence, as
Copilot prints it.

Co-authored-by: Morten Trydal <trydis@hotmail.com>

* fix(native-chat): show Auto when a session lists no models instead of hiding the model pill

* fix(native-chat): don't name Copilot chats with a Copilot run that stays in its history

---------

Co-authored-by: Morten Trydal <trydis@hotmail.com>
2026-11-11 22:55:27 +00:00
OrcaWinandOrcaWin a9a0e8cd21 test: remove shallow catalog, browser and launch checks (#41258)
* test: remove routine native and catalog suites

* test: remove shallow browser, bridge and CLI checks

---------

Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-11 14:44:15 -08:00
Neil 057f5772e9 refactor(mobile): group terminal document modules by domain (#41267) 2026-11-11 14:39:46 -08:00
Neil 5b2fba165d fix(account): say 'Signed out of Orca' after signing out (#41264)
The toast after signing out of the Orca account read 'Signed out of profile'. Say what you signed out of.
2026-11-11 14:36:01 -08:00
Neil a44b496f28 refactor(watchers): group filesystem process modules by owner (#41265)
* refactor(watchers): group process modules by concrete owners

* refactor(watchers): consolidate direct limit imports
2026-11-11 14:27:28 -08:00
OrcaWinandOrcaWin b1106ba883 test: remove low-value suites, recorder snapshots, and repeated inputs (#41244)
* test: remove weak recorder scenarios and arithmetic suites

* test: remove low-value boundary suites and recorder cases

* test: remove mock suites and trim repetitive boundary inputs

* test: remove shallow provider and browser checks

---------

Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-11 14:14:48 -08:00
Neil 33a3cd3b1f refactor(cloud): organize push service by concrete owners (#41261)
* refactor(push): organize provider, delivery, and host authentication owners

* style(push): brace moved fixture guards and cleanup
2026-11-11 14:03:10 -08:00
Noah d411a584fa fix(clipboard): paste macOS URLs copied without standard text (#36929) 2026-11-11 13:55:01 -08:00
Neil 3cd9f9981c fix(skills): ignore Claude desktop synced skills in feature install checks (#41257) 2026-11-11 13:53:24 -08:00
Jinwoo Hong 9bf3826210 perf(orchestration): an unreadable item holds back only its own conversation, and remote-owned queries use their indexes (#41121)
* perf(orchestration): an unreadable item holds back only its own conversation, and remote-owned queries use their indexes

* fix(orchestration): a held conversation stays skipped for its batch, and pulls past the hold-back cap wait locally
2026-11-11 13:50:52 -08:00
Neil 1708f1caee refactor(claude-accounts): organize sign-in and profile owners (#41222) 2026-11-11 13:47:58 -08:00
Neil 65d30b156a fix(computer-use): only SW_RESTORE minimized windows on Windows (#41253) 2026-11-11 13:45:40 -08:00
Neil 7a47001b2b fix(terminal): detect Codex drafts above a footer that names reasoning effort (#41256) 2026-11-11 13:40:17 -08:00
Neil a028c2e3c5 fix(terminal): keep word motion only for the US Option layer on B/F/D (#41255) 2026-11-11 13:40:08 -08:00
itigoppoanditigoppo 33c7352547 fix(github): resolve dotted SSH host aliases for account binding while preserving GHE hosts (#31766)
Co-authored-by: itigoppo <1428989+itigoppo@users.noreply.github.com>
2026-11-11 13:39:59 -08:00
Wooseong Kim 5b1b6fe056 fix(renderer): preserve spaced and escaped Windows path pastes in rich markdown (#24809) 2026-11-11 13:39:52 -08:00
gum798and서정화 6f6bb326e2 fix(editor): keep review note cards after an edit removes their lines (#18333)
Co-authored-by: 서정화 <seojeonghwa@Mac.mshome.net>
2026-11-11 13:39:45 -08:00
Nawapat Buakoet 04bbfd7a30 fix(workspace): name the GitHub link when it cannot be resolved (#24465) 2026-11-11 13:39:38 -08:00
Neil 53cdcde820 fix(source-control): stop cutting the AI commit subject at 72 characters (#41254) 2026-11-11 13:36:42 -08:00
Kelvin Amoaba 3edfe5e876 fix(native-chat): keep a launching Codex task's session out of chat and text-generation agents (#41243) 2026-11-11 21:33:55 +00:00
Dat 4f6d182dde feat(watcher): ignore mobile/monorepo build folders while keeping Pods live-watched (#28494) 2026-11-11 13:33:30 -08:00