Commit Graph
20799 Commits
Author SHA1 Message Date
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
Aashish Mahato dd263743c3 fix(startup): seed HOME and distro bins into a packaged launch's env (#23285) 2026-11-11 13:33:23 -08:00
mousepotato03 b13956330e fix(tab-group): keep a window-drag handle when tabs fill the strip (#33988) 2026-11-11 13:32:03 -08:00
registered2nd 13f6f2a65c fix(terminal): re-arm split escape sequences omitted from reveal snapshots (#34272) 2026-11-11 13:31:56 -08:00
Brennan BensonandRenato Pires ed31974c2d fix: warn before closing a window with a busy native chat (#40953)
* fix: warn before closing a window with a busy chat

Co-authored-by: Renato Pires <contact@raydev.ca>

* test: cover missing chat status and child-only observations

* fix: synchronize the shared close-warning translation keys

---------

Co-authored-by: Renato Pires <contact@raydev.ca>
2026-11-11 13:30:07 -08:00
Brennan Benson aa6b4197b8 fix(chat): keep generated images visible with the final answer (#40935)
* fix(chat): keep generated images with settled answers

* fix(chat): deduplicate images against rendered Markdown

* Keep generated answer previews aligned with rendered Markdown

* Keep generated-image regressions in the existing rendered transcript suite

* Keep generated image renderer fixtures within their project boundary
2026-11-11 13:29:04 -08:00
Brennan BensonandChristopher Ryu 21f6ec6527 Fix Codex account status for Bedrock providers (#40905)
* Fix Codex account status for Bedrock and other built-in providers

Derive system-default authentication from the configured provider and honor the declared credential mode before reading ChatGPT identity.

Co-authored-by: Christopher Ryu <cryu17@gmail.com>

* Reuse provider classification until canonical config changes

* Bound provider config work and refresh after file removal

* Use portable module counters for provider config regression checks

* Complete the host target in the account warning fixture

* Include the account warning module in Node test typechecking

---------

Co-authored-by: Christopher Ryu <cryu17@gmail.com>
2026-11-11 13:28:16 -08:00
Kelvin Amoaba 654ca113d5 fix(jcode): show a swarm helper's permission request on the main row (#41240)
* fix(jcode): show a swarm helper's permission request on the main row

Since helper hooks are fenced off the coordinator's row, a helper blocked on
request_permission left the pane reading working while the swarm waited on a
user who never saw the question. A helper's request now restates the
coordinator's row as waiting with the helper's question, and its answer (or
the helper's turn ending) puts the saved row back. A rested row comes back as
a session boundary so the answer does not read as a second finished turn. The
root's own next hook drops the saved row.

* fix(jcode): restore helper permission waits onto the pane's current row

Restore the saved status onto the row the pane has now, so a pane move
between request and answer does not restore onto the old pane key. Ignore
helpers from an earlier launch, keep the wait until the main agent's row
actually replaces it rather than on any of its hooks, and show the next open
question when one of several helpers settles.
2026-11-11 21:27:32 +00:00
OrcaWinandOrcaWin ee6b0858cf test: remove automatic reply matrices and weak suites (#41238)
* test: remove automatic reply matrices and low-value suites

* test: remove retired matrix timer exceptions

---------

Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-11 13:18:44 -08:00
Brennan Benson 576a6c9342 Update browser navigation state without blocking page attachment (#41045)
* Keep browser chrome metadata current without synchronous guest reads

* Provide the guest Escape subscription in browser pane fixtures

* Provide native navigation state in browser guest fixtures

* Preserve browser navigation and loading across asynchronous metadata reads

* Retire browser metadata when its actual guest is removed

* Explain native identity casts in browser disposal fixtures

* Preserve URL titles for untitled client browser pages

* Preserve current browser navigation and untitled page labels

* Keep merged browser failure type within lint limit

* Keep merged browser failure type within lint limit

* Bound published browser titles to the existing wire limit

* Use template literals in browser title regression
2026-11-11 12:38:19 -08:00
Neil 21c8fdc07f fix(terminal): preserve host focus when CLI splits a parked tab (#41203)
* test(e2e): verify parked split by stable pane identity

* fix(terminal): preserve host focus for CLI splits

* fix(terminal): reveal non-activating splits in the background

* test(e2e): retain parked split focus screenshots in CI

* test(e2e): capture stalled split parking state

* fix(terminal): retain cold split targets during PTY adoption

* test(e2e): persist passing parked split proof files
2026-11-11 12:12:13 -08:00
Kelvin Amoaba 04537aabc6 fix(ai-vault): Session History Hand Off gives OpenCode sessions their full history (#41236)
OpenCode, OpenCode 2 and Z Code keep every conversation in one shared
database, so Session History could only hand off the row's preview
messages. The session's own host now copies that one conversation into
the per-chat hand-off snapshot the chat Hand Off already uses, and the
dialog points the new agent at it. Older hosts, SSH rows and failed
reads keep the preview.
2026-11-11 20:06:53 +00:00
OrcaWinandOrcaWin 6dd068e672 test: remove weak suites and duplicate recorder replays (#41234)
* test: remove weak suites and duplicate recorder replays

* test: satisfy recorder branch lint gate

---------

Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-11 12:00:24 -08:00
Jinwoo Hong c6467bbc53 fix(orchestration): tell the coordinator when a worker is lost (#40983)
* fix(orchestration): tell the coordinator when a worker is lost

A worker that could no longer run its task sent no mail: a failed start,
a person closing its pane, tab or chat, or a terminal gone after a restart.
Each now sends one "Worker lost without reporting" alert through the
turn-stop report, with its cause, last output and any leftover workspace.
An unexpected exit and a lost Codex app-server use the same path. An exit
or loss says the Dispatch is closed as failed and gives the retry command.
Failure text in the alert is redacted like terminal output.

The coordinator's own worker-stop stays silent, locally and on a paired
server. A finished turn is not reported when that turn's worker_done was
rejected; later turns still are. worker-read and worker-show say
"never started" for a start that never got a terminal.

* fix(orchestration): a lost worker's restart command names its Task id and suits its Task's state

- The command named the Task's label, not its id.
- Restart recovery puts the Task back to ready, which --retry-of refuses:
  the command is a plain worker-start then.
- worker-show does not call a paired server's failed worker "never
  started": its record carries no terminal details.

* test(orchestration): import the turn-stop report after main's test cleanup
2026-11-11 14:56:05 -05:00
Kelvin AmoabaandTheophileDiot cef9a2a1e7 fix(jcode): stop swarm helper hooks from overwriting the main agent's row (#41233)
Jcode's daemon fires an inline swarm worker's hooks with the coordinator
pane's key, so the worker's turn_end settled the main agent's turn and its
model and session replaced the main agent's. Jcode saves each worker's
session file with parent_id set before the worker runs, while the pane's own
session has none. The hook owner preflight reads that field once per session
(a 4 KB prefix, async, cached) and normalization drops hooks from sessions
with a parent.

Co-authored-by: TheophileDiot <tdiot@bunkerity.com>
2026-11-11 19:46:17 +00:00
ed5fce8f7d fix(emulator): keep wheel scrolling moving across simulator screen edges (#40362)
* fix(emulator): keep wheel scrolling moving across simulator screen edges

* test(emulator): keep wheel tests to the behavior contracts

* fix(emulator): drop wheel input when the control socket is closed

Replaying each edge segment through the gesture RPC opened a socket per
segment, could overlap them on one finger, and turned small scrolls into taps.

* fix(emulator): stop wheel playback on rotation and ignore retired control sockets

A replaced socket's late close reset the live socket's connected state and
keyboard timers, cancelling scrolls on the new socket.

---------

Co-authored-by: Kien Le <122910950+kien-ship-it@users.noreply.github.com>
Co-authored-by: Kelvin Amoaba <97001695+AmoabaKelvin@users.noreply.github.com>
2026-11-11 19:38:46 +00:00
OrcaWinandOrcaWin 54912d99dc test: remove 37 low-value cases and five whole suites (#41223)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-11 11:20:35 -08:00
Kelvin Amoaba 2a3bfb9f01 fix(terminal): keep a launching Codex task's session out of Orca terminals (#41220) 2026-11-11 19:15:18 +00:00
Kelvin Amoaba cedcb2fdc9 fix(omp): resume a profile's history session under that profile (#41221) 2026-11-11 19:13:01 +00:00
Kelvin Amoaba 3082e4aa2b fix(jcode): keep the Jcode agent row and show its turn on Linux (#41103)
* fix(jcode): keep the agent row for Jcode panes and read its working title

On Linux the Jcode release runs jcode-linux-<arch>.bin behind a jcode wrapper, so
the foreground read never identified the pane, and Jcode's own title
(<emoji> jcode/<server> <Codename> · work ~2s) was not classified. Once Jcode
replaced its startup title, the title-derived row lost its only identity and
disappeared. Map the platform binary to jcode, accept the server-qualified
identity title, and read the work/last tail as working/idle.

* fix(jcode): read the bare title tail only in a Jcode pane

The activity tail on conversation and SSH titles is too generic to prove an
agent, so title-only readers must not treat it as one. Gate it on the pane's
agent, as Hermes markers are, keep identity titles self-describing, narrow the
server segment, and keep the title strip linear.

* fix(jcode): keep the turn tail out of title-only readers

Title-only readers (completion tracking) saw a turn from Jcode's identity title
and then idle when Jcode switched to a conversation title naming another agent.
Read the tail only through the pane-scoped reader, check it before generic
title status in the sidebar row, and stop treating a bare jcode/<dir> as Jcode.

* fix(jcode): escape the title separator so the orcad bundle stays ASCII
2026-11-11 19:12:07 +00:00
Kelvin Amoaba 769bef7930 fix(cursor): list Cursor's CLI models in the Settings default-model picker (#41219) 2026-11-11 19:10:46 +00:00
Kelvin Amoaba d46cf4b295 fix(usage): keep deleted worktrees' sessions in the Orca usage totals (#41218)
Usage attribution only knew live worktrees, so deleting one moved its
sessions out of the Orca scope on the next scan and Stats & Usage totals
went down. Remember every worktree Orca has had in a small usage-owned
history and attribute against live plus remembered worktrees, with live
rows claiming reused paths first. The history loads off the main thread,
scans wait for it, and an unreadable or newer file is never overwritten.
2026-11-11 19:07:05 +00:00
OrcaWinandOrcaWin d5f6fe17bf test: remove 129 low-value cases and 21 whole suites (#41210)
* test: remove 83 low-value cases and ten whole suites

* test: remove 46 more low-value cases and eleven suites

---------

Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-11-11 11:03:08 -08:00