Commit Graph
2700 Commits
Author SHA1 Message Date
Jinwoo-HandOrca 1384d9f6bf Live runtime status in sidebar; focused-host creation default; SSH auth-needed label
- New runtime-status slice holds per-environment status (boot hydration,
  settings-pane probes, host-header checks all write through it); stale
  environments dropped on list reload
- buildSidebarHostOptions forwards live status to the host registry at
  all call sites, so compat verdicts and blocked health render in the
  scope strip, options menu, host headers, and browser pane
- New-workspace composer defaults to a repo on the focused host scope
  (explicit draft/initial/active choices still win)
- SSH hosts with expired auth say "Authentication needed" in the host
  header instead of icon-only

Co-authored-by: Orca <help@stably.ai>
2026-06-09 19:39:07 -07:00
Jinwoo-HandOrca 3412919373 Route mutations by owner host; host header actions; per-host session persistence
- Fix ~30 owner-routing bugs found by call-site audit: SourceControl git
  ops, agent launch/notes, work-item preflight, repo icon, TabBar shell
  capabilities, GitHub project row edits, repo.update preference write
- Per-host splits for repo reorder and worktree sort-order persistence
- Host section headers gain a connection menu (focus, manage, ssh
  reconnect/disconnect, runtime check) and blocked-host update guidance
- Cmd+J palette shows owning-host badges when multiple hosts exist
- Partition persisted workspace session by execution host: host-keyed
  get/set/patch + IPC + preload, runtime-owned entries split to their
  partitions on write and merged on boot; legacy blob stays the local
  partition (zero-copy, idempotent migration)
- Keepalive regression tests pin no-teardown on runtime switch and
  boot-gated worktree purge; host scope documented as filter-only
- Fix host grouping for explicitly runtime-owned repos in All hosts view

Co-authored-by: Orca <help@stably.ai>
2026-06-09 19:25:51 -07:00
Jinwoo-HandOrca ea42a5c18d Multi-host groundwork: execution host identity, owner routing, host-scoped sidebar and ports
Inherited verified slice toward #4697 (multi-host Orca):
- ExecutionHostId/-Scope types, parse/build helpers, host registry
- Repos stamped with executionHostId; owner-host routing for github,
  hosted review, browser, diff comments, hooks, checks, terminals,
  file watching, activation
- Sidebar host scope strip + menu, host section rows, visibility filter
- Host-partitioned port scans with all-hosts aggregate projection

Typecheck, oxlint (touched files), and ownership/port suites green.

Co-authored-by: Orca <help@stably.ai>
2026-06-09 18:07:23 -07:00
Jinwoo HongandOrca 7ed829ee67 Recover corrupted terminal WebGL atlases (#5042)
Co-authored-by: Orca <help@stably.ai>
2026-06-09 13:52:58 -07:00
Brennan BensonandOrca 1e7e494e9a Add "Use Orca's browser" onboarding milestone (#4855)
Co-authored-by: Orca <help@stably.ai>
2026-06-09 13:50:46 -07:00
Jinjing f321ad50fe fix: address review findings (#5044) 2026-06-09 13:44:20 -07:00
Jinwoo HongandOrca a04e85c2d2 fix(browser): hide zoom percent after feedback (#5043)
Co-authored-by: Orca <help@stably.ai>
2026-06-09 13:43:56 -07:00
Jinjing 0ca2cb49ab Use scrollable hover cards for source control variable previews (#5029)
Replace the variable chip Tooltips with HoverCards to allow scrolling
through long prompt previews (such as the base prompt template).

* Pass action-specific base prompt previews (commit, PR, branch name)
  into the text generation dialogs to populate the variable chips.
* Style the hover cards to support vertical scrolling with a sleek
  scrollbar and update theme colors to match design guidelines.
* Add unit tests for the variable chips and dialog form behavior.
2026-06-09 13:38:16 -07:00
Jinwoo Hong c043939bf8 Fix project action menu click handling (#5041) 2026-06-09 12:55:17 -07:00
Brennan BensonandOrca 909128526c Refine stale-local-main toast: de-squish layout and clearer copy (#4930)
Co-authored-by: Orca <help@stably.ai>
2026-06-09 12:50:14 -07:00
Jinjing b7a4ece2a6 fix: address review findings (#5040) 2026-06-09 12:18:18 -07:00
5c31930e0e perf: speed up desktop startup (#4618)
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
2026-06-09 12:15:04 -07:00
Jinwoo HongandOrca 28fe76f696 Fix desktop terminal restore after mobile fit (#5039)
Co-authored-by: Orca <help@stably.ai>
2026-06-09 12:11:48 -07:00
Jinwoo HongandOrca 9369708f6b Add English localization infrastructure (#4995)
Co-authored-by: Orca <help@stably.ai>
2026-06-09 10:43:04 -07:00
Jinjing 39a7e057f0 Fix titlebar gap when sidebar is open but no worktree is active (#5030)
When on full-page views (like Tasks or Landing) with an open sidebar
but no active worktree, mirror the split-column titlebar layout.
This positions the left titlebar controls directly above the sidebar,
avoiding a layout gap and ensuring consistent visual alignment.
2026-06-09 10:06:52 -07:00
Neil 8ec5d599d0 Always open workspace composer before projects (#4991) 2026-06-09 00:27:39 -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
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 699bcf6478 Fix remote runtime terminal rendering (#4946)
Co-authored-by: Orca <help@stably.ai>
2026-06-08 21:20:25 -07:00
Neil 85a5dc0a06 Fix create worktree focus ring clipping (#4940) 2026-06-08 20:31:40 -07: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 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
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 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
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
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