Commit Graph
2946 Commits
Author SHA1 Message Date
Jinjing 3c8a4bef70 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.
2026-04-11 12:34:58 -07:00
Jinjing e6541b763d 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
2026-04-11 12:32:23 -07:00
Yax PatelandJinjing 788b71f131 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>
2026-04-11 12:30:41 -07:00
Jinwoo-H 0336f13ac6 1.1.14 v1.1.14 2026-04-11 14:31:59 -04:00
Jinwoo Hong 331e7dedb8 Add usage status bar and Codex account switching (#483) 2026-04-11 11:23:44 -07:00
Jinjing 988fa02456 Revert "test: verify auto-update notification flow" (#478) 2026-04-11 06:06:40 -07:00
Jinjing 9e7f70714f test: verify auto-update notification flow (#477) 2026-04-11 06:04:21 -07:00
Jinjing 0e697e3740 1.1.13 v1.1.13 2026-04-11 05:56:30 -07:00
Jinjing 9e02a887f5 Fix keyboard shortcuts not working when browser tab has focus (#476)
When a <webview> guest has focus, keyboard events go to the guest's own
webContents and never reach the renderer's window-level keydown handler.
Forward app shortcuts from the guest's before-input-event through IPC so
they work consistently regardless of which surface has focus.

Shortcuts fixed: Cmd+Shift+B (new browser tab), Cmd+T (new terminal tab),
Cmd+W (close active tab), Cmd+Shift+]/[ (switch tabs), Cmd+J (worktree
palette), Cmd+P (quick open), Cmd+1-9 (jump to worktree).
2026-04-11 05:52:39 -07:00
Jinjing 624ce44c0a Rename fish-themed worktree names to magical marine creatures (#475)
Replace FISH_NAMES with MARINE_CREATURES, default from Salmon to
Nautilus. Remove commonly eaten food fish and add cephalopods, marine
mammals, seabirds, deep-sea creatures, and mythical sea beings.
2026-04-11 05:44:16 -07:00
Jinjing 8ccab252ea make new browser tab focus on address bar (#474)
* Fix browser tab focus and grab shortcut behavior

* fix: resolve focus stealing and iframe grabbing edge cases

- Move post-navigation focus handoff to the start of programmatic navigations to prevent stealing focus if the user clicks the address bar while the page is loading.
- Add IFRAME to the isEditable check in the grab shortcut guest forwarder to prevent stealing native copy from cross-origin iframes.
2026-04-11 05:36:09 -07:00
Jinjing 7e58514ba5 Add dedicated Browser settings section and fix dialog footer gaps (#472)
Move "Open Links In Orca" into its own Browser section under General
settings and register it in the search index so searching "browser"
actually finds it. Also drop the sm:gap-0 override on dialog footers
so button spacing stays consistent at all breakpoints.
2026-04-11 05:07:01 -07:00
Jinjing fc2f10f731 Tone down primary badge and merged PR icon colors (#471)
Make the "primary" worktree badge neutral instead of blue, and
slightly reduce merged PR icon saturation for a less distracting
sidebar.
2026-04-11 04:49:48 -07:00
Jinjing 31041c117d 1.1.12 v1.1.12 2026-04-11 00:56:45 -07:00
Neil ca041b66fe Add richer in-app feedback dialog (#468)
* Add richer feedback dialog

* Keep anonymous submission client-side only

* Use lowercase feedback API host

* Fallback feedback submission when api host is unavailable
2026-04-11 00:52:53 -07:00
Jinjing 3cb9c99743 fix: use e.code for tab switch shortcut to fix macOS Shift+bracket detection (#470)
On macOS, Shift+[ reports '{' as e.key (the shifted character), breaking
the Cmd+Shift+[ / ] tab switch shortcut. Switch to e.code which always
reports 'BracketLeft'/'BracketRight' regardless of modifier state.

Also use reconcileTabOrder so tab switching works even when
tabBarOrderByWorktree is unset (e.g. restored session worktrees).
2026-04-11 00:52:20 -07:00
Jinjing 1fbdeb9bb4 1.1.11 v1.1.11 2026-04-10 23:48:23 -07:00
Jinjing 696590918c feat: Quick Jump to Worktree palette (Cmd+J) (#469)
* wip in the design doc

* fix: use Ctrl+Shift+J for worktree palette on non-darwin platforms

To avoid colliding with Ctrl+J (Line Feed) on Windows/Linux, we now
use Ctrl+Shift+J for the worktree jump palette on those platforms,
leaving Cmd+J for macOS.

* refactor: migrate QuickOpen to cmdk and unify overlay state

- Migrated `QuickOpen.tsx` to use `cmdk` (`CommandDialog`) for visual and
  behavioral consistency with the new worktree jump palette, while keeping
  the existing custom fuzzy match algorithm.
- Unified the overlay state systems (`activeModal`, `quickOpenVisible`,
  `worktreePaletteVisible`) into a single `activeModal` union type.
- This automatically handles mutual exclusion without boilerplate
  toggle logic spread across components.

* fix: forward QuickOpen and worktree shortcuts from browser guests

Added main-process interceptors for `Cmd/Ctrl+P` and `Cmd/Ctrl+1-9`
so that QuickOpen and numeric worktree jumping continue to work
even when an embedded browser guest (webview) has keyboard focus.

* fix: address review findings

- Set spawnEnv.SHELL before pty.spawn() in the fallback loop so the
  child process inherits the correct SHELL value instead of the stale
  original.
- Remove dead Cmd+P and Cmd+1-9 renderer keydown handlers from App.tsx;
  these are now handled via IPC from createMainWindow.ts before-input-event
  (the IPC handlers in useIpcEvents.ts have the same view-state guards).
2026-04-10 23:37:23 -07:00
Jinjing b41cae60bb 1.1.11-rc.0 v1.1.11-rc.0 2026-04-10 23:11:30 -07:00
Jinjing 652dcadf7d 1.1.10 2026-04-10 23:11:25 -07:00
Jinjing a6b12e9672 fix: address review findings (#467)
- Guard Cmd+C handler to skip text inputs (address bar, etc.)
- Wrap capturePage in try/finally to always restore grab overlay
- Clear grab toast timer on component unmount
- Fix lint: add curly braces, remove useless return
2026-04-10 22:39:28 -07:00
Jinjing 594769e278 update readme: per worktree browser terminology (#466) 2026-04-10 22:17:10 -07:00
Colin Chambachan 4c9670bffc feat: use fish species for default worktree names (#462) 2026-04-10 22:16:50 -07:00
Jinjing 3323069ce5 chore: organize repo root folder (#465) 2026-04-10 22:11:12 -07:00
Jinjing 8e17b0f981 update readme: reorder sections, add Discord badge and link (#464) 2026-04-10 21:45:32 -07:00
Jinjing 216cabb9f0 update readme to include new browser design mode feature (#463) 2026-04-10 21:19:23 -07:00
Jinjing 821e205c6f fix: preserve terminal session state during periodic saves (#461) 2026-04-10 21:06:37 -07:00
Jinjing 1049b8af65 1.1.10-rc.0 v1.1.10-rc.0 2026-04-10 20:47:41 -07:00
Jinjing a666ecb347 feat: enable open-links-in-app by default (#460) 2026-04-10 20:27:33 -07:00
Jinjing dad6713553 fix: clear browser tab state on worktree shutdown (#458)
Browser tabs are factored into getWorktreeStatus, so leaving them
behind after shutdown keeps the sidebar dot green even though all
terminals are dead. Clear browserTabsByWorktree and
activeBrowserTabIdByWorktree during shutdown so the status indicator
transitions to inactive.
2026-04-10 20:17:50 -07:00
Jinjing 7c71afce55 fix: replace branch-name heuristic with isMainWorktree for primary badge (#457)
The old code used a hardcoded PRIMARY_BRANCHES set (main, master, develop,
dev) to decide badge styling, which was misleading — a non-primary worktree
on "main" got a badge nearly identical to the actual primary worktree.

Now we use the authoritative `isMainWorktree` flag from git, show a
"primary" badge next to the display name, and always show the branch name
in the subtitle row regardless of branch naming conventions.
2026-04-10 19:58:45 -07:00
Jinjing 0f819032a0 feat: auto-refresh File Explorer via filesystem watcher (#456)
* fix: address review findings

* feat: add filesystem watcher for auto-refreshing File Explorer

Adds @parcel/watcher-based filesystem watching so the File Explorer
automatically reflects external changes (creates, deletes, renames)
without manual refresh.
2026-04-10 19:50:14 -07:00
Jinjing aef508d2b3 fix: address review findings (#455) 2026-04-10 19:37:36 -07:00
Brennan Benson 02ac8f48e9 fix: show update prompt for unrecognized orca.yaml keys (#454) 2026-04-10 18:28:59 -07:00
Colin Chambachan 874ba49789 fix: preserve reverse search shortcut (#453)
* fix: preserve reverse search shortcut

* test: cover cmd+r reverse search regression
2026-04-10 16:34:25 -07:00
Jinjing 6631047b95 1.1.9 v1.1.9 2026-04-10 14:15:48 -07:00
Jinwoo Hong 4389c65876 Add browser context grab feature (#451) 2026-04-10 14:13:35 -07:00
Jinjing c726878a27 feat: render markdown in worktree comment cards (#452)
Add CommentMarkdown component using react-markdown + remark-gfm +
remark-breaks to render rich formatting (bold, lists, code, links) in
sidebar worktree comment cards. Update height estimation to account for
markdown block elements and capped code block height.
2026-04-10 14:11:55 -07:00
Jinjing 3e8017627f fix: restore terminal surface when switching back to a worktree (#450)
The tab-type restoration logic in setActiveWorktree fell through to the
editor branch when a worktree had open files, even if the user was last
on the terminal surface. Add an explicit 'terminal' case so switching
back lands on the terminal tab as expected.
2026-04-10 14:03:18 -07:00
Brennan Benson 7b63288f68 feat: GitHub issue command automation for worktree creation (#441)
* feat: add shared issue command config and worktree automation

- Add shared top-level issue command support in orca.yaml with per-user .orca override read/write paths
- Surface the issue command in repository settings and the create-worktree dialog
- Queue issue-command terminal splits independently from setup-runner splits
- Preserve user checkbox state and repo-switch draft saves for issue command configuration
- Add parser, activation, and terminal-state test coverage for the new flow

* fix: clarify custom issue command settings label

* docs: clarify issue command effect behavior

* docs: unify issue command examples

* fix: keep issue command examples on one line

* style: use direct useEffect import in add worktree dialog
2026-04-10 13:52:46 -07:00
Jinjing d0cee5f83e 1.1.8 v1.1.8 2026-04-10 12:32:10 -07:00
Jinjing 62aeda84d3 fix: stop virtualizer.measure() from resetting DOM measurements on card click (#449)
measure() resets all cached DOM measurements back to estimateSize()
predictions. When clicking a card triggers a prCache refresh, the
effect fires, discarding accurate measurements and replacing them with
imprecise estimates — causing visible card overlap. The measureElement
ref already uses a ResizeObserver to auto-update sizes when card
content changes, making the manual measure() calls unnecessary.
2026-04-10 12:30:17 -07:00
Jinwoo Hong 14936b67e8 fix: invalidate filesystem-auth cache after CLI worktree creation (#446) 2026-04-10 11:34:18 -07:00
Jinjing 3dfa87daab 1.1.8-rc.0 v1.1.8-rc.0 2026-04-10 11:10:16 -07:00
Jinjing 3c479c04f3 fix: correct worktree card height estimates to match actual CSS layout (#445)
Recalibrate virtualizer row height constants: base 52→55 (accounts for
2px border + 15px title), meta rows 22→16 (py-0.5 + icon size-3),
meta section spacing uses gap-1.5 + mt-0.5 + gap-[3px] between rows.
Add +1px when both status and unread indicators are visible.
2026-04-10 10:52:15 -07:00
Jinwoo Hong 1b3719cb4c Add Codex usage tracking (#444) 2026-04-10 10:04:57 -07:00
Jinwoo Hong 386bd17fb1 fix: avoid Claude cache timer before first prompt (#442) 2026-04-10 01:14:33 -07:00
Neil be6a28bd58 Fix titlebar sidebar controls (#438) 2026-04-10 00:48:03 -07:00
Neil 0ceca04014 Revert "Smooth sidebar transitions and reduce terminal jitter" (#439) 2026-04-10 00:47:55 -07:00
Jinwoo Hong c6ff6da3a8 Add in-app browser tabs (#430) 2026-04-10 00:04:42 -07:00