Commit Graph
9477 Commits
Author SHA1 Message Date
Neil bea5ceee5b Merge branch 'ra/max-lines-bottom-14-relay-dispatcher' into ra/max-lines-bottom-15-mobile-host-screen 2026-08-29 15:51:30 -07:00
Neil cc23ba47ff Merge branch 'ra/max-lines-bottom-13-gitlab-item-dialog' into ra/max-lines-bottom-14-relay-dispatcher 2026-08-29 15:51:29 -07:00
Neil 8246b4d49f Merge branch 'ra/max-lines-bottom-12-daemon-init' into ra/max-lines-bottom-13-gitlab-item-dialog 2026-08-29 15:51:28 -07:00
Neil 61736a76af Fix F2-allowlist for #17161 2026-08-29 15:51:28 -07:00
Neil 63b2fa20ff Merge branch 'ra/max-lines-bottom-11-settings-navigation' into ra/max-lines-bottom-12-daemon-init 2026-08-29 15:51:27 -07:00
Neil 6ff9422f79 Fix F4-navtest for #17157 2026-08-29 15:44:56 -07:00
Neil 4554fedaa8 Merge branch 'ra/max-lines-bottom-10-automation-dispatch-events' into ra/max-lines-bottom-11-settings-navigation 2026-08-29 15:44:55 -07:00
Neil c546a13aef Merge branch 'ra/max-lines-bottom-9-hosted-review-creation' into ra/max-lines-bottom-10-automation-dispatch-events 2026-08-29 15:44:54 -07:00
Neil d673898f71 Merge branch 'ra/max-lines-bottom-8-attach-services' into ra/max-lines-bottom-9-hosted-review-creation 2026-08-29 15:44:53 -07:00
Neil ae1ec9386a Merge branch 'ra/max-lines-bottom-7-external-manager' into ra/max-lines-bottom-8-attach-services 2026-08-29 15:44:52 -07:00
Neil 065db13869 Merge branch 'ra/max-lines-bottom-6-mobile-troubleshoot' into ra/max-lines-bottom-7-external-manager 2026-08-29 15:44:51 -07:00
Neil c5a4bff936 Merge branch 'ra/max-lines-bottom-5-pane-tree-ops' into ra/max-lines-bottom-6-mobile-troubleshoot 2026-08-29 15:44:51 -07:00
Neil d7030b4f91 Merge branch 'ra/max-lines-bottom-4-prune-resolved' into ra/max-lines-bottom-5-pane-tree-ops 2026-08-29 15:44:50 -07:00
Neil f5a52b96be Merge branch 'ra/max-lines-bottom-3-mobile-browser' into ra/max-lines-bottom-4-prune-resolved 2026-08-29 15:44:49 -07:00
Neil b034d83215 Merge branch 'ra/max-lines-bottom-2-scheduler' into ra/max-lines-bottom-3-mobile-browser 2026-08-29 15:44:48 -07:00
Neil 4dae0df521 Fix F1-cycle for #17131 2026-08-29 15:44:48 -07:00
Neil 26e168d5cb Merge branch 'ra/max-lines-bottom-1-speech' into ra/max-lines-bottom-2-scheduler 2026-08-29 15:44:46 -07:00
Neil 3f446d9a61 Fix F3-speech for #17123 2026-08-29 15:44:46 -07:00
Neil 6dae4dee95 Merge remote-tracking branch 'origin/main' into ra/max-lines-bottom-1-speech 2026-08-29 15:44:44 -07:00
Jinjing 2214d29f15 fix(browser): close guest-owned split tab (#17281)
* fix(browser): close guest-owned split tab

* fix: check sourceId before toggling floating panel on close

The empty-panel toggle is the ambient fallback only. Guest-initiated
closes (with sourceId) target the main workspace and should not toggle
the panel.

* test(browser-split-shortcuts): remove terminal-mirrors close test and un

Removes test case that verified Cmd+W closes guest-owned browser splits when
active-tab mirrors point to a terminal, along with the helper function and
unused fixture properties that only that test required.
2026-08-29 15:43:36 -07:00
Jinjing 8b01cf1a48 Clarify automation history unavailability and improve recovery UX (#17284)
* Clarify automation history unavailability and improve recovery UX

- Improve error message to explain run history is unavailable due to host
  version requirements, not automation failure
- Hide misleading "0 runs" count badge when history is unavailable
- Deep-link "update server" recovery actions to specific runtime environment
  in settings instead of pane root
- Add test coverage for run count hiding and recovery targeting

* Watch for deep-linked settings targets that render asynchronously

Some settings panes (such as Remote Orca Servers) fetch and render their
rows asynchronously. Deep links can name targets that don't exist yet,
but the scroll effect has no way to know when they finally mount. Add a
MutationObserver-based watcher to detect when async rows appear and
trigger scrolling.
2026-08-29 15:07:38 -07:00
Neil b826b3fa5b feat(editor): raise rich Markdown size limit to 600 KB (#17288) 2026-08-29 15:03:36 -07:00
JahyunBaek e3757a1d30 fix(worktree): ignore orphan remote-tracking refs in branch conflicts (#16699)
Refs #16646

Unify native, WSL, and direct SSH conflict checks behind the execution host, remove the duplicated SSH classifier, and cover orphan/configured remote behavior across both paths.
2026-08-29 14:36:24 -07:00
Neil 7655d20f04 fix(terminal): complete OMP stale cwd recovery (#17154) 2026-08-29 14:34:50 -07:00
JahyunBaekandClaude Opus 5 aa95bdb11a test(shared): stop two suites asserting POSIX separators on Windows (#16511)
Both files describe paths with POSIX literals while their subjects compose
paths through `node:path`, so the assertions only hold where the separator
happens to be `/`.

`node-markdown-document-discovery` keys its fake tree at `/repo/docs` and
`/repo/one`, but `discoverMarkdownRelativePaths` descends with
`join(absoluteDirectoryPath, entry.name)` — `\repo\docs` on win32. The child
lookup misses, `readDirectory` yields nothing, and the walk stops at the root:
`docs/guide.mdx` disappears and the depth-limit case never reaches its limit,
so it resolves `[]` instead of rejecting. Keying the children with `join` walks
the tree the subject actually walks.

`git-fetch-head-lock` expects `cwd: '/tmp/repo'` from a subject that returns
`path.resolve(cwd, 'repo')`, which is `C:\tmp\repo` on win32. Asserting through
`path.resolve` pins the behaviour — that `-C` and `--git-dir` are resolved
against the cwd — rather than the separator of whichever machine runs the suite.

Verified on Windows 11: the two files go from 3 failed / 12 passed to
14 passed / 1 skipped, and the wider `src/shared` run shows no regression.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-29 14:23:22 -07:00
Jinjing 67fa855b6c Make worktree palette hint rows keyboard-clickable (#17272)
* Make worktree palette hint rows keyboard-clickable

Hint entries like "See more" are now CommandItems that can be navigated with arrow keys and activated with Enter, instead of being non-interactive divs. This allows keyboard-only users to access the expand actions without mouse interaction.

* Make worktree palette "See more" keyboard-navigable

Preserve cursor position when expanding via keyboard: auto-select the first
newly revealed item at the previous index and restore input focus.
2026-08-29 14:15:45 -07:00
Neil 2dfaa676d8 chore: update oxlint and oxfmt (#17150) 2026-08-29 14:13:35 -07:00
Neil b17f60d744 build: upgrade to pnpm 12 (#17156) 2026-08-29 14:13:26 -07:00
Neil 78bba0772a perf(markdown): cache repeated syntax highlighting (#17158) 2026-08-29 13:59:45 -07:00
Neil 0bf5361c92 perf(markdown): update code highlighting incrementally (#17147) 2026-08-29 13:52:16 -07:00
Neil eb00123a81 perf(markdown): skip unmatched list tokenizer scans (#17134) 2026-08-29 13:43:27 -07:00
Brennan BensonandBrennan Benson 11d8673112 test(cross-version-wire): derive skew expectations from the baseline under test (#17178)
* test(cross-version-wire): derive skew expectations from the baseline under test

The cross-version wire job pairs current code against whichever release tag is
newest, so a hand-written "the old side does not have X" assertion expires by
itself: v1.4.192 was the first tag containing the SnapshotStart `terminalOwner`
field, and cutting it turned the new-client/old-server pairing red on unrelated
pull requests with no code change anywhere.

Read what each build publishes from that build. Each host is now paired against
a client of its own version to produce a reference, and the skewed pairings are
compared against that reference, so the expectation is whatever the release
actually shipped. The same class of assertion in the agent-session suite —
"the old build advertises no structured capability and registers no structured
method" — becomes "each build's advertisement agrees with what it registers",
and the "client too old to know this capability" is derived by removing the
capability from the baseline's own list.

The guard is unchanged in strength: a field the old host still publishes may not
be dropped, skew may not change what a host puts on the wire, and a new pairing
asserts the oracle still stalls when a peer cannot decode an opcode the other
side sends.

* test(cross-version-wire): exercise release structured methods

* test(cross-version-wire): load the registered method manifest

* test(cross-version-wire): assert execution, not registration, on both host gates

The release-shaped checkout gate accepted any reply that was not
method_not_found, so a registered-but-throwing handler passed it. The
capability gate asserted a shared host spy had been called at all, so the
second method mapped to that spy could stop reaching the host unnoticed.

* test(cross-version): make the release-shaped skew cover the whole agent-session manifest

The release-shaped checkout is the only place the "registered means usable"
claim is executable today — the baseline release registers none of these
methods — and it was exercising one of sixteen. A handler registered and
returning an execution error passed the suite.

- Declare each method's result in the manifest, so "answered" is the contract
  rather than "did not say method_not_found".
- Give each build a seam to install a host into its own module slot; a release
  checkout has its own copy, so the working tree's host was never this
  dispatcher's, and every host-backed method answered
  structured_agent_session_unsupported — the capability gate's own words.
- Run one execution contract over both skews instead of two divergent loops.
- Pair the AI Vault never-called spy with a positive control; renaming the
  runtime method it watches left it green.

---------

Co-authored-by: Brennan Benson <brennanbenson@Brennans-MacBook-Pro.local>
2026-08-29 13:42:50 -07:00
Neil 7c0c9cee57 perf(markdown): skip closed-search update renders (#17162)
* perf(markdown): skip closed-search update renders

* test(markdown): stress closed-search updates
2026-08-29 13:41:33 -07:00
Jinjing 9940355f6e Improve worktree palette layout with flex-1 titles (#17273)
Adds flex-1 to palette open tab titles so they expand to fill
available space, making better use of the palette's horizontal layout.
2026-08-29 13:33:35 -07:00
github-actions[bot] a1f198be0d Update README downloads badge 2026-08-29 12:31:39 +00:00
Neil f01f38eac5 Retarget mobile view settings source test 2026-08-29 04:41:34 -07:00
Neil 0b1d3e3d46 Split mobile host screen 2026-08-29 04:32:18 -07:00
Neil f7bec75a23 Split relay dispatcher layers 2026-08-29 04:10:58 -07:00
Neil be187b4853 Split GitLab item dialog 2026-08-29 03:53:05 -07:00
Neil 9e785157d5 Split daemon initialization lifecycle 2026-08-29 03:30:57 -07:00
Neil e68a55ee46 Split settings navigation metadata 2026-08-29 03:15:09 -07:00
Neil 51ed7d4f67 Pin pnpm and rebalance scheduled E2E (#17133)
* Pin pnpm and rebalance scheduled E2E

* Give scheduled E2E failure headroom
2026-08-29 03:13:46 -07:00
Neil efc05f996d Split automation dispatch event handling 2026-08-29 03:08:51 -07:00
Neil 1e060811fe Split hosted review creation checks 2026-08-29 03:01:34 -07:00
Neil 8135c777f9 Split main window service attachments 2026-08-29 02:56:04 -07:00
Neil 06d3c47b28 Split external automation manager 2026-08-29 02:48:27 -07:00
Neil fb6c2800ee fix(gpu): capture hardware identity in crash reports (#16973)
* fix(gpu): capture hardware identity in crash reports

* fix(gpu): order bounded crash diagnostics before fallback

* fix(gpu): keep fallback persistence ahead of diagnostics
2026-08-29 02:41:53 -07:00
Neil ce25e7f3bb Extract mobile troubleshoot screen styles 2026-08-29 02:39:13 -07:00
Junhyeok Chae 314dcba98b feat(i18n): localize Agent Dashboard to Korean (#17121)
- Translate Agent Dashboard column headers (Needs You / Working / Idle), board title, and total count.
- Translate empty-column placeholder, "You" message badge, terminal preview actions, and error-boundary copy.
- Resolves English fallback in the Agent Dashboard (dashboardPopout) under the Korean locale; only "Done" was previously translated.
2026-08-29 02:38:32 -07:00
Neil 4875b64293 Split pane tree equalization logic 2026-08-29 02:36:26 -07:00