Commit Graph
451 Commits
Author SHA1 Message Date
brennanb2025 77ae11fcc3 Add contextual feature tours 2026-05-23 21:02:42 -07:00
Neil 82a461c66e Fix OpenCode TUI scroll regression
Revert the May 23 terminal perf restore path and cap retained newline-free TUI redraw output while keeping completed-line terminal read pagination.
2026-05-23 17:16:35 -07:00
Neil 3233a41215 Allow custom shortcut for equalizing panes
Adds an unassigned terminal.equalizePaneSizes keybinding action so users can assign their own Equalize Pane Sizes shortcut without changing defaults.
2026-05-23 15:54:47 -07:00
Neil f72de14dbb Revert terminal perf rollback for OpenCode TUIs (#2718)
* Revert "Finish terminal perf rollback for OpenCode TUIs (#2716)"

This reverts commit 51618f1e92.

* fix: repair terminal perf restore regressions
2026-05-23 15:41:24 -07:00
Brennan BensonandOrca b9c55bb071 Add onboarding tour retention telemetry (#2713)
Co-authored-by: Orca <help@stably.ai>
2026-05-23 14:15:11 -07:00
Neil 51618f1e92 Finish terminal perf rollback for OpenCode TUIs (#2716)
* revert: terminal mounted worktree slicing

* fix: restore non-terminal rollback scope
2026-05-23 14:10:15 -07:00
Neil 14fa257394 Revert terminal hidden-output perf series (#2715)
Reverts the hidden terminal pressure changes from #2661 to restore the prior terminal rendering path while the fullscreen TUI regression is handled separately.
2026-05-23 13:53:11 -07:00
Neil 1ea9aeb362 fix: harden perf cleanup edge cases (#2712) 2026-05-23 13:38:05 -07:00
Jinjing 3f6940a746 fix: address review findings (#2703) 2026-05-23 13:11:08 -07:00
Jinjing ace241c43f feat: allow hiding workspace card metadata (#2701) 2026-05-23 13:02:50 -07:00
Jinjing c93dd901a3 fix: address review findings (#2695) 2026-05-23 12:33:49 -07:00
Brennan BensonandOrca 669ade2313 Update onboarding feature wall experience (#2652)
Co-authored-by: Orca <help@stably.ai>
2026-05-23 12:21:13 -07:00
Jinjing ffec74c7ba Fix SSH agent and identity file auth ordering (#2681)
* fix: address review findings

* fix: address CI failures
2026-05-23 01:56:15 -07:00
Jinwoo HongandOrca 007b7cc283 Fix Claude permission status across subagents (#2674)
Co-authored-by: Orca <help@stably.ai>
2026-05-23 04:28:45 -04:00
Jinjing a50a97670f Refine settings panel layout and controls (#2676) 2026-05-23 01:16:46 -07:00
Jinjing 102cc09622 Improve worktree import handling (#2677)
* feat: improve worktree import handling

* chore: remove PR docs assets

* rm html
2026-05-23 01:13:33 -07:00
Neil 58accdf8a8 Revamp onboarding notification setup (#2670) 2026-05-22 23:47:31 -07:00
Jinjing de96ac5678 fix: address review findings (#2667) 2026-05-22 23:42:40 -07:00
Neil 79b18f6fed Fix Orca Mobile layout and sidebar controls (#2663)
* Fix Orca Mobile layout and sidebar controls

* Use brand icons for mobile platform badges

* Add readable card for mobile pairing steps

* Align mobile flow primary actions

* Fix mobile sidebar toggle defaults
2026-05-22 23:32:17 -07:00
Jinjing 002cab9d82 fix: address review findings (#2664) 2026-05-22 22:49:31 -07:00
Brennan BensonandOrca e8837275fe Default workspace list to repo grouping (#2657)
Co-authored-by: Orca <help@stably.ai>
2026-05-22 20:14:45 -07:00
Jinwoo HongandOrca 02a0aad987 Refresh ports when advertised URLs change (#2638)
Co-authored-by: Orca <help@stably.ai>
2026-05-22 12:17:21 -07:00
Yusuke Hata ff469bfd5b fix: resolve JIS keyboard bracket and backslash shortcut mapping (#2624)
Fix JIS bracket/backslash shortcut intent matching across tab and terminal-pane shortcuts.\n\nReview follow-up:\n- centralize semantic punctuation matching for bracket/backslash keys\n- preserve physical-code fallback when key text is inconclusive\n- avoid stealing AltGr bracket input on Windows/Linux\n- add regression coverage for JIS, AltGr, and fallback behavior
2026-05-22 14:54:19 -04:00
5ca6828371 feat: surface dev-server URLs in the ports panel (#2534)
* Surface dev-server URLs in workspace ports panel

Why: the OS scanner only sees `127.0.0.1:3001`, so clicking a Vite
port in the panel opens the wrong host/protocol when the dev server
binds with a custom hostname or HTTPS (e.g. `https://local.getmontecarlo.com:3001/`).
We now watch PTY output for advertised origins and prefer them at
display, copy, and open time. Falls back to the OS-derived address.

The watcher taps the central `runtime.onPtyData` path so it sees local,
daemon-backed, and SSH PTYs uniformly. URL candidates are validated with
`new URL()`, sanitized to origin only (no path/query/fragment/userinfo),
and gated by listener-PID validation so stale entries get evicted when
a different process reuses the port.

SSH `DetectedPort` enrichment is out of scope here — that panel uses
separate data shapes and port-forwarding may rewrite the local port,
making naive URL reuse incorrect. Tracked as a follow-up.

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

* Extend advertised-URL enrichment to SSH ports

Why: the first cut only enriched the local workspace ports panel. SSH
worktrees use a separate panel with `DetectedPort` and `PortForwardEntry`
shapes scanned by the remote relay, so the same dev-server banners that
flow through Orca's SSH PTYs were captured by the watcher but never
surfaced.

The renderer-side SSH scanner doesn't know which worktreeId the watcher
keyed an entry under, so a small helper walks the store to find every
worktree attached to a given connection and asks the watcher for the
best match per port (custom DNS host > loopback > LAN IP, https and
recency as tie-breakers). Enrichment runs at every broadcast and list
site in src/main/ipc/ssh.ts.

For a forwarded SSH port, the open action now uses
`advertisedProtocol://customHost:localPort`. We deliberately reuse the
local forward port — the remote port number is not reachable from the
local machine — and we only reuse the host when it's a custom DNS name
(IP literals and the remote's `localhost` get ignored, falling back to
127.0.0.1 like before). Loopback advertisements from the remote box are
a no-op because they don't translate to the local browser.

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

* Address Codex review of advertised-URL enrichment

Four findings from the post-implementation review:

- Watcher rejects wildcard advertised hosts (`0.0.0.0`, `::`, `*`). The
  OS scanner already normalizes wildcards to localhost for the connect
  host; if a dev server prints `http://0.0.0.0:3000/` verbatim we keep
  that sensible default instead of letting the watcher overwrite it
  with a host the browser can't open.

- Pre-bind pending buffer is now capped at 32 distinct PTY IDs with
  LRU eviction. Spawn-failure paths could otherwise leave never-bound
  entries forever — per-PTY 16 KiB bound was the only guard.

- `clearProviderPtyState` now calls `advertisedUrlWatcher.unbindPty`.
  SSH reattach failures, `clearPtyOwnershipForConnection`, and daemon
  spawn-failure cleanup bypass `runtime.onPtyExit`; routing through the
  central provider teardown plugs those holes (and is idempotent with
  the existing `onPtyExit` hook for natural exits).

- `lookupBest` accepts an optional current listener PID and runs the
  same pin-then-evict logic as `lookup`. `enrichSshDetectedPorts`
  threads `DetectedPort.pid` through so a stale advertised URL gets
  evicted on remote port reuse. Forward enrichment stays best-effort
  (forwards are persisted config, not observed listeners — detected
  enrichment is the eviction path).

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

* fix: refresh SSH ports when advertised URLs change

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

* fix: show advertised URLs in port rows

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

* fix: address advertised URL review issues

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

* fix: tighten advertised URL cache handling

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

* fix: align advertised URL edge cases

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

* fix: handle advertised URL cache invalidation

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

* fix: show status port action tooltips

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

* fix: keep port action tooltips above popover

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

* fix: clear port action focus after click

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

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
Co-authored-by: Orca <help@stably.ai>
2026-05-22 03:52:51 -04:00
Jinjing 41a2d7ba90 Target source-control actions to publish branches (#2612) 2026-05-22 00:35:30 -07:00
Neil 8d90dd4e4b Fix screen-local submit shortcut regression (#2616) 2026-05-22 00:34:49 -07:00
Neil 81fcfea965 Add terminal shortcut routing policy (#2610) 2026-05-21 23:57:53 -07:00
Jinwoo HongandOrca b1973657ea Add mobile Tasks parity (#2452)
Co-authored-by: Orca <help@stably.ai>
2026-05-21 20:26:07 -07:00
Neil 6408e49dbd Add customizable keyboard shortcuts (#2581)
* Add customizable keyboard shortcuts

- Add customizable keybindings
- Fix keybinding customization bypasses

* Keep shortcut UI labels dynamic

* Fix keybinding review gaps

* Improve shortcut recording UX

* Include settings section metadata in search

* Polish shortcut settings editor

* Tighten shortcut settings rows

* Clarify keybindings file card

* Clear settings search on section select

* Remove keybindings file helper copy
2026-05-21 19:10:16 -07:00
Jinjing e9d5bf2a05 fix: address review findings (#2576) 2026-05-21 17:57:23 -07:00
Jinjing 55e6f4bfcd Improve setup settings organization (#2503)
* fix: address review findings

* fix: address review findings
2026-05-21 16:33:30 -07:00
Neil 8d31ec9c8c Default primary selection paste on macOS (#2571) 2026-05-21 16:18:06 -07:00
Jinjing c949af129a fix: preserve fallback PR cache on refresh miss (#2566) 2026-05-21 16:06:41 -07:00
Neil 99cd83ed35 Enable primary selection paste by default on Linux (#2567) 2026-05-21 16:06:14 -07:00
Jinwoo HongandOrca a69ce28e1d Quiet expected SSH GitHub task skips (#2565)
Co-authored-by: Orca <help@stably.ai>
2026-05-21 16:01:29 -07:00
Jinwoo HongandOrca f36d9a58fe Improve Orca CLI terminal read pagination (#2553)
Co-authored-by: Orca <help@stably.ai>
2026-05-21 13:58:45 -07:00
Jinwoo HongandOrca dac61b84db Improve SSH relay grace period settings (#2549)
Co-authored-by: Orca <help@stably.ai>
2026-05-21 13:46:09 -07:00
Jinjing 79137885c0 Remove package manager cache cleanup (#2550) 2026-05-21 13:22:37 -07:00
Jinjing d4e9c22f8b Fix worktree creation for selected existing branches (#2543)
* fix: address review findings

* fix: address CI failures
2026-05-21 12:25:32 -07:00
Jinjing fca5f498db Keep PR refreshes anchored to cached review numbers (#2541)
- Use fallback PR numbers after branch lookup misses, including detached HEAD
- Preserve review cards for forked or deleted-head PRs across manual refreshes
- Clear stale GitHub PR cache entries when unlinking worktree review metadata
2026-05-21 12:12:10 -07:00
Brennan BensonandOrca a140313d4a Add local diagnostics error tracking (#2351)
Co-authored-by: Orca <help@stably.ai>
2026-05-21 11:15:01 -07:00
Jinjing ac10c4075f Show sleeping workspaces by default (#2514)
- Add a narrow SSH relay RPC for refreshing remote-tracking refs without
  reopening generic fetch execution
- Resolve SSH connection context from composite worktree IDs during startup
  before worktree discovery completes
- Make the sleeping workspace filter negative-form and reset to the new visible
  default
- Tolerate transient xterm scroll restoration failures during layout
- Restore macOS Electron framework symlinks after copying the dev app
2026-05-21 02:12:22 -07:00
Anwesh 6e949d6ec8 Fix worktree base ref ambiguity
Resolve ambiguous git worktree base refs by qualifying local and remote branch refs before invoking git worktree add.
2026-05-21 00:46:31 -07:00
Pablo LozanoandNeil 7cf154592c Add GitLab Issues tab and workspace creation for issues/MRs (#2431)
* feat: add GitLab Issues tab and workspace creation for issues/MRs

- Extend TaskPage GitLab section with Issues | MRs tabs (outside card)
  plus a repo selector via RepoMultiCombobox, matching the GitHub UX.
- Add separate IPC paths: listIssues (with "Assigned to me" filter)
  and listMRs (with Open/Closed/Merged/All filters).
- Add "Start workspace" (→) button to every GitLab row and
  "Create workspace" action inside GitLabItemDialog for both issues
  and MRs.
- Extend CreateWorktreeArgs / worktree.create RPC to accept
  linkedGitLabMR and linkedGitLabIssue, and wire them through
  the runtime, IPC, preload, and renderer store slices.
- Fix self-hosted GitLab support by falling back to glab CLI
  (issue view / mr view / issue list / mr list) when the remote
  host is not in getGlabKnownHosts().
- Update useComposerState to initialise GitLab-linked context
  from initialLinkedWorkItem.

* Remove logs

* fix: address GitLab issues review findings

---------

Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com>
2026-05-21 00:37:30 -07:00
Jinwoo HongandOrca 4a9facd5e8 Use home cwd for floating terminals (#2498)
Co-authored-by: Orca <help@stably.ai>
2026-05-21 02:49:16 -04:00
Jinwoo HongandOrca 8cf39f3a2c Fix stale GitHub status cache updates (#2483)
Co-authored-by: Orca <help@stably.ai>
2026-05-20 23:38:32 -07:00
Neil 84614a4c7c Fix notification settings recovery copy 2026-05-20 23:10:06 -07:00
Neil cf63c55c7d Squashed commits (#2417)
- fix: tighten workspace manual drag ordering

- feat: allow manual sidebar workspace ordering
2026-05-20 23:05:39 -07:00
Diego Lorente del Castillo 7795277299 feat: add Find in Folder action to file explorer (#2480)
* add Find in Folder to the file explorer folder context menu
* seed Search files-to-include from selected explorer folders
* harden generated include globs and add regression coverage
2026-05-20 23:05:16 -07:00
Neil 8b77dffec2 Fix macOS notification settings recovery
Open the current app's macOS notification settings entry and stop reporting test notification success until Electron confirms the native notification was shown.
2026-05-20 22:39:18 -07:00