Commit Graph
4570 Commits
Author SHA1 Message Date
Jinjing 2fd4f4e13e Update README feature showcase hero 2026-06-09 00:13:44 -07:00
Jinjing 3411a75d96 Route GitHub work item queries through active runtime environment (#5000)
- Use the active runtime environment RPC for fetching, paging, and
  counting work items when available, falling back to local IPC.
- Scope in-flight work item request keys to specific environment targets
  to avoid incorrect deduplication during runtime transitions.
- Discard and skip writing work item responses to cache if the active
  runtime environment changed while the request was in flight.
2026-06-09 00:13:41 -07:00
Jinjing 27889edc01 Move worktree PR/MR unlink action behind a dropdown menu (#4998)
Keep the worktree details hover card visible while the review actions
dropdown is open. This change prevents the hover card from unmounting
when interacting with the portaled dropdown items, and adds support
for unlinking GitLab MRs with appropriate terminology.
2026-06-08 23:21:21 -07:00
Jinjing 7d353523d1 Add remote SSH file download (#4957)
* Add remote SSH file download

Implement the remote file download flow described in docs/remote-file-download.md, including main/preload IPC wiring, SSH provider support, file explorer UI actions, and tests.

* Add open action to download toast

* rm design doc
2026-06-08 23:12:01 -07:00
Jinjing 03c2532ae7 Update README demo gif 2026-06-08 23:08:34 -07:00
Neil b9e153570b Update AGENTS.md 2026-06-08 22:32:42 -07:00
Jinwoo HongandOrca 400f3d7eaa Fix Linear issue reference links in descriptions (#4955)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 21:59:29 -07:00
Neil 351e4508de Clamp right sidebar render width (#4948) 2026-06-08 21:52:56 -07:00
Jinjing bd0533cfe5 Fix active agent detection in split-pane layouts and support early hints (#4949)
* Detect active agents from title/launch hints before hooks report

* Fix active agent detection in split-pane layouts with lone background ti

* Probe runtime for manually started agents during note-send detection

- Query runtime via `terminal.isRunningAgent` to detect active agents
  before titles or status hooks have reported them.
- Extract active-agent-target resolution utilities and state selectors
  to a dedicated `active-agent-note-target.ts` file.
2026-06-08 21:52:19 -07:00
Jinwoo HongandOrca b42b286879 Fix mobile markdown actions above keyboard (#4945)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 21:27:33 -07:00
Jinwoo HongandOrca 699bcf6478 Fix remote runtime terminal rendering (#4946)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 21:20:25 -07:00
Neil 4660a25f09 Gate releases on terminal rendering golden 2026-06-08 20:49:17 -07:00
Neil 85a5dc0a06 Fix create worktree focus ring clipping (#4940) 2026-06-08 20:31:40 -07:00
NeilandCommandCodeBot 1884b5c206 test(e2e): stabilize release-cut e2e failures (#4942)
* test(e2e): stabilize two flaky release-cut e2e specs

Fix two failing e2e tests from release-cut run 27171326222. All
changes are test-only — no application code is modified.

- artificial-opencode-terminal-load: widen MAX_RENDERER_SCHEDULER_
  QUEUED_CHARS from 2 MB to 3 MB. The scheduler is still enforcing
  backpressure (droppedBacklogCount must stay 0 and typing-latency
  budgets must still pass) — the 2 MB ceiling was too tight for the
  5-pane OpenCode pressure scenario on CI runners.

- source-control-discard-confirmation: click the dialog's confirm
  button instead of pressing Enter on the original row button. The
  dialog auto-focuses its own confirm button (see
  focusDiscardDialogConfirmButton), so pressing Enter on the row
  button just retriggered the open action and the dialog never
  closed within the assertion window.

Co-authored-by: CommandCodeBot <noreply@commandcode.ai>

* test(e2e): fix two flaky specs from release-cut run 27177379094

Fix the remaining e2e failures from the v1.4.52 release-cut run. All
changes are test-only.

- terminal-long-table-scroll-restore: replace mouse-wheel scroll loops
  with xterm scrollLines so tall wrapped tables can reach target rows on
  Linux CI. Share the helper via artificial-opencode-active-terminal-scroll.

- artificial-opencode-hidden-pressure: widen hidden restore latency budget
  to 1500ms. Typing-latency assertions still enforce responsiveness; the
  extra headroom absorbs parallel Electron worker jitter on CI runners.

---------

Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
2026-06-08 20:30:05 -07:00
Jinjing 3d1b6391d2 Update UI style guide
Push local docs/STYLEGUIDE.md content to main.
2026-06-08 20:25:32 -07:00
github-actions[bot] 958211f5b8 release: v1.4.53 v1.4.53 2026-06-09 03:20:03 +00:00
Jinjing fc850a3f4e Improve language in local-main sync suggestion toast (#4938) 2026-06-08 20:16:04 -07:00
Jinjing 143c5de1a9 Match titlebar background to worktree sidebar when open (#4934) 2026-06-08 20:14:34 -07:00
Jinjing 50831e79eb fix: address review findings (#4936) 2026-06-08 20:10:41 -07:00
Jinwoo HongandOrca 9c8e67c271 Fix project header action clicks (#4935)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 20:02:26 -07:00
Brennan BensonandOrca 5e4f74fffe Make Settings setup progress mirror checklist (#4926)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 20:00:21 -07:00
d43ce62412 fix: pr-bug-scan validated finding from #4741 (#4894)
* fix: address pr-bug-scan validated finding from #4741

Plain-Escape branch in onTerminalKeyDown now runs the three unread clears before its early return, so Escape dismisses attention again.

* E2E: test that plain Escape clears focused terminal tab attention

---------

Co-authored-by: orca-bug-scan-bot <orca-bug-scan-bot@stably.ai>
Co-authored-by: Jinjing <6427696+AmethystLiang@users.noreply.github.com>
2026-06-08 19:45:48 -07:00
Jinwoo HongandOrca 00f3849669 Use quick command labels for new tab titles (#4933)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 19:32:34 -07:00
JinjingandCursor 94770b7acd Refine mobile emulator agent setup layout and step blocking (#4923)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 19:29:11 -07:00
Neil edadb1d7b7 Allow Linux terminal auto WebGL on safe renderers 2026-06-08 18:28:52 -07:00
Jinwoo Hong 57c1e21330 Fix native Windows Codex cursor flicker (#4907) 2026-06-08 21:11:18 -04:00
Jinwoo HongandOrca 01c0206160 Add Jira credential management to settings (#4929)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 18:10:56 -07:00
Jinjing 9b979d01bf Add mobile emulator simulator tabs to the Cmd+J jump palette (#4928)
- New `simulator-palette-search.ts` module searches simulator/unified tabs by label, alias ("mobile", "simulator", "ios"), worktree name, and repo name
- Rename "Browser Tabs" section to "Open Tabs" to reflect the unified browser + simulator tab listing
- Simulator tabs appear alongside browser pages in the palette, with the same score-based ordering, context-first sort, and empty-query prioritization for current/active worktree tabs
2026-06-08 18:10:22 -07:00
Jinjing 19392cc066 Add emulator keyboard capture, edge gestures, and stream cleanup (#4927) 2026-06-08 18:10:16 -07:00
Brennan BensonandOrca 12340ee525 Surface branch auto-name failures with detailed CLI errors (#4906)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 17:55:54 -07:00
Jinwoo HongandOrca 66035716f0 Fix mobile diff syntax highlighting (#4922)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 17:41:27 -07:00
Jinwoo HongandOrca 04205acd76 Graduate compact worktree card setting (#4924)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 17:37:11 -07:00
Brennan BensonandOrca ec7d013469 Reuse shared quick-install flow in Enable orchestration dialog (#4909)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 17:03:11 -07:00
Trevin Chow c05d3ff1b5 ci: gate release-cut to the canonical repo so it skips forks (#4815)
The cut job checks out main, bumps package.json's version, and
fast-forwards main. On a fork with Actions enabled, the scheduled RC
cut runs against the fork's main and diverges it on the version line
every slot, so that contributor's PRs back to upstream conflict on
package.json even when their change never touches it.

Gate the job to github.repository == 'stablyai/orca' so it (and the
jobs that depend on it) no-op on forks. Canonical scheduled and manual
cuts are unaffected.
2026-06-08 19:58:58 -04:00
Jinwoo-HandOrca 8b453d014b ci: gate release-cut to the canonical repo so it skips forks (#4815)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 16:57:55 -07:00
Jinjing 7d7ba1bb32 fix: address review findings (#4920) 2026-06-08 16:47:04 -07:00
Jinjing 2b3f1e724a fix: address review findings (#4919) 2026-06-08 16:46:28 -07:00
Brennan BensonandOrca d1d223d691 Hint pty allocation failures for macOS ENXIO (#4917)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 16:36:04 -07:00
Brennan BensonandOrca a9ec35a132 fix: allow empty usage CTA dismissal over runtime RPC (#4916)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 16:34:46 -07:00
Brennan BensonandOrca b81246e096 Align agent permission dot color (#4914)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 16:34:32 -07:00
84411b943f fix: detect agents via install-dir resolver when which misses on GUI launch (#4880)
* fix: detect agents via install-dir resolver when which misses on GUI launch

The Agents settings pane reports every agent as "Not installed" on a cold
GUI launch even when the CLIs are installed and runnable from Terminal.

detectInstalledAgents resolves each agent with `which`, which only sees
process.env.PATH. GUI-launched Electron inherits a stripped PATH from launchd
that omits the user's shell-rc dirs (~/.local/bin, ~/Library/pnpm,
~/.asdf/shims, nvm/volta/fnm/mise shims, ...). The synchronous seed in
patchPackagedProcessPath plus the async shell-PATH hydration both race the
first detection, and the first result is cached for the session, so the pane
can latch onto an empty "nothing installed" snapshot until the user relaunches
from a terminal or clicks Refresh.

Fall back to resolveCliCommand (the same resolver the spawn path uses in
src/main/codex-cli/command.ts) when the PATH lookup misses. Detection now has
the same reach as launch: if Orca can run it, Orca detects it, independent of
PATH-hydration timing. No false positives — an uninstalled agent still resolves
to a bare command name rather than an absolute path.

Verified on macOS that resolveCliCommand resolves claude (~/.local/bin), codex
(~/.asdf/shims), and opencode (~/Library/pnpm) under a stripped PATH.

* fix: bulk resolve agent install-dir detection

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

* fix: ignore node navigator for linux webgl policy

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

---------

Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
Co-authored-by: Orca <help@stably.ai>
2026-06-08 19:23:32 -04:00
Brennan BensonandOrca 612823c9e0 Tighten child workspace indentation (#4915)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 16:07:13 -07:00
Brennan BensonandOrca cd4ca13080 feat: make status bar empty usage CTA dismissible (#4898)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 15:47:29 -07:00
github-actions[bot] 4d2d31fc27 release: v1.4.53-rc.0 [rc-slot:2026-06-08-15] v1.4.53-rc.0 2026-06-08 22:35:35 +00:00
Brennan BensonandOrca 0aad9f8d03 Point browser tour 'Stay logged in' step at the visible Import button (#4902)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 15:22:26 -07:00
github-actions[bot] 3cc80825fd release: v1.4.52 v1.4.52 2026-06-08 22:17:36 +00:00
Neil 51fd231a14 Keep auto WebGL for terminal table output 2026-06-08 15:16:37 -07:00
2338c42ef9 fix(ssh): sync ~/.ssh/config on import and Manage open (#4899)
* fix(ssh): sync ~/.ssh/config on import and Manage open

importFromSshConfig only inserted unknown hosts and never updated an
existing target, so a rotated port (or any changed config field) was
silently ignored on re-import. Make it an upsert: config-sourced targets
are refreshed in place, genuinely new hosts are inserted, and the SSH
Manage pane auto-syncs when it opens so changes appear without a manual
Import click.

A new optional SshTarget.source ('ssh-config' | 'manual') protects
user-created and user-edited targets from being overwritten by sync —
editing a target in the UI detaches it from config-sync. Unchanged
targets are skipped so a repeat sync performs no disk write. Editing a
target now also carries cleared optional fields (identity file, proxy
command, jump host) so removing a config-derived value actually deletes
it instead of silently keeping the stale value through the partial merge.

Resolves item #1 of #4684 (item #2 was fixed in #4860).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(ssh): preserve legacy manual targets during config sync

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

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
Co-authored-by: Orca <help@stably.ai>
2026-06-08 18:15:55 -04:00
Jinwoo HongandOrca 9c2cec3d6c Use system ssh for proxy-based targets (#4911)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 14:43:25 -07:00
Jinwoo HongandOrca f5efdd5945 Fix remote runtime terminal sharing with mobile (#4901)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 14:26:07 -07:00