Commit Graph
8614 Commits
Author SHA1 Message Date
JinjingandOrca e25da448ee fix(monaco): disable syntax validation in diff viewer (#1206)
The sandboxed TS worker parses concatenated original+modified text in
the diff viewer, producing fake parse errors like "',' expected (1005)".
Disable syntax validation alongside the already-disabled semantic and
suggestion diagnostics; tokenization still provides colorization.

Co-authored-by: Orca <help@stably.ai>
2026-04-27 23:35:38 -07:00
JinjingandOrca 37e554b65a Squashed commits (#1203)
- fix(browser-pane): ensure tooltip reliably triggers on container hover

Co-authored-by: Orca <help@stably.ai>
2026-04-27 23:30:59 -07:00
JinjingandOrca 6cd8a92e20 fix(e2e): update worktree test for tabbed Create Workspace modal (#1202)
Remove assertions on StartFromField (deleted in #1191); keep getBaseRefDefault
IPC round-trip + render-error sweep as the #1186 regression guard.

Co-authored-by: Orca <help@stably.ai>
2026-04-27 23:30:09 -07:00
JinjingandOrca 6212bc76b4 feat(cmd-j): sort by recency on empty query with worktree cap (#1201)
Empty-query Cmd+J now uses pure recency (lastActivityAt) so it's a predictable jump-back surface. Typing still uses smart-sort for ranking. Adds a hint row when worktrees are capped and browser tabs are present.

Co-authored-by: Orca <help@stably.ai>
2026-04-27 23:25:43 -07:00
JinjingandOrca 9a7cfd4985 fix(ssh): support new markdown file creation on SSH worktrees (#1199)
Skip the local shell.pathExists probe when a connectionId is present and
forward connectionId through to fs.createFile, so 'New Markdown File'
works on SSH worktrees.

Co-authored-by: Orca <help@stably.ai>
2026-04-27 23:03:03 -07:00
github-actions[bot] 8559d07509 release: v1.3.23-rc.1 v1.3.23-rc.1 2026-04-28 05:48:26 +00:00
NeilandOrca 0e8571b58d Tabbed Create Workspace dialog (Quick / Create from…) (#1191)
Co-authored-by: Orca <help@stably.ai>
2026-04-27 22:48:04 -07:00
JinjingandOrca a110b6d794 feat(ui): unify SSH workspace icon to Server across all surfaces (#1198)
SSH workspaces previously rendered as Globe in some places and Wifi in
others. Globe implies web/internet and Wifi implies wireless network
strength — neither reads as "remote machine". Use Server/ServerOff
across every SSH context for a consistent mental model. Globe remains
in true browser/web surfaces (browser pane, address bar, tabs, clone
from URL, Browser settings pane).

Co-authored-by: Orca <help@stably.ai>
2026-04-27 22:31:11 -07:00
Jinwoo HongandOrca 3abf68dbef fix(terminal): restore cursor visibility after scrollback replay (#1192)
Co-authored-by: Orca <help@stably.ai>
2026-04-27 21:50:13 -07:00
Brennan BensonandOrca 4279fc8075 feat(agent-hooks): on-disk endpoint discovery for surviving PTYs (v2) (#1196)
Co-authored-by: Orca <help@stably.ai>
2026-04-27 21:49:18 -07:00
Brennan BensonandOrca 812ca5488b fix(preload): collapse index.d.ts into type-checked api-types.ts (#1197)
Co-authored-by: Orca <help@stably.ai>
2026-04-27 21:46:17 -07:00
Brennan BensonandOrca 76a1c691e9 test(e2e): assert on rendered DOM in 5 specs previously store-tautologies (#1194)
Co-authored-by: Orca <help@stably.ai>
2026-04-27 20:55:47 -07:00
github-actions[bot] 4563d753bf release: v1.3.22 v1.3.22 2026-04-28 02:42:39 +00:00
Brennan BensonandOrca 1cfc3256c5 feat(status-bar): restructure memory/CPU popover and add row actions (#1190)
Co-authored-by: Orca <help@stably.ai>
2026-04-27 18:11:59 -07:00
Brennan BensonandOrca 0ea27dfdd2 test(e2e): drive real composer flow for worktree creation (#1193)
Co-authored-by: Orca <help@stably.ai>
2026-04-27 17:42:03 -07:00
github-actions[bot] 8f97e0009e release: v1.3.22-rc.6 v1.3.22-rc.6 2026-04-27 23:54:23 +00:00
Neil 1839a50c92 fix(new-workspace): unwrap getBaseRefDefault envelope in StartFromField (#1189) 2026-04-27 16:53:45 -07:00
Brennan BensonandOrca 3fe7162634 fix(sidebar): don't bump lastActivityAt when worktree is activated by click (#1169)
Co-authored-by: Orca <help@stably.ai>
2026-04-27 15:53:52 -07:00
github-actions[bot] 821c9639fd release: 1.3.22-rc.5 [rc-slot:2026-04-27-15] v1.3.22-rc.5 2026-04-27 22:14:03 +00:00
github-actions[bot] d8beb057c9 release: v1.3.22-rc.4 v1.3.22-rc.4 2026-04-27 21:55:00 +00:00
Brennan BensonandOrca 3edb2f3ea2 fix(updater): surface user-initiated check failures when GitHub is down (#1181)
Co-authored-by: Orca <help@stably.ai>
2026-04-27 14:50:39 -07:00
Kevin Acuña 7f6d42134d fix: resolve letter window shortcuts by layout-aware key (Dvorak/Colemak/AZERTY) (#1015) 2026-04-27 14:09:35 -07:00
github-actions[bot] 4d9816283a release: v1.3.22-rc.3 v1.3.22-rc.3 2026-04-27 21:05:44 +00:00
Brennan BensonandOrca 76139f88a9 fix: support upstream remote as base ref for fork workflows (#1186)
Co-authored-by: Orca <help@stably.ai>
2026-04-27 13:51:19 -07:00
NeilandOrca 4ad1458fad fix(release): derive prerelease state from tag shape, not release flag (#1187)
Two interacting bugs produced v1.3.1-rc.4 today:

1. release-cut.yml used `gh release list --exclude-pre-releases` to
   find latest_stable. That filter checks the GitHub `isPrerelease`
   flag, which had been flipped to `false` on several RC releases
   (including v1.3.22-rc.2 and v1.3.1-rc.3). The query returned an
   RC tag, and bump() then silently mis-parsed `1.3.1-rc.3` via
   `Number("1-rc") = NaN` -> `(NaN||0)+1 = 1`, yielding base=1.3.1.

   Fix: filter by tag shape (no `-rc.`) in jq so an RC tag can never
   be treated as stable, regardless of metadata. Also strip any
   prerelease suffix in bump() and semver_gt() so the numeric math
   is robust even if a caller passes a dirty input.

2. release.yml's final publish step only ran `--draft=false`, leaving
   the `prerelease` flag at whatever electron-builder last wrote. When
   that flag ended up false on an RC, GitHub marked the RC as the
   "latest" release.

   Fix: re-assert `--prerelease=<derived from tag>` alongside
   `--draft=false` so the final state is a function of the tag name,
   not of any intermediate publisher behavior.

Co-authored-by: Orca <help@stably.ai>
2026-04-27 13:49:41 -07:00
github-actions[bot] 6b7d7d7cc0 release: v1.3.1-rc.4 v1.3.1-rc.4 2026-04-27 20:02:27 +00:00
Brennan BensonandOrca dd1ed7c697 fix(cli): record back/forward history for CLI-activated worktrees (#1166)
Co-authored-by: Orca <help@stably.ai>
2026-04-27 12:43:02 -07:00
Jinwoo HongandOrca 75c6f25887 feat(linear): add create-issue button for feature parity with GitHub (#1185)
Co-authored-by: Orca <help@stably.ai>
2026-04-27 12:28:09 -07:00
Jinwoo Hong ba0f263df1 Fix shell-ready zsh wrapper self loops (#1184) 2026-04-27 12:13:45 -07:00
Jinwoo Hong d8d2c0f033 Scope pending PTY spawns to terminal panes (#1182) 2026-04-27 11:55:56 -07:00
Jinwoo HongandOrca ead2368230 fix(tab-bar): dismiss new-tab menu when clicking browser webview (#1183)
Co-authored-by: Orca <help@stably.ai>
2026-04-27 11:45:31 -07:00
JinjingandOrca 6978e6a4aa feat(cmd-j): show Recent Worktrees section + repo/branch composite search (#1180)
- Surface top 3 worktrees under a RECENT WORKTREES header on empty query
  when there are ≥4 worktrees, with a WORKTREES header for the rest
- Support "repo/branch" composite queries in the palette search, with
  highlight ranges on both segments
- Add placeholder hint for the new composite query

Co-authored-by: Orca <help@stably.ai>
2026-04-27 11:32:40 -07:00
github-actions[bot] 8cce94eb5a release: v1.3.1-rc.3 v1.3.1-rc.3 2026-04-27 18:32:06 +00:00
JinjingandOrca 6d2212c068 chore: remove pr-size-labeler workflow and config (#1177)
- chore: remove pr-size-labeler workflow and config

Co-authored-by: Orca <help@stably.ai>
2026-04-27 10:11:21 -07:00
github-actions[bot] a06b85078f release: v1.3.22-rc.2 v1.3.22-rc.2 2026-04-27 17:04:54 +00:00
JinjingandOrca 91b7068ab4 fix(sidebar): Cmd+Shift+Up/Down crosses Pinned/All boundary when collapsed (#1176)
Derive keyboard cycle order from an all-expanded layout so collapsed groups don't cause worktrees to be skipped, and uncollapse the All header on reveal when groupBy is 'none'.

Co-authored-by: Orca <help@stably.ai>
2026-04-27 09:59:29 -07:00
JinjingandOrca abd0ab9f49 fix(monaco): disable semantic validation in diff viewer (#1175)
- fix(monaco): disable semantic validation in diff viewer

Monaco's sandboxed TS worker cannot resolve cross-file imports, cascading
into a long tail of false semantic diagnostics beyond the previously-ignored
codes. Replace the growing ignore list with noSemanticValidation; keep
syntax validation for genuine parse errors.

Co-authored-by: Orca <help@stably.ai>
2026-04-27 09:58:41 -07:00
JinjingandOrca 2c2d970c14 fix(cmd-j-palette): increase selected row contrast (#1174)
- fix(cmd-j-palette): increase selected row contrast

Co-authored-by: Orca <help@stably.ai>
2026-04-27 09:57:08 -07:00
JinjingandOrca cfe247659a opt: disable GitHub attribution by default (#1173)
Co-authored-by: Orca <help@stably.ai>
2026-04-27 09:53:33 -07:00
github-actions[bot] 830b78e0a7 release: 1.3.22-rc.1 [rc-slot:2026-04-27-03] v1.3.22-rc.1 2026-04-27 10:35:49 +00:00
github-actions[bot] 4af21e1793 release: v1.3.22-rc.0 v1.3.22-rc.0 2026-04-27 07:49:33 +00:00
NeilandOrca 5fe4fd4853 fix(pty): honor Windows shell selection on daemon path + shell-specific icons (#1164)
* fix(pty): honor Windows shell selection on the daemon path + shell-specific icons

The "+" menu picker and the Settings → Default Shell preference both set a
shellOverride, but the daemon-backed PTY path never forwarded it. Every
Windows terminal ended up as PowerShell (or cmd.exe via COMSPEC) no matter
what the user picked.

Fix:
- Thread shellOverride through daemon-pty-adapter → createOrAttach RPC →
  terminal-host → pty-subprocess, and actually resolve the correct launch
  args (chcp for CMD, $PROFILE dot-sourcing for PowerShell, /mnt/<drive>
  cwd translation for WSL) on the daemon path.
- Extract the Windows shell-args decision into a shared helper
  (resolveWindowsShellLaunchArgs) so LocalPtyProvider and the daemon
  spawner cannot drift again.
- In ipc/pty.ts, fall back to the persisted terminalWindowsShell setting
  when no per-tab override is sent, so the daemon path honors the user's
  Default Shell preference the same way LocalPtyProvider already did.

UI polish on the "+" dropdown and tab strip:
- Drop the "Default" tag next to the top entry (takes too much space).
- Rename "Command Prompt" → "CMD Prompt" to fit next to the Ctrl+T hint.
- Replace the generic terminal glyph with brand-style icons per shell
  (ShellIcon). Both the "+" menu and the per-tab strip use the same
  icon set so a WSL tab is visually distinct from a PowerShell tab.

Co-authored-by: Orca <help@stably.ai>

* fix(daemon): add oxlint-disable max-lines to daemon-server

CI counts 312 non-blank/non-comment lines for daemon-server.ts after the
shellOverride plumbing was added, exceeding the 300-line .ts override.
The file is a single RPC route table; splitting it would leak the host
reference across modules for no readability win, so add a scoped disable
with the rationale.

Co-authored-by: Orca <help@stably.ai>

* chore(lint): disable max-lines on pre-existing 312-line tabs-hydration test

Unrelated to the shell-selection fix, but surfaced on PR CI: the file is
right at oxlint's 300-line .ts ceiling; each case in the table is a
minimal fixture + assertion, so splitting it across files would scatter
closely related regression coverage for a single reducer.

Co-authored-by: Orca <help@stably.ai>

* chore(lint): disable max-lines on shared text-search module

The shared text-search module exceeds oxlint's 300-line .ts ceiling. It
is the single source of truth for rg arg construction, rg --json parsing,
git-grep submatch parsing, and relative-path normalization shared between
the local main process and the SSH relay. Re-splitting it would
re-introduce the maxBuffer divergence the design doc explicitly calls out.

Also reverts two speculative oxlint-disable directives on daemon-server
and tabs-hydration.test — those files were not the offender; CI's error
message elides the file path but running the lint locally against the
PR-merge commit pinpointed text-search.ts.

Co-authored-by: Orca <help@stably.ai>

---------

Co-authored-by: Orca <help@stably.ai>
2026-04-27 00:47:15 -07:00
NeilandOrca aac395dbff fix(release-cut): anchor RC base to latest_stable + patch (#1163)
The rc branch previously derived the base version from the highest
git tag, which reopened an already-shipped series: after v1.3.21
stable was published, cutting an RC still produced v1.3.21-rc.N.
Anchor RCs to latest_stable + patch so a fresh RC after v1.3.21
correctly resolves to v1.3.22-rc.0. Minor/major RCs are cut by
running that stable kind first, which is a clearer workflow than
the old heuristic.

Co-authored-by: Orca <help@stably.ai>
2026-04-27 00:09:27 -07:00
Brennan BensonandOrca 8347b3099d test(opencode): add buildPtyEnv/clearPty round-trip coverage (#1162)
Co-authored-by: Orca <help@stably.ai>
2026-04-27 00:07:19 -07:00
JinjingandOrca 099c4089a7 refactor(search): share rg/git-grep logic between main and relay (#1157)
Extracts rg and git-grep search logic into src/shared/text-search.ts so
the local main and SSH relay paths stop reinventing arg construction,
JSON parsing, submatch regex, and accumulator/truncation semantics.

Fixes silent truncation in the relay: searchWithRg used execFile with
a 50MB maxBuffer cap that rg --json easily exceeds on large repos,
dropping matches with no error surfaced to the user. The relay now
streams via spawn, matching the local path.

See docs/design/share-text-search.md for full rationale.

Co-authored-by: Orca <help@stably.ai>
2026-04-27 00:06:00 -07:00
JinjingandOrca afeac870b2 fix(search): keep include/exclude visible and prevent buried matches (#1161)
- Remove queryDetailsExpanded toggle; always show scope filters in the
  Search tab since it is a secondary destination used specifically for
  scoped search.
- Left-truncate pre-match text in MatchResultRow so the highlight stays
  visible at narrow sidebar widths instead of being pushed off the right
  edge. Mirrors VS Code's lcut behavior.

Co-authored-by: Orca <help@stably.ai>
2026-04-27 00:01:34 -07:00
Jinwoo HongandOrca 9e37f6c3c7 fix(daemon): checkpoint-based history persistence to reduce memory (#1139)
Co-authored-by: Orca <help@stably.ai>
2026-04-26 23:44:08 -07:00
github-actions[bot] 6c1b6f6f3c release: v1.3.21-rc.6 v1.3.21-rc.6 2026-04-27 06:24:28 +00:00
NeilandOrca 3a1d506e93 fix(tab-bar): inline Windows shell choices in the "+" menu (#1159)
Replace the flaky Radix submenu on the "+" New-tab dropdown with a flat
list of all available shells (PowerShell, Command Prompt, WSL when
present). The configured default shell is pinned to the top, labeled
"Default", and carries the Ctrl+T shortcut hint so users can see at a
glance which shell Ctrl+T will open.

Co-authored-by: Orca <help@stably.ai>
2026-04-26 23:23:42 -07:00
Brennan BensonandOrca c4b054fa39 fix(pty): tolerate trailing slash in ZDOTDIR self-loop guard (#1156)
Co-authored-by: Orca <help@stably.ai>
2026-04-26 23:02:48 -07:00