Commit Graph
16178 Commits
Author SHA1 Message Date
OrcaWinandOrcaWin ca310a5288 test: remove shallow checks and repair persistence and mobile oracles (#33239)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-24 12:31:21 -07:00
OrcaWinandOrcaWin f2446b92d7 test: remove ineffective checks and strengthen settings and notification coverage (#33235)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-24 12:15:15 -07:00
Neil 8733ec4033 refactor(persistence): colocate test fixtures and harness (#33233) 2026-10-24 11:56:22 -07:00
Jinjing 015fae84cc Keep search highlights visible in long session excerpts (#33220) 2026-10-24 11:35:58 -07:00
Jinjing da180863a9 Fix Resource Manager tab sizing and sort PTYs by workspace activity (#33226)
* Keep PTY resource tab mounted and sort workspaces by activity

* Fix Resource Manager tab sizing and verify PTY list scaling
2026-10-24 11:33:12 -07:00
OrcaWinandOrcaWin ddfa8544a4 test: remove shallow capability checks and repair boundary assertions (#33224)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-24 11:30:03 -07:00
Neil 13db649cc9 refactor(persistence): colocate loading and security tests (#33213) 2026-10-24 11:15:38 -07:00
Jinjing 899cfc6b6e fix: virtualize the quick command dropdown (#33218) 2026-10-24 11:05:09 -07:00
OrcaWinandOrcaWin 265f143ab8 test: strengthen palette and mobile coverage and trim redundant checks (#33214)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-24 10:59:25 -07:00
Jinjing 42f59f3460 Allow saving quick command lists beyond forty (#32972)
* Allow saving quick command lists beyond forty

Preserve compatibility by limiting older clients to readable commands

* Cover quick command persistence across client capabilities

* Reject edits to hidden quick commands from stale clients
2026-10-24 10:42:55 -07:00
OrcaWinandOrcaWin b24c4f6eb0 test: trim redundant checks and strengthen workspace persistence (#33208)
* test: trim redundant telemetry checks and exercise session producers

* test: include persistence producer in renderer typecheck

---------

Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-24 10:27:59 -07:00
OrcaWinandOrcaWin 5c447fb8af test: remove synthetic compatibility checks and strengthen workspace coverage (#33207)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-24 10:08:20 -07:00
Neil b7ca9d70ae refactor(persistence): colocate workspace and repository tests (#33203) 2026-10-24 10:05:05 -07:00
Jinwoo Hong d96dca39da fix(relay): place against min(configured, cell-reported) connection cap (#33039)
The director now accepts a cell heartbeat whose reported connection cap is at or below its configured cap, and places with the lower of the two; a reported cap above the configured one is still refused. A cap-only change keeps the cell's stored capacity rows. This lets the US cells' configured cap be raised once, ahead of their rolls, so an old process at the lower cap stays live until it is replaced, instead of desktops pointed at it being refused during a resize.
2026-10-24 12:51:08 -04:00
OrcaWinandOrcaWin f0ef250b12 test: remove duplicate capability coverage and strengthen boundary assertions (#33197)
* test: remove duplicate capability coverage and strengthen boundary assertions

* test: preserve background task name assertion across mock resets

---------

Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-24 09:49:07 -07:00
Neil fda92862c4 refactor(persistence): colocate terminal topology tests (#33191) 2026-10-24 09:14:42 -07:00
OrcaWinandOrcaWin 41d25c074e test: strengthen routing, scheduling, and session assertions (#33189)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-24 09:03:09 -07:00
OrcaWinandOrcaWin 6f0834212e test: repair benchmark runners and strengthen policy boundaries (#33183)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-24 08:43:22 -07:00
Neil df6bb97c14 refactor(codex): colocate app-server protocol owners (#33176) 2026-10-24 08:40:26 -07:00
OrcaWinandOrcaWin 5f3f0097cb test: strengthen transport, status, and permission assertions (#33177)
* test: strengthen transport, status, and permission assertions

* test: avoid preview screenshot after top-frame navigation

---------

Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-24 08:26:05 -07:00
Neil 4e7c3538e5 fix(wsl): stop the worktree watcher killing a cold distro's boot (root cause of #33145) (#33175)
* fix(wsl): the worktree watcher no longer probes a WSL distro's home synchronously at startup

For a project inside WSL the watcher resolved the workspace root before seeing the
repo is a UNC path it skips. That ran wsl.exe 'echo $HOME' synchronously with a 5 s
timeout: on a cold distro it blocked main for 5 s and killed the distro's first
boot, after which every wsl.exe call failed with Wsl/Service/E_UNEXPECTED. The
watcher now skips WSL repos first and resolves other roots asynchronously.

* revert(wsl): drop the transient E_UNEXPECTED retry from #33145

The error came from the watcher's synchronous home probe killing the distro's first
boot (fixed in the previous commit). Once that happens the distro answers every
wsl.exe call with E_UNEXPECTED for 14+ s, so a 2.5 s retry never recovered it; on
the measuring box it failed every attempt. With the trigger gone the retry is dead
weight.

* fix(wsl): skip mirrored WSL roots without probing; keep the direct-git guard

Review follow-ups: a Windows repo whose workspace root mirrors into WSL also probed
the distro's home (async, still killed at 5 s) only to skip it, so the watcher now
recognizes the mirror and keeps just the Git-common watch. The revert keeps one
piece of #33145: a WSL service failure no longer falls back to the login shell and
switches the direct git read path off.
2026-10-24 08:05:08 -07:00
OrcaWinandOrcaWin 35157974b9 test: consolidate duplicate checks and strengthen runtime assertions (#33173)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-24 07:48:25 -07:00
OrcaWinandOrcaWin e30184fa8d test: consolidate duplicate checks and strengthen runtime assertions (#33171)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-24 07:17:47 -07:00
OrcaWinandOrcaWin 79b87c4f7c test: tighten parser completion and mobile transport assertions (#33163)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-24 06:47:05 -07:00
Neil b900d9843f refactor(shared): colocate Jira rules and direct imports (#33164) 2026-10-24 06:46:07 -07:00
OrcaWinandOrcaWin 6f36523072 test: consolidate capability inventories and strengthen runtime assertions (#33161)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-24 06:35:33 -07:00
OrcaWinandOrcaWin 0f91578a9e test: repair GitHub, native preparation, and shared assertions (#33153)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-24 06:16:45 -07:00
Neil 7d0b3f938a refactor(shared): group native-chat stream and provider rules (#33150) 2026-10-24 05:48:42 -07:00
OrcaWinandOrcaWin 559377dc7d test: strengthen runtime, harness, and mobile review coverage (#33151)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-24 05:38:41 -07:00
Neil 9a8ede3be7 fix(wsl): retry a git read when wsl.exe hits a transient service error on a booting distro (#33145)
* fix(wsl): retry a git read when wsl.exe hits a transient service error on a booting distro

On a cold distro, concurrent first wsl.exe launches intermittently fail with
Wsl/Service/E_UNEXPECTED before the guest runs. The bridge's worktree listing gave
up on the first one, so a WSL project showed 0 workspaces until the user acted.
Reads now retry that one error up to three times (0.25, 0.75, 1.5 s).

* fix(wsl): bound transient-error retries per distro, honour aborts, keep the direct git path

Review follow-ups: after one read spends its retries the distro fails fast for 5 s
instead of every queued read sleeping in its admission slot; an abort or a disposed
caller ends the backoff at once; a transient service error no longer falls back to
the login shell and turns the direct read path off.

* test(wsl): drop type assertions from the transient-retry test
2026-10-24 05:13:46 -07:00
OrcaWinandOrcaWin 5a2d2f49bc test: strengthen RPC cancellation, release rejection, and mobile prompt coverage (#33146)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-24 05:05:06 -07:00
OrcaWinandOrcaWin 38ffe31706 test: remove redundant cases and strengthen browser and attachment coverage (#33144)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-24 04:48:15 -07:00
Neil ca4f4b4611 refactor(runtime): group session teardown and tab ownership (#33142) 2026-10-24 04:42:57 -07:00
OrcaWinandOrcaWin 9ebe41a763 test: remove duplicate search assertion and strengthen file and image coverage (#33140)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-24 04:24:49 -07:00
OrcaWinandOrcaWin 6386efa917 test: trim duplicate assertions and repair restore and document coverage (#33133)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-24 04:02:51 -07:00
OrcaWinandOrcaWin 3ae885be11 test: remove redundant cases and strengthen session boundary coverage (#33129)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-24 03:48:00 -07:00
Neil 2071e7be88 refactor(renderer): group GitHub task read and refresh owners (#33127) 2026-10-24 03:39:08 -07:00
Neil 59cc46994c fix(remote-terminal): calm, honest reconnect status — one notice per server, cause, delay from measured RTT (#33095)
* fix(remote-terminal): calm, honest reconnect status with one notice per server

* fix(remote-terminal): keep the SSH sign-in wait immediate under the calm reconnect banner

* fix(remote-terminal): a surface that loses its turn drops its notice at once

* fix(remote-terminal): resolved action cards and handed-off notices leave at once

* fix(remote-terminal): only the leader at the end of an outage holds its notice
2026-10-24 03:30:44 -07:00
OrcaWinandOrcaWin 7868c30ce7 test: trim redundant cases and repair session and hook assertions (#33121)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-24 03:19:34 -07:00
NeilandClaude 30733ac703 feat(telemetry): count Windows-drive WSL repos with WSL-made worktrees (#33104)
* feat(telemetry): count Windows-drive WSL repos with WSL-made worktrees

The daily wsl_usage_snapshot gains projects_wsl_windows_drive_wsl_worktrees: of the
Windows-drive repos that run Git in WSL, how many have a linked worktree WSL Git made
(a Linux-path link). Git for Windows can't take those over, so the D1c conversion
refuses them; this sizes that class before the bridge is removed. Bucketed count only,
read from the link files with no Git spawned; optional in the schema so older payloads
still validate.

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(telemetry): don't count Windows Git's //server/share worktree links as WSL-made

Review: a UNC link starts with '/' too. Reuse the prune guard's classifier, and note
that a repo whose .git is a file reads as having no worktrees (no Git is spawned).

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-24 02:57:07 -07:00
189eba29e6 fix(terminal): preserve output and parse barriers across xterm resize (#32750)
* fix(terminal): keep xterm parse barriers and the output behind them across a resize

Orca waits for xterm to finish parsing by writing an empty string with a
callback. In xterm 6.1, resize() drains the write queue through
WriteBuffer.flushSync, whose loop stops at a falsy chunk and clears the rest of
the queue. A resize while such a barrier was queued therefore dropped its
callback and every chunk written after it: replay guards and output waits fell
back to their stall timers, and that pane output never reached the screen.

The replay guard, output scheduler and write-pipeline probe now write a
zero-length Uint8Array through writeXtermParseBarrier. It parses as nothing, but
it is a truthy chunk, so the flush keeps going. Test fakes that recognised a
barrier by '' now check for a zero-length write. Regression tests use real
@xterm/headless and fail before the fix.

Fixes #26950

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(terminal): verify parse barriers across installed xterm runtimes

Exercise the existing contributor workaround against both browser and
headless packages through replay waits, scheduler waits and health probes.
Check FIFO callbacks, following bytes, parser tails and no-resize controls.
Register the bounded resize invariant as an experimental reliability gate.

Make terminal test writers accept string or Uint8Array and preserve textual
captures through the existing fixture conversion. Keep the original PR's
production implementation and contributor ancestry unchanged.

* test(terminal): complete byte barriers in unhide restore fixture

---------

Co-authored-by: outof-place <contact@outofplace.space>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 02:53:13 -07:00
Neil d3d429c156 refactor(renderer): group GitHub task mutation owners (#33113) 2026-10-24 02:42:36 -07:00
Neil 6ed2e6d300 fix(windows): include registry addon in relocated daemon host (#32194)
* fix(windows): include registry addon in relocated daemon host

* test(windows): preserve registry path in native-read child script

* fix(ci): match registry gate command to recorded validation
2026-10-24 02:33:18 -07:00
OrcaWinandOrcaWin abc5737cc1 test: remove duplicate mobile coverage and strengthen regression assertions (#33106)
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
2026-10-24 02:29:47 -07:00
NeilandClaude 0b4028ae99 fix(worktrees): don't prune worktrees the other Git (Windows or WSL) created (#33103)
* fix(worktrees): don't prune worktrees the other Git (Windows or WSL) created

On Windows one repo can hold linked worktrees written by both Git for Windows
(link C:/...) and WSL Git (/mnt/c/..., /home/...), e.g. after the project runtime
toggle switched it. Each Git reads the other's links as missing, and the
`git worktree prune` Orca runs after removing a worktree (and before deleting a branch
held by one) deleted those worktrees' metadata, leaving checkouts git no longer knows.
All five prune sites now go through pruneGitWorktrees, which reads the link files first
and refuses (through each site's existing failure path) when any link is foreign to the
Git that would run.

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(worktrees): lock the other Git's entries for the prune instead of skipping it

Review: refusing the whole prune broke stale-registration recovery and left branches
undeletable in mixed repos, and reading <cwd>/.git/worktrees missed bare and linked
checkouts. Now the other Git's entries get a marked lock file for the prune (git never
prunes a locked entry; a user's existing lock is kept), the rest prune as before, and
the admin dir comes from rev-parse --git-common-dir once routing is settled.
//server/share links read as Windows Git's.

Co-Authored-By: Claude <noreply@anthropic.com>

* test(worktrees): drop a type assertion from the prune guard test

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(worktrees): serialize guarded prunes per repo and reclaim stale guard locks

Re-review: two prunes in one repo could interleave so the first's unlock let the
second prune the other Git's entry, and a crash between lock and unlock left a lock
read as the user's forever. Prunes now chain per admin dir, and a lock carrying the
guard's own reason is reclaimed.

Co-Authored-By: Claude <noreply@anthropic.com>

* test(worktrees): assert the overlapping prune waits, not only its outcome

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-24 02:26:50 -07:00
Neil 1275229eec fix(agents): restart invalidated initial detection probes (#32558) 2026-10-24 02:17:17 -07:00
Wooseong KimandNeil 770e39f563 fix(dashboard): handle hidden pop-out transition readiness (#24470)
* fix(dashboard): skip hidden pop-out view transitions

A column change in a hidden Agent Dashboard pop-out started a View
Transition whose ready promise rejects with InvalidStateError. Nothing
observed that promise, so each move became an unhandled rejection.
Skip the transition while the document is hidden, and consume ready
when a transition still starts.

Fixes #21323

* fix: preserve visible dashboard transition errors

* test(dashboard): preserve unrelated hidden transition errors

---------

Co-authored-by: Neil <neil@stably.ai>
2026-10-24 02:17:13 -07:00
5ce9d58b2d fix(agent-hooks): force C numeric locale on POSIX curl timeouts (#19600)
* fix(agent-hooks): force C numeric locale on POSIX curl timeouts

curl parses --connect-timeout/--max-time with locale-sensitive strtod, so comma-decimal locales reject 0.5 and every hook silently falls into the restart spool.

Fixes #19578

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(agent-hooks): neutralize LC_ALL before setting LC_NUMERIC=C on POSIX curl

Signed-off-by: siddiqui irshad <mohdirshad1306@gmail.com>

* style(agent-hooks): format scoped curl commands

* test(hooks): expect scoped curl locale in Muse install script

---------

Signed-off-by: siddiqui irshad <mohdirshad1306@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Neil <neil@stably.ai>
2026-10-24 02:17:08 -07:00
Neil 1e341b6edf fix(terminal): reject creates for durably closed tab identities (#32190) 2026-10-24 02:16:29 -07:00
Neil 1af7bc6c77 fix(runtime): preserve working hooks across idle title repaints (#32195) 2026-10-24 02:11:07 -07:00