Commit Graph
914 Commits
Author SHA1 Message Date
Kelvin AmoabaandJinwoo-H ab81f04fae persist sidebar collapsed groups across navigation and restart (#722)
* fix: persist sidebar collapsed groups across navigation and restart

The sidebar's collapsed-group state was stored as local React state in
WorktreeList, so the Sidebar unmount/remount triggered by navigating into
Settings discarded it — returning to the main view re-expanded every
previously collapsed group. Lift the state into the UI slice alongside
groupBy/sortBy/filterRepoIds and persist it via the existing ui:set IPC
so collapse state also survives app restarts.

* fix: clear collapsed groups when switching groupBy mode

Prevents stale keys from accumulating across mode switches and avoids
cross-mode key collisions that could leave groups unexpectedly collapsed.

---------

Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
2026-04-19 00:23:52 -04:00
keiju-fujiwaraandNeil 5d985a6563 fix: suppress Enter submit during IME composition in workflow creation popup (#804)
* fix: guard Enter submit against IME composition in workflow creation popup

Pressing Enter during Japanese IME conversion was triggering workflow
submission instead of only confirming the candidate. Extract
shouldSuppressEnterSubmit() and check event.isComposing before submit
in NewWorkspaceComposerModal, NewWorkspacePage, and the task search
handler. Fixes #742.

* fix: use nativeEvent.isComposing for React SyntheticEvent in task search handler

* refactor: move new-workspace-enter-guard to src/renderer/src/lib

---------

Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com>
2026-04-18 21:17:24 -07:00
Jinjing 159081c2e6 style(rich-md): show pointer cursor on links only while modifier held (#814)
Rich markdown links open on Cmd/Ctrl-click (plain click must place the
caret inside contenteditable). Toggle a root class on keydown/keyup of
the platform modifier so the pointer cursor appears only while the
modifier is held, matching VS Code's link affordance.
2026-04-18 21:13:00 -07:00
Jinwoo Hong 58b43e0d17 fix(github): Needs My Review tab returns no results (#815) 2026-04-18 21:12:45 -07:00
Jinjing d45755274f Squashed commits (#813)
- style: update markdown preview cursor styles for link interactions

- feat(editor): open in-worktree .md links as preview edit tabs

Cmd/Ctrl-click on a markdown link now routes through a shared classifier
and dispatcher. Links resolving to .md files inside the active worktree
open as preview tabs; external URLs and non-markdown files delegate to
the OS handler. Cmd/Ctrl+Shift-click is preserved as the OS escape hatch
with existence precheck and a toast for dangling targets.

Supports #L10 / #L10C5 and trailing :line:col anchors by flipping the
target to source view before reveal. Preview replacement is scoped to
the active tab group, and evicted previews are pushed onto the
recently-closed stack so Cmd/Ctrl+Shift+T restores them.
2026-04-18 20:51:17 -07:00
Neil c409904453 fix(feedback): include app version + OS metadata in submissions (#812) 2026-04-18 20:20:37 -07:00
Jinwoo Hong 301ce7aea4 fix: resolve Radix Dialog accessibility warnings and duplicate React key (#810)
Add visually-hidden DialogTitle and DialogDescription to
NewWorkspaceComposerModal and ImageViewer to satisfy Radix UI's
accessibility requirements for screen readers.

Remove duplicate 'copilot' entry in AGENT_CATALOG that caused
React's "two children with the same key" warning.
2026-04-18 22:28:11 -04:00
Jinjing ffcc144a75 fix(source-control): do not reset defaultBaseRef on worktree switch (#811)
The defaultBaseRef resolver is repo-scoped, not worktree-scoped. Resetting
it to 'origin/main' on every worktree switch within the same repo clobbered
the correct value (e.g. 'origin/master'), causing persistent 'Branch compare
unavailable' errors.
2026-04-18 19:02:14 -07:00
Neil eacdc2b946 1.3.3 v1.3.3 2026-04-18 18:05:21 -07:00
Jinjing 1f1c66e59a ci(release): retry electron install/publish on transient CDN failures (#809)
Wrap the dependency install and release-artifact publish steps with
nick-fields/retry@v3 so GitHub CDN 504s don't require a manual
re-run of the release workflow.
2026-04-18 17:57:27 -07:00
Neil a68e9838fc 1.3.3-rc.2 v1.3.3-rc.2 2026-04-18 17:51:53 -07:00
Neil c0066c3710 1.3.3-rc.1 2026-04-18 17:51:49 -07:00
Jinjing 756a7fa7b9 fix(quick-open): reset scroll and add padding so top result isn't clipped (#808)
The Cmd+P dialog's first result sometimes appeared flush against (or
behind) the input's bottom border. cmdk moves selection to the first
result on query change but never resets the list's scrollTop, and the
list had no padding buffer between the input border and the first item.

- reset scrollTop on query/visible change (mirrors WorktreeJumpPalette)
- add p-2 padding so the selection highlight never touches the border
2026-04-18 17:51:21 -07:00
Jinjing 828b1412d9 fix(sidebar): keep resize stable when dragging over PDF viewer (#807)
Chromium's native PDF <embed> captures pointer events internally, so
mouseup never reaches the window and the sidebar keeps following the
cursor. Mount a transparent full-viewport overlay during drag so events
propagate to the window listeners.
2026-04-18 17:50:44 -07:00
Jinwoo Hong 5ec70ed539 fix: gracefully handle EPERM during PTY overlay creation on Windows (#752) 2026-04-18 16:37:46 -07:00
Jinwoo Hong e8b8b5f96e fix(terminal): prevent WebGL context leak and atomic generation bump (#806) 2026-04-18 16:35:26 -07:00
Matt Van HornandJinwoo-H 3918e4cfcf fix(terminal-search): make Cmd+F match highlights high-contrast (#756)
Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
2026-04-18 15:20:15 -07:00
github-actions[bot] c57c55b9b8 release: 1.3.3-rc.0 [rc-slot:2026-04-18-15] v1.3.3-rc.0 2026-04-18 22:05:29 +00:00
Jinwoo Hong 669dbbe83f feat(browser): add profile picker for multi-profile cookie import (#805) 2026-04-18 14:59:39 -07:00
Neil c33023ddc0 1.3.2 2026-04-18 14:07:17 -07:00
Neil 062d9c9866 1.3.2-rc.4 v1.3.2-rc.4 2026-04-18 13:23:47 -07:00
Neil 2880b763a7 1.3.2-rc.3 v1.3.2-rc.3 2026-04-18 11:08:39 -07:00
Neil 499854c136 fix(shutdown): clear layout ptyIdsByLeafId so shutdown doesn't zombie-remount (#797) 2026-04-18 11:08:22 -07:00
DrakontiaandCopilot 747424d950 fix: use -i flag for GitHub Copilot CLI prompt injection (#799)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-18 11:07:48 -07:00
Jinjing 42075459fe 1.3.2-rc.2 v1.3.2-rc.2 2026-04-18 10:42:25 -07:00
Jinjing 2688c0fee3 feat(editor): preserve Cmd+B for bold in markdown editor (#802)
* feat(editor): preserve Cmd+B for bold in markdown editor

Carve out bare Cmd/Ctrl+B from the main-process before-input-event
interceptor when the TipTap markdown editor is focused, so its bold
keymap can run instead of toggling the left sidebar. Focus state is
mirrored from renderer to main via a one-way IPC send, with default-deny
resets on crash/navigate/destroy and sender validation so only the main
window's webContents can mutate the flag.

* fix: add oxlint max-lines disable to createMainWindow.ts
2026-04-18 10:08:25 -07:00
Jinjing c2ed4fbd3b fix(terminal-host): avoid reattach to terminating session, force-kill on dispose (#801)
Reattaching to a session where kill() has been called but the subprocess hasn't
exited yet races the in-flight exit. Treat terminating sessions the same as
fully-exited ones in createOrAttach, and have Session.dispose() force-kill a
stuck subprocess and notify attached clients so we don't leak the process when
the killTimer is cleared mid-flight.
2026-04-18 09:24:27 -07:00
github-actions[bot] bbf38cce54 release: 1.3.2-rc.1 [rc-slot:2026-04-18-03] v1.3.2-rc.1 2026-04-18 10:11:17 +00:00
Neil 3a67eb0f9c support orca 2026-04-18 00:10:27 -07:00
Neil b659fb339f 1.3.2-rc.0 v1.3.2-rc.0 2026-04-18 00:00:07 -07:00
Jinjing d2b270df88 Cmd+J: search both browser tabs and worktrees in a single merged list (#796)
* wip

* fix: don't truncate worktrees on empty-query open
2026-04-17 23:52:28 -07:00
Neil a4899dbbf1 feat(settings): center jumped-to sidebar sections and flash their border (#795) 2026-04-17 23:30:47 -07:00
Jinjing f2eb4f4866 fix(tab-group): make split-right/split-down move the source tab instead of duplicating (#794)
Split actions from the tab context menu used copyUnifiedTabToGroup for editors
and spawned a fresh browser tab, so splitting produced two copies of the same
file/URL rather than moving the active tab into the new pane. Delegate to
dropUnifiedTab to share the drag-to-split move path; keep the new-terminal
behavior for single-tab terminal groups since moving the only tab would
collapse the split.
2026-04-17 23:22:47 -07:00
Neil c20a44a9a4 fix(sidebar): make left sidebar expand/collapse instant (#793) 2026-04-17 23:17:45 -07:00
Neil 2499497f54 feat: restructure new-workspace flow and add Tasks sidebar nav (#792)
Split the "new workspace" and "tasks" entry points: the Plus button and Cmd/Ctrl+N
now open the lightweight composer modal, while the Tasks page is reached via a
dedicated Codex-style button above the Workspaces header in the sidebar.

- Add SidebarNav with a Tasks button (GH + Linear icons on the right)
- NewWorkspacePage becomes a pure tasks list (drops embedded composer card)
- Landing, AddRepoDialog, WorktreeList, SidebarHeader, App shortcut all switched
  to openModal('new-workspace-composer')
- Normalize SidebarHeader row height so it matches the Tasks button above
2026-04-17 23:08:47 -07:00
Neil 481bbeb985 fix(feedback): proxy submission through main process to bypass CORS (#791)
The packaged Mac build loads the renderer from file://, which makes a
cross-origin POST via renderer fetch() fail CORS preflight — causing
"Failed to submit feedback" in production while dev (http://localhost)
works. Route submission through a new feedback:submit IPC handler that
uses Electron's net.fetch in the main process (no CORS), mirroring the
pattern already used by updater-changelog/updater-nudge.
2026-04-17 22:47:44 -07:00
Jinwoo Hong 6c6416a949 feat(codex-accounts): shared runtime home for account switching (#768) 2026-04-17 21:51:06 -07:00
Jinwoo Hong be7ee2fc38 fix: update tests for Safari/Firefox browser detection and ZDOTDIR (#788) 2026-04-17 21:31:39 -07:00
Brennan Benson 68e3a00ddf fix: reflect external file changes in editor tabs (#735) 2026-04-17 20:30:44 -07:00
Neil 8dbfec4e20 feat: when closing a tab, go to previous tab (MRU) not nearest neighbor (#784) 2026-04-17 19:43:22 -07:00
Neil 8d3494fe07 feat(composer): support drag-and-drop files and folders onto the composer (#787)
Files dropped onto the new-workspace composer (modal or full page) are
appended as attachment chips; folders are inserted inline at the textarea
caret with shell-style quoting so users can reference working directories
from the OS file browser without leaving the prompt.
2026-04-17 19:14:51 -07:00
Honglei LiuandClaude Opus 4.7 5b71303bbd feat(terminal): add Nerd Fonts to default font fallback chain (#783)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-17 18:49:43 -07:00
Neil 3d40d4a3db Use overlay sheet for GitHub item drawer on new-workspace page (#785) 2026-04-17 18:20:54 -07:00
Neil 818210f3e2 fix(ui): invert GitHub Copilot icon in dark mode (#786) 2026-04-17 18:20:38 -07:00
Neil 2deaf9a052 1.3.1 v1.3.1 2026-04-17 18:18:47 -07:00
Brennan Benson 9826d94485 fix terminal split remounts when daemon is disabled (#782) 2026-04-17 17:41:45 -07:00
Brennan Benson 2d755ba386 fix: free WebGL contexts for hidden worktrees to prevent terminal dying (#777) 2026-04-17 17:15:27 -07:00
Neil 9962655492 docs: remove extra text 'X' from twitter badge (#781) 2026-04-17 17:02:51 -07:00
Neil 53f2c308fb 1.3.1-rc.2 v1.3.1-rc.2 2026-04-17 17:02:42 -07:00
Neil bbadd1f12a docs: match X (Twitter) badge styling with others (#780) 2026-04-17 17:01:01 -07:00