Commit Graph
2946 Commits
Author SHA1 Message Date
Brennan Benson baec61d1da Revert "fix: preserve terminal sessions when switching worktrees" (#547) 2026-04-12 15:10:37 -07:00
Brennan Benson 0569eb46a6 Revert "fix: terminal shortcuts firing in wrong worktree" (#546) 2026-04-12 15:07:23 -07:00
Jinjing 220f9747ab fix: Cmd+X in rich markdown editor deletes only the current line (#545)
* fix: Cmd+X in rich markdown editor deletes only the current line

- Guard against depth < 1 (GapCursor before top-level leaf nodes) to
  prevent RangeError crash
- Add visual-line cutting for word-wrapped paragraphs so Cmd+X removes
  one visual line at a time instead of the entire paragraph
- Normalize soft line breaks on load/update: split paragraphs with
  embedded \n into separate paragraph nodes so block-level cut works
  per-line
- Add comprehensive tests for cut handler behavior and normalization

* fix: address review findings

- Normalize soft breaks at all document depths (not just top-level)
  using doc.descendants() instead of doc.forEach()
- Capture transaction lazily from editor.view.state.tr to avoid stale
  state after setContent()

* fix: use editor.view.state consistently in normalizeSoftBreaks

Read doc and create tr from editor.view.state (not editor.state) so
position collection and transaction application share the same base
state, avoiding stale-doc corruption after setContent().
2026-04-12 14:16:00 -07:00
Jinwoo Hong ab0ed32543 fix: preserve terminal scroll position when splitting panes (#543) 2026-04-12 13:38:49 -07:00
Jinwoo-H 1263481380 1.1.21 v1.1.21 2026-04-12 16:18:42 -04:00
Jinwoo Hong 0a6ab884b8 fix: terminal shortcuts firing in wrong worktree (#542) 2026-04-12 13:18:30 -07:00
Jinwoo Hong 65d0151189 Add worktree creation to Cmd+J palette (#541) 2026-04-12 12:47:12 -07:00
brennanb2025 f240e461ee 1.1.20 2026-04-12 11:40:52 -07:00
2ff7de89c6 fix: preserve terminal sessions when switching worktrees (#535)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: brennanb2025 <brennankbenson@gmail.com>
2026-04-12 11:25:42 -07:00
Jinwoo Hong ca4f135237 Start new worktrees with a terminal by default (#539) 2026-04-12 11:23:51 -07:00
Neil c9462de125 1.1.19 v1.1.19 2026-04-12 01:20:41 -07:00
Neil 1395b6f516 Support Pi titlebar status tracking (#530) 2026-04-12 01:20:20 -07:00
Pim de Jong fc53f978b6 [codex] Guard traffic light sync off macOS (#531) 2026-04-12 01:18:41 -07:00
Brennan Benson 839d87181b Split-screen tab groups with canonical group/item model (#520) 2026-04-12 01:10:32 -07:00
Neil df7a708af6 Fix terminal focus when creating a tab from the + menu (#529) 2026-04-12 01:00:06 -07:00
Neil 86e48ef86d 1.1.18 v1.1.18 2026-04-12 00:51:18 -07:00
Jinwoo Hong 73c1a922ff Refine Codex accounts settings layout (#528) 2026-04-12 00:41:20 -07:00
Neil 5041afb052 fix: keep OpenCode activity and notifications in sync (#527) 2026-04-12 00:10:52 -07:00
Jinjing 7c538e5a5a 1.1.17 2026-04-12 00:02:13 -07:00
Jinwoo Hong a0735030d8 Refactor browser manager internals and fix grab shortcuts (#525) 2026-04-11 23:52:39 -07:00
Jinjing fd33d9cc2d feat: make titlebar agent status configurable (#526)
Add a `showTitlebarAgentActivity` setting under Appearance > Titlebar
that lets users toggle the agent activity badge in the titlebar.

- Add `showTitlebarAgentActivity` to GlobalSettings (default: true)
- Add toggle in AppearancePane under a new "Titlebar" sub-section
- Upgrade badge from Tooltip to HoverCard with per-worktree breakdown
- Show dimmed idle state when no agents are active
- Fix badge/tab overlap when sidebar is closed (min-w-0 + conditional shrink-0)
- Extract countWorkingAgentsForTab helper for reuse by per-worktree counter
2026-04-11 23:52:21 -07:00
Jinjing 206eb50ab2 fix: preserve terminals on manual quit (#524) 2026-04-11 23:50:58 -07:00
Jinjing a9b3ae6de4 fix: prevent Cmd+Shift+G from opening sidebar during terminal search (#523)
Cmd+Shift+G was opening the source control sidebar even when terminal
search was active, because both App.tsx and keyboard-handlers.ts
registered capture-phase keydown listeners on window with no
coordination between them.

Fix with two layers:
- App.tsx: skip Cmd+Shift+G when [data-terminal-search-root] is in the
  DOM (reliable regardless of listener registration order)
- App.tsx: bail on defaultPrevented as a general guard
- keyboard-handlers.ts: upgrade stopPropagation to
  stopImmediatePropagation for the search navigate handler
2026-04-11 23:38:24 -07:00
Jinjing 54202211a5 reduce sidebar card horizontal padding (#522)
px-3 → px-2 for a more compact sidebar layout.
2026-04-11 23:35:48 -07:00
Neil c4aabcc4e5 fix: audit terminal shortcut interception (#519) 2026-04-11 23:24:04 -07:00
Jinjing c4bd5e492b fix: highlight file search matches on reveal (#518) 2026-04-11 22:53:01 -07:00
Alexander 74e008c616 Add Cmd+G / Cmd+Shift+G terminal search navigation (#440)
* Add design spec for terminal search next/prev shortcuts

Cmd+G / Cmd+Shift+G to navigate search matches when the
search bar is already open, following macOS conventions.

* Address review: isEditableTarget bypass, incremental option, native Cmd+G conflict

* Spec: clarify mod-key check placement and ref sync on empty query

* Add implementation plan for terminal search next/prev shortcuts

* Plan: merge Task 3+4 to avoid compile break, fix stale note, add reorder rationale

* Plan: import SearchState type in TerminalSearch instead of inline duplication

* test: add failing tests for search-navigate key matching

* feat: add Cmd+G / Cmd+Shift+G search navigation to keyboard handler

* feat: wire searchStateRef through TerminalPane and TerminalSearch

* refactor: use searchOpenRef to avoid listener re-registration on search toggle

* test: add Ctrl+Shift+G → previous on Linux/Windows test case
2026-04-11 22:52:32 -07:00
Neil 97c11176e1 Autofocus worktree delete confirmation (#517) 2026-04-11 22:47:51 -07:00
Neil e5890f8e3f Fix stale test mocks after runner migration (#516) 2026-04-11 22:47:30 -07:00
Jinjing b84a05bf69 1.1.17-rc.0 v1.1.17-rc.0 2026-04-11 22:37:51 -07:00
Jinjing ee41552b14 fix: prevent double IPC registration on macOS (#515) 2026-04-11 22:33:37 -07:00
Jinjing 3a0ba5c4e0 feat: replace update toasts with update card (#514)
* fix(UpdateCard): align downloading state layout to prevent height jumping

* feat: replace update toasts with update card

* test: update async updater expectations after merge

* test: align updater tests with card flow
2026-04-11 22:11:02 -07:00
Jinjing 79f3376332 fix: address review findings (#508)
- Delete empty blocks on Cmd+X (match VS Code behavior)
- Preserve rich formatting on clipboard (text/html + text/plain)
- Fix cursor placement after cutting last block (clamp position)
- Guard against null clipboardData to prevent silent data loss
2026-04-11 18:12:05 -07:00
Jinjing 410af305e3 feat(editor): support contextual copy in diff view (#507)
- Extracted contextual copy setup logic into `useContextualCopySetup` hook.
- Replaced direct `setupContextualCopy` usage in `MonacoEditor` with the new hook.
- Added `useContextualCopySetup` to `DiffViewer` to enable contextual copy in diffs.
- Bound copy handlers to both original and modified diff editors.
- Updated `EditorContent` to pass `filePath` and `relativePath` down to `DiffViewer`.
- Made `onSave` optional in `propsRef` since it's not strictly required in diff views.
2026-04-11 18:09:08 -07:00
Jinjing 1e77b62616 fix: preserve scroll position when resizing terminal panes (#506)
fitAddon.fit() triggers an xterm.js buffer reflow that can leave the
viewport at a stale scroll offset, making the terminal appear scrolled
up away from the prompt. Before each fit(), capture whether the terminal
was scrolled to the bottom, and restore that position afterwards. If the
user had manually scrolled up to read history, their position is kept.
2026-04-11 18:01:16 -07:00
Jinjing 2dbe17cd95 Add "Create new worktree" entry in Cmd+J jump palette (#505)
- Show a "Create new worktree…" option when search yields no matches
- Pre-select it so Enter immediately opens the create dialog
- Replace inline SVG with lucide Plus icon
- Simplify palette item styling (rounded-xl, neutral selection colors)
- Add primary badge, CornerDownLeft hint, and layout refinements
- Remove unused badgeLabel field from search results
2026-04-11 17:40:47 -07:00
Jinjing 12bb3bd8c8 fix: align traffic lights with titlebar content at any zoom level (#413) (#504)
- Dynamically reposition macOS traffic lights via setWindowButtonPosition
  when UI zoom changes (IPC ui:sync-traffic-lights)
- Hide left sidebar toggle in settings view to fix PopperAnchor warning
2026-04-11 17:18:06 -07:00
Jinjing 40d431795f fix: show honest message when update check fails during release transition (#501)
Previously, user-initiated update checks during a GitHub release
transition sent 'not-available', falsely telling users they were on
the latest version. Now all benign check failures send 'idle', and the
toast controller converts user-initiated checking→idle into a neutral
"unable to check" message that covers both release transitions and
network blips honestly.
2026-04-11 16:28:39 -07:00
Neil 7cb57470f1 1.1.16 v1.1.16 2026-04-11 15:57:48 -07:00
Neil e927e502ac Fix terminal links opening externally on cmd/ctrl-click (#497)
* Suppress default terminal link navigation

* Honor default in-app terminal link routing

* Always route terminal links through Orca
2026-04-11 15:56:23 -07:00
Jinwoo Hong f43bf4f90e fix: close orphaned dev Electron app after Ctrl+C (#498) 2026-04-11 15:50:21 -07:00
Neil aeb8002df7 Support shift+cmd/ctrl-click for external terminal links (#495) 2026-04-11 15:33:09 -07:00
Neil 49c7b788c3 Fix Codex CLI detection for Electron tracking (#496) 2026-04-11 15:32:47 -07:00
Jinjing db7eadf4e8 1.1.15 v1.1.15 2026-04-11 15:05:39 -07:00
Jinjing fe04818b0c fix: intercept Cmd+V at keydown level so image paste works in terminal (#494)
Chromium does not fire a paste event when the clipboard contains only
image data (no text) and the target is a textarea — which is how
xterm.js receives focus. The previous handler relied solely on the
paste ClipboardEvent, so image-only pastes were silently discarded.

Move paste interception to a keydown listener for Cmd+V / Ctrl+V that
checks the clipboard via Electron's main-process API. Text is tried
first (single IPC call, fast path), and image check only runs when
text is empty. The paste event handler is kept as fallback for
non-keyboard triggers (Edit menu, etc.). Also adds image support to
the context menu paste path for consistency.
2026-04-11 15:01:22 -07:00
55bc0f8b33 Revert "Revert "test: verify auto-update notification flow"" (#479)
* Revert "Revert "test: verify auto-update notification flow" (#478)"

This reverts commit 988fa02456.

* test: fix missing ipc events mock in useIpcEvents.test.ts

* Add usage status bar and Codex account switching (#483)

* 1.1.14

* feat: add active agent count in top bar (#484)

* feat: add active agent count in top bar

* fix: pass missing runtime pane title setters to pty connection

---------

Co-authored-by: Jinjing <6427696+AmethystLiang@users.noreply.github.com>

* Add "No login required" to README features (#486)

* Add "No login required" to top of README features

Highlight that Orca needs no account or login — users bring their own
Claude Code or Codex subscription directly.

* Simplify no-login line and add Codex account switching section

- Trim "No login required" to just the essentials
- Add [New] Hot Swap Codex Accounts section with gif demo

* Fix README badge layout — remove blank lines inside HTML blocks (#488)

Blank lines inside <p> tags cause GitHub to render each badge as a
separate paragraph instead of inline on one row.

* Add Codex account switcher gif (#489)

The gif was referenced in README but never committed.

* Refresh worktree quick jump UI (#487)

* fix: Warp-parity keyboard shortcuts — image paste and line-kill bindings (#491)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Jinjing <6427696+AmethystLiang@users.noreply.github.com>

* Nicer agent list (#492)

* test: mock more missing IPC handlers and store actions in useIpcEvents tests

---------

Co-authored-by: Jinwoo Hong <73622457+Jinwoo-H@users.noreply.github.com>
Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
Co-authored-by: Yax Patel <74978532+ypatel2022@users.noreply.github.com>
Co-authored-by: Colin Chambachan <colin.chambachan@gmail.com>
Co-authored-by: Ramzi <79337754+heyramzi@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com>
2026-04-11 14:35:15 -07:00
Neil 16057b82b9 Nicer agent list (#492) 2026-04-11 14:16:12 -07:00
916d98106d fix: Warp-parity keyboard shortcuts — image paste and line-kill bindings (#491)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Jinjing <6427696+AmethystLiang@users.noreply.github.com>
2026-04-11 14:02:37 -07:00
Colin Chambachan c24c20e59f Refresh worktree quick jump UI (#487) 2026-04-11 12:43:30 -07:00
Jinjing c12896ca84 Add Codex account switcher gif (#489)
The gif was referenced in README but never committed.
2026-04-11 12:39:02 -07:00