Repository navigation
sync: upstream 0571e45107 into swaplabs/main - #56
Merged
Merged
Conversation
…ablyai#33121) Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
…server, cause, delay from measured RTT (stablyai#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
…stablyai#33129) Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
…age (stablyai#33133) Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
… coverage (stablyai#33140) Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
…verage (stablyai#33144) Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
…pt coverage (stablyai#33146) Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
…r on a booting distro (stablyai#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
…ai#33151) Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
…yai#33153) Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
…tions (stablyai#33161) Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
…lyai#33163) Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
…tablyai#33171) Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
…tablyai#33173) Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
…t cause of stablyai#33145) (stablyai#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 stablyai#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 stablyai#33145: a WSL service failure no longer falls back to the login shell and switches the direct git read path off.
…ai#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>
…lyai#33183) Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
…i#33189) Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
…sertions (stablyai#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>
…ap (stablyai#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.
…coverage (stablyai#33207) Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
…blyai#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>
* 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
…aude account switch (stablyai#30328) Leave a user's node or python program alone after a Claude account switch; unchecked terminals get an accurate toast. Fixes stablyai#30327 Co-authored-by: Adif Sgaid <69080239+adifsgaid@users.noreply.github.com>
* Reduce tab preview tooltip delay to 500 ms * Reduce tab hover card test delay expectations
* refactor: group filesystem IPC registration and suites * refactor: preserve lint baseline counts for relocated filesystem suites
…tablyai#33453) * test: remove low-value cases and repair behavioral assertions * test: prune repaired wall-clock finding from flaky-test baseline --------- Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
…unch metadata (stablyai#33317) Graceful close (mobile pane, headless tab, worktree stop) of a shell without launch metadata now sweeps descendants on macOS/Linux, matching desktop tab close, while sparing the shell's own nohup/disown jobs (login-wrapper aware). Windows graceful plain-shell close is unchanged. Fixes stablyai#16714
… TUI (stablyai#33466) Terminals created with a flagged agent command (e.g. `omp --thinking high`) now get the agent's identity at creation, so `tui-idle` waits for the agent instead of reporting ready early. Fixes stablyai#25264 Supersedes stablyai#25320 Co-authored-by: ggbdpq <67929842+ggbdpq@users.noreply.github.com>
…r its Stop hook (stablyai#33335) Keep tui-idle blocked when Codex paints its plan menu after the Stop hook. Fixes stablyai#25912 Supersedes stablyai#26492 Co-authored-by: Jinwoo Hong <73622457+Jinwoo-H@users.noreply.github.com>
…ws ConPTY (stablyai#33473) Ctrl+Enter reaches Claude Code as CSI-u (`\x1b[13;5u`) on local Windows ConPTY panes, matching macOS/Linux, so custom ctrl+enter keybindings work. Fixes stablyai#29711
…din (stablyai#33470) Windows managed hook skip paths (Devin/Grok/Cursor replay guards, and orca-agent-hook.exe) exit immediately instead of draining stdin through more.com, so a held-open writer can no longer hang the hook. Fixes stablyai#24907 Supersedes stablyai#24909 Co-authored-by: inforanger <29155427+inforanger@users.noreply.github.com>
…yai#33476) * test: exercise stale permits and Unicode frame boundaries * test: remove search schema inventory and clarify behavioral coverage --------- Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
…ablyai#29811) Read `codex login`'s stderr too: Codex prints the browser sign-in URL there (codex-rs/cli/src/login.rs), so WSL Codex sign-in opened nothing and spun until timeout. Each stream gets its own line buffer and the URL is published once.
…tory (stablyai#33477) Codex history now hides only internal thread sources (subagent, guardian_review, memory_consolidation); Desktop automation and agent-created threads show, matching `codex resume`. Bumps the session parse cache so hidden-cached threads are re-read once. Refs stablyai#15061 Supersedes stablyai#15062 Co-authored-by: Ouyang Xingyuan <45086632+apple-ouyang@users.noreply.github.com>
…n unsent draft (stablyai#33429) Hold the orchestration mailbox pointer (and coordinator nudges) while the agent's composer has an unsent draft, so Orca never submits over what the user is typing. Fixes stablyai#26992 Supersedes stablyai#27195 Co-authored-by: Hotragn <103170876+Hotragn@users.noreply.github.com>
…#33478) Codex usage no longer double-counts forked sessions: forks copy the parent's token_count events with fresh timestamps, so cumulative events are now keyed on turn id + totals (timestamp fallback when no turn id); the turn id is kept in the incremental-scan checkpoint and the usage cache is rebuilt once. Fixes stablyai#19139 Supersedes stablyai#19152 Co-authored-by: Jio Kim <26668612+MeroZemory@users.noreply.github.com>
…s first setup (stablyai#33479) On a Claude account's first setup, shared folders Claude already created (e.g. plugins/) are merged into the shared ~/.claude folder and linked instead of being skipped as user-owned; conflicts keep the user's copy and retain Claude's in <name>.orca-profile-merge. Refs stablyai#33170
…i#33483) Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
) Detect Qwen Code on Windows: exact node entrypoint identities for the npm (@qwen-code/qwen-code cli-entry/cli) and standalone (qwen-code/lib) layouts, and comparablePath now collapses . / .. segments so shim paths like .bin\..\ match. Fixes stablyai#17326 Supersedes stablyai#17382 Co-authored-by: Baojiang Lee <101562714+libaojiang@users.noreply.github.com>
…d let you remove them (stablyai#33450) * feat(ssh): list saved port forwards that couldn't start, with why, and let you remove them (stablyai#32484) A saved forward whose local port is taken, or that keeps failing, stayed saved but invisible, retried in the background with no way to remove it. The port-forward lists now show each saved forward that isn't open, with the last start error, and Remove deletes it by its mapping. * fix(ssh): a forward whose ssh exits after starting backs off like a failed start * fix(ssh): re-register the new forward channels, close a forward a restore reopened before removing it, and update IPC fixtures * fix(ssh): a flapping forward keeps its backoff streak until it stays up * fix(ssh): translate the saved-forward row, say Stopped for a forward that died, toast a failed remove, and reset backoff on manual edits * fix(ssh): keep saved forwards listed and removable while the host is offline; label the remove button; test the healthy-uptime reset * fix(ssh): mirror saved forwards from main with a stale-read guard, including hosts that never connect * fix(ssh): scroll the offline ports panel when saved forwards overflow it * test(e2e): give the saved-forward restart case's timeout its reason
…#33491) Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
…start (stablyai#31311) (stablyai#33489) Kimi sessions keep resuming across repeated Orca restarts: register Kimi's SessionStart hook (matcher ^resume$, so new sessions pay nothing) and map a resume to an idle session-start status that refreshes the resume record; recognise npm-installed Kimi (node_modules/@moonshot-ai/kimi-code/dist/main.mjs) on Windows so the pane isn't mistaken for a shell. Fixes stablyai#31311
Upstream range 30733ac..0571e45, 213 commits. 11 conflicted files, each one hunk; the fork's lines are kept unchanged on upstream's new code. - Managed-server update help (fork #17): RemoteServerUpdateStatus.tsx keeps the fork's help-URL branch first, ahead of upstream stablyai#33397's new managedOverSsh branch. The six conflicting catalogs (en es fr ja ko zh) take upstream's managedOverSshHelp plus the fork's two keys. - Auto-resume (fork #6): connect-pane-pty.ts installs the fork's resume recovery, then upstream stablyai#33315's pre-ready typed draft; session-reconcile-dispose.ts runs the fork's resume cleanup, then upstream's draft discard. - Update sources (fork #10 #16): updater.check-preflight.test.ts imports both the fork's window fake and upstream stablyai#33294's updaterMainWindow. - Fork build pipeline (fork #8): .gitignore takes upstream stablyai#33406's component-fixtures allow-list line plus the fork's two lines. Two breaks the conflict list did not show: - Upstream stablyai#33406 forbids importing a `.fixture` module outside tests. The fork's updater-release-source-feed.fixture.ts, imported by the updater test harness, is renamed .test-fixture.ts. - Upstream stablyai#33430's flaky-test ratchet baselined only upstream's test files. The fork's 17 rows (52 findings, all in fork-only test files) join that baseline. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 task done
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
This was referenced Oct 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ELI5
Upstream Orca moved forward 213 commits since yesterday's sync (#53). This PR merges them into
swaplabs/main. 11 files conflicted with fork changes, each in one small spot, and the fork's lines are kept unchanged. Two more things broke without a conflict: a new upstream lint rule and a new upstream test-pattern ratchet. Both are fixed here without changing any fork behaviour. This PR replaces #55 (headmain), which could not merge.What Changed
Upstream range
30733ac703..0571e45107, 213 commits (compare). One signed merge commit,d0a85cc508(Merge upstream main (0571e45107) into swaplabs/main), onsync/upstream-20261025, cut at the integration heada1c9ba1fd4.Conflicts, by fork PR (
orca-fork-ops conflicts)src/renderer/src/components/settings/RemoteServerUpdateStatus.tsxmanagedOverSshbranch at the top ofgetRemoteServerManualUpdateHelpsrc/renderer/src/i18n/locales/{en,es,fr,ja,ko,zh}.jsonmanagedOverSshHelpas the last key of the same objectmanagedByDeploymentHelpandhowToUpdatesrc/renderer/src/components/terminal-pane/pty-connection/connect-pane-pty.tsinstallAgentPreReadyTypedDraftafterinstallPtyInputRecoveryinstallAgentResumeRecovery(it must followinstallPtyInputRecovery), then upstream's draftsrc/renderer/src/components/terminal-pane/pty-connection/session-reconcile-dispose.tsdiscardAgentPreReadyDraftsrc/main/updater.check-preflight.test.tsupdaterMainWindowfrom the newupdater-test-main-window.tscreateUpdaterMainWindowFake, and upstream's test uses its helper.gitignoredocs/reference/component-fixtures.mddocs/reference/swaplabs-*.mdlinesRemoteServerUpdateStatus.tsx, why the fork's branch stays first: the fork's help-URL branch only fires for a host that reportsmanual-service-update-requiredand publishes anORCA_SERVER_UPDATE_HELP_URL, and it is what the fork's "How to update" link trails. Upstream's new branch is for a server this desktop deployed over SSH (orcadDeployment). Every case that occurs today behaves as before on each side. A devvms host is paired, not SSH-deployed, so it gets the deployment text and link. An SSH-deployed server has no help URL (the variable is set only inorca-serve.service), so it gets upstream's text. Only a host that is both would see the fork's text; keeping it first means the help text and the link always agree.For all 31 files both sides changed, the fork's added and removed lines against upstream are the same before and after the merge. The one exception is the six catalogs: the trailing comma the fork added moves from
legacyHelpto upstream's new last key.Breaks the conflict list did not show
src/main/updater-release-source-feed.fixture.ts→.test-fixture.ts; import insrc/main/updater-test-harness.tsno-restricted-importspattern: a*.fixturemodule is a dev-only component fixture and may be imported only from tests. The harness is not a test file, so the fork's import of this module failedoxlint*.test-fixture.ts, already a knip entry and an anti-slop test-support pattern) and follow the rename in the harness. The fork's other*.fixture.tsmodules are imported only by test files and are left aloneconfig/flaky-test-pattern-baseline.txtfork test, predates this ratchet, inserted in place. Upstream's rows are unchanged. Without them,pnpm lintandpnpm check:changedfail on any fork checkout, because their local scope is the whole fork delta. A precedent for a fork row in an upstream ratchet baseline isworkspace-record-read-baseline.txt(sync1a247d1c5c)No other fork lines were moved or dropped.
Upstream's own failures (reported, not patched)
check:flaky-test-pattern-ratchetfails on pristine upstream0571e45107too. Upstream's baseline predates stablyai#33407's move of the filesystem-watcher tests intosrc/main/ipc/filesystem/watchers/: 6 stale rows at the old paths, 6 unbaselined rows at the new ones. It also haswindows-pty-job.win32.test.tsat 8 against 6 andorchestration-idle-mail-delivery.spec.tsat 6 against 7. CI's "Enforce ratchets" step scopes to the files this PR changes, which include those, so it is expected to be red for upstream's reasons.Some notable upstream changes in the range
pnpm check:changedas the single pre-handoff gate (feat(devex): pnpm check:changed as the single pre-handoff gate stablyai/orca#33432), bundled renderer dev mode by default (perf(dev): serve the renderer with bundled dev mode by default stablyai/orca#33449);pty-pane-copies-untouched-main.test.ts. That is the test Host resume (#30): upstream PTY pane-copy census flags host-pane-agent-resume-start.ts #54 is about.Why
Daily upstream sync.
Linked Issue
N/A: daily upstream sync.
Visual Proof
N/A: no visible change in the fork's UI. The conflicts are in help-text selection, catalogs, terminal wiring and tests.
Testing
All checks ran on the merge result in the sync worktree, before the commit:
pnpm install --frozen-lockfile(the lockfile and everypackage.jsonequal upstream's).pnpm tcpasses, before and after the fixture rename. A deliberate type error in a scratch file made it fail, which proves the gate is live.orca-runtime.test.ts(it runs the fork'sworktree-ps-agent-row-dismissal.spec.ts), run with fixture signing off: 1,505 passed, 3 skipped. The fork's 3 e2e specs were not run.src/main/updater*,src/renderer/src/components/settings,src/renderer/src/components/terminal-pane,src/renderer/src/i18n, pluspty-pane-copies-untouched-main.test.ts: 907 files passed, 1 skipped; 8,415 tests passed, 38 skipped.check-changed-code-quality.mjswithORCA_SYNC_PR_DIFF_BASE=0571e45107. It found 1 finding across 328 fork files (the.fixtureimport above), and 0 after the rename.oxlintreports 0 errors, and every other step ofpnpm lintpasses on its own. The exception is the flaky-test ratchet. In the fork-delta scope (ORCA_SYNC_PR_DIFF_BASE=0571e45107, what a fork checkout sees after this merge) it passes. In this PR's CI scope it shows only upstream's own rows above.verify:localization-catalogandverify:localization-runtime-catalogalso pass.cloud/):oxlintwith the default, JS-plugin and React Doctor configs,ast-grep scan, andoxfmt --checkall pass. The pre-commit hook then ran normally, and the tree before the commit (291811324c) equalsHEAD^{tree}after it.d0a85cc508isGfrom the sync keyBF1DD75F888E96080C2453E2D9E158C5D6874235.AI Disclosure
Prepared by the "Orca upstream sync" automation (Claude Code, Claude Opus 5.5).
Agent skill upstream boundary
Notes
orca-fork-ops statusforswaplabs/main(a1c9ba1fd4) against upstream0571e45107, before this merge:LOCAL:prefix and no upstream PR.Upstream release tag
v1.4.240was copied to the fork.🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.