Commit Graph
1652 Commits
Author SHA1 Message Date
Jinjing c6aa8f6e83 Remove ready-to-merge badge from checks panel (#2846) 2026-05-26 11:23:30 -07:00
Trevin ChowandJinjing 64af9a01c1 fix(sidebar): indent worktree rows under their project header (#2841)
* fix(sidebar): indent worktree rows under their project header

Top-level worktree rows had no left padding, so their status dots sat
flush with the project folder icon. Indent each worktree group by one
LINEAGE_INDENT step so the dots nest under the folder icon, giving clear
parent-to-child visual hierarchy. Nested/lineage cards inherit the base
inset and keep their relative indentation.

* Avoid ungrouped workspace indentation

* review: cover grouped sidebar indentation

- reuse the WorktreeList render helper in the lineage test

- add the grouped project assertion that fails if the indent is reverted

- mock DropdownMenuSeparator for grouped project rendering

---------

Co-authored-by: Jinjing <6427696+AmethystLiang@users.noreply.github.com>
2026-05-26 11:14:32 -07:00
Jinjing bfb060e08e Clear delivered diff notes after sending (#2820) 2026-05-26 09:33:51 -07:00
Neil f8fd8f1e7d fix: reuse smart GitHub lookup on create (#2831) 2026-05-26 01:58:48 -07:00
twoTimesAgnewandNeil 4f2c671e62 Squashed commits (#2049)
- feat(settings): restore divider + inactive pane stub in preview

The new xterm-based preview lost the visual feedback for terminal divider
color/thickness and inactive pane opacity that the old TerminalThemePreview
used to give. Bring back the same two-pane shape — real xterm on the left,
configurable-width divider in the middle, small color-only stub on the
right — so changing divider color, divider thickness, or inactive pane
opacity has immediate visible feedback in the Dark/Light theme previews
and the Typography preview.

Switch the preview prop from themeOverride: ITheme to modeOverride: 'dark'
| 'light' so the preview can derive both the theme and the matching
divider color from a single resolveEffectiveTerminalAppearance call —
keeps the dark/light variant rules in lockstep with live panes.

- feat(settings): drop cursor preview; add dark/light toggle to typography preview

Cursor preview was high-friction (xterm cursor blink only animates on
focus, and every workaround for that was either intrusive or fragile)
and low-value — the bar/block/underline toggle is visually obvious from
the controls themselves. Remove it. The Cursor section is back to a
single-column layout.

Add a Moon/Sun toggle to the Typography preview's card header so users
can flip the preview between dark and light themes without changing the
app theme. Toggle is hidden when themeOverride is set (Dark/Light theme
sections already pin a specific theme). Initial mode follows the active
app theme; flipping it doesn't change app settings.

- fix(settings): defer cursor preview focus by one frame

Use terminal.focus() (which already uses preventScroll: true internally)
and defer it via requestAnimationFrame. Focusing synchronously inside a
React effect can land before xterm finishes wiring the textarea focus
subscription, leaving _isFocused stale and the blink interval paused
even though the textarea has DOM focus. One frame is enough for xterm's
setup to complete.

- fix(settings): blink cursor preview as soon as Settings opens

Drop the first-render guard so the cursor preview blinks immediately on
mount, not just after a cursor setting change. Switch to focusing the
xterm helper textarea directly with preventScroll: true so the page
doesn't jump to the preview when Settings first opens — the preview can
be below the fold and a scroll-into-view would be jarring.

- fix(settings): focus preview on cursor changes so blink demonstrates

xterm only animates cursor blink when the terminal has focus, so the
Cursor section's blink toggle had no visible effect unless the user
clicked into the preview. Add an opt-in autoFocusOnCursorChange prop
that focuses the preview whenever cursorStyle/Blink/Opacity changes —
the user is interacting with cursor controls so a brief focus snap is
expected. Skip the first run so opening Settings doesn't steal initial
focus from elsewhere on the page. Only the Cursor preview opts in;
Typography and theme previews keep natural focus behavior.

- fix(settings): fit preview at default font, mirror cursor inactive style, share with theme sections

Three follow-ups from visual testing:

1. Trim preview content and pin cols=36 so PREVIEW_BUFFER fits in the
   ~312px-wide xterm canvas at the default 14px font. Larger fonts still
   extend past the right edge (clipped, not wrapped) — same behavior as
   before, just with the default size now on the right side of "fits".

2. Mirror cursorInactiveStyle to cursorStyle so the cursor shape always
   reflects the user's choice. xterm renders an outline cursor when
   unfocused by default, which masked shape changes in the preview because
   it's read-only and never gets focus. Blink still requires focus — same
   as a real terminal pane.

3. Replace TerminalThemePreview with TerminalSettingsPreview in the dark
   and light theme sections. Adds a themeOverride prop on the preview so
   each section can pin a specific theme regardless of the active app
   theme. Drops the static two-pane mock + palette grid in favor of the
   richer code/test/diff buffer the user prefers.

- fix(settings): preview lifecycle and font hover preview

Three issues from initial visual testing:

1. Buffer accumulated on theme/settings changes. terminal.clear() keeps
   the row the cursor sits on, and PREVIEW_BUFFER ends mid-line on the
   prompt — so a follow-up clear+write left the trailing prompt fragment
   and appended the new buffer beneath it. Switch to terminal.reset()
   which restores cursor home and wipes the buffer.

2. Long lines wrapped because FitAddon shrunk cols to fit the 360px
   container. Drop FitAddon (and the resize observer that supported it),
   pin cols=50 / rows=15 in the constructor, and let the container clip
   horizontal overflow at large fonts. Lines never break mid-content now.

3. Add hover-to-preview to the font picker. FontAutocomplete fires a new
   onPreviewFontFamily callback as the user moves through dropdown
   options; TerminalPane lifts a previewFontFamily state and hands it to
   both Typography and Cursor previews so users see each font without
   committing the selection.

- fix(settings): preserve Ghostty context and honor opacity in preview

Per final review: the original Ghostty rationale comments inside
applyTerminalAppearance were lost when the composition was extracted —
restore them on each branch of composeActiveTerminalTheme. And the preview
needs allowTransparency true when the user has set a sub-1 background
opacity, otherwise xterm renders the rgba background fully opaque.

- feat(settings): show live preview in Typography and Cursor sections

- fix(settings): make preview read-only via xterm and track theme bg

Per code review: tabIndex/aria-hidden on the wrapper don't reach xterm's
internal textarea — disableStdin does. And bg-black on the wrapper showed
a stark black ring around light-mode previews; track the composed theme's
background instead so the padding band always matches the canvas.

- fix(settings): suppress false-positive exhaustive-deps warning

- feat(settings): add TerminalSettingsPreview component

Implements Tasks 3-7 of the terminal-settings-preview plan: a live
read-only xterm.js preview card (DOM renderer) that mutates font/cursor
options directly, repaints the ANSI buffer on theme changes, manages the
LigaturesAddon on toggle, and refits on ResizeObserver events.

- fix(terminal): tighten composeActiveTerminalTheme docs + cover zero opacity

Per code review: lead the JSDoc with the why (preview reuse) instead of
narrating the merge steps, and add a test that pins zero-background-opacity
behavior so a future truthy-only guard refactor doesn't silently drop it.

- refactor(terminal): extract composeActiveTerminalTheme helper

- fix(settings): split def/render syntax colors and harden marker test

Per code review: the prompt() comment leaked a layout detail (360px), and
def/render were collapsed into a single yellow span — losing the function-
name color distinction the preview is meant to demonstrate. Strip ANSI in
the marker test so future re-coloring doesn't break it.

- feat(settings): add terminal preview content module

Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com>
2026-05-26 01:51:27 -07:00
Neil 35411bd76e Confirm onboarding dismissal 2026-05-26 01:49:39 -07:00
Yusuke Hata 36b4b726fa feat(terminal): add terminalJISYenToBackslash setting (#2818) 2026-05-26 00:50:15 -07:00
Jinwoo HongandOrca 34fa2b212d Fix floating workspace link routing (#2825)
Co-authored-by: Orca <help@stably.ai>
2026-05-25 23:19:02 -07:00
Neil 0f13c5d7bb Fix floating terminal tab switch shortcuts
Route tab-switch shortcuts to the focused floating workspace instead of the background terminal.
2026-05-25 23:01:15 -07:00
kekeliandNeil 7359c400cf feat(file-explorer): add multi-select support (#1840)
Original commits:

- Add multi-select copy paths in explorer
- Avoid explorer selection scans on hot paths
- feat: add multi-select support to explorer file tree
- fixup: resolve post-rebase cleanup after rebasing onto nwparker branch
- fix: preserve selected set and implement deterministic order delete
- Merge branch 'main' into feat/file-explorer-multi-select
- Merge branch 'main' into feat/file-explorer-multi-select
- fix: remove duplicate variable

Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com>
2026-05-25 22:55:59 -07:00
BorjaandNeil e510421699 Add Command Code as a supported CLI agent (#2520)
* Add Command Code as a supported CLI agent

Register Command Code (https://commandcode.ai) across the agent
catalog, launch config, telemetry kind, agent-status icon record, and
settings search. Detection uses the full `command-code` binary rather
than the shorter `cmd` alias that `npm i -g command-code` also
installs — agent-process-recognition normalizes process names by
stripping `.exe`/`.cmd` extensions, so using `cmd` would collide with
Windows' built-in `cmd.exe` shell.

Closes #2083

* Complete Command Code agent registration

---------

Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com>
2026-05-25 22:35:41 -07:00
Neil ab80339158 Fix shell-launched OMP status hooks (#2821)
* Fix shell-launched OMP status hooks

* Update oh-my-pi branding

* Add OMP to mobile agent metadata
2026-05-25 22:20:15 -07:00
Neil a20525a6ea Make onboarding flow a centered modal (#2817) 2026-05-25 20:03:39 -07:00
Neil 6b51b85519 Fix OMP agent status routing (#2815) 2026-05-25 19:32:15 -07:00
Jinwoo Hong ebb6bc8f71 Fix Windows terminal PATH refresh (#2810) 2026-05-25 22:07:31 -04:00
Brennan BensonandOrca add481978e Revert Claude scoped settings launch path (#2809)
Co-authored-by: Orca <help@stably.ai>
2026-05-25 19:03:14 -07:00
Brennan BensonandOrca e0af80ddec Fix onboarding tour footer and copy (#2799)
Co-authored-by: Orca <help@stably.ai>
2026-05-25 18:56:43 -07:00
Jinwoo HongandOrca a33eedfd02 Reveal new worktrees in sidebar (#2804)
Co-authored-by: Orca <help@stably.ai>
2026-05-25 18:40:19 -07:00
formatme efd75da5d6 Add OMP as first-class TUI agent
Adds OMP as a first-class TUI agent and keeps Pi/OMP overlay state isolated across local and relay PTY paths.\n\nValidated locally with focused Vitest coverage, typecheck, lint, git diff --check, and Electron manual verification using installed omp (omp/15.3.2).
2026-05-25 18:35:48 -07:00
Brennan BensonandOrca e27f3df397 Re-add scroll to open workspace control (#2796)
Co-authored-by: Orca <help@stably.ai>
2026-05-25 17:57:30 -07:00
Jinjing 36357dfcb7 fix: address review findings (#2807) 2026-05-25 17:43:08 -07:00
Jinwoo HongandOrca bec6b81cb4 Fix floating workspace terminal shortcut focus (#2801)
Co-authored-by: Orca <help@stably.ai>
2026-05-25 17:18:06 -07:00
Brennan BensonandOrca 8fbc3eecd0 Fix Cmd+J create workspace selection (#2800)
Co-authored-by: Orca <help@stably.ai>
2026-05-25 15:27:01 -07:00
Brennan BensonandOrca a2c71461b4 Isolate Codex hooks in Orca runtime home (#2350)
Co-authored-by: Orca <help@stably.ai>
2026-05-25 15:07:40 -07:00
Jinwoo HongandOrca 3a40c62169 Improve Computer Use permission setup (#2758)
Co-authored-by: Orca <help@stably.ai>
2026-05-25 14:54:47 -07:00
Brennan BensonandOrca 9453d63989 Persist right sidebar visibility globally (#2792)
Co-authored-by: Orca <help@stably.ai>
2026-05-25 13:38:45 -07:00
Brennan BensonandOrca adeff3e245 Fix Checks panel local branch empty state (#2768)
Co-authored-by: Orca <help@stably.ai>
2026-05-25 13:27:02 -07:00
Neil 6744f19a49 Refine shortcut settings UX (#2787)
* Compact shortcut row actions

* Redesign shortcuts settings controls

* Refine shortcuts settings UX

* Polish shortcut settings interactions
2026-05-25 11:36:53 -07:00
Neil d4703bd1ab Restore agent hook opt-out controls (#2778) 2026-05-25 10:37:22 -07:00
Jinjing 18ed410b19 feat: allow starting from primary worktree (#2781) 2026-05-25 01:54:03 -07:00
Neil 71b3998cd7 Fix multiline quick command execution (#2779) 2026-05-25 01:45:07 -07:00
Brennan BensonandOrca 4bacdc534d Left-align onboarding tour intro and add Continue action (#2774)
Co-authored-by: Orca <help@stably.ai>
2026-05-24 22:29:26 -07:00
Brennan BensonandOrca 3ef4a42305 Add Cmd-J settings and quick actions (#2769)
Co-authored-by: Orca <help@stably.ai>
2026-05-24 20:05:46 -07:00
Brennan BensonandOrca 99d580ddf8 Add agent command templates to quick commands (#2771)
Co-authored-by: Orca <help@stably.ai>
2026-05-24 19:38:30 -07:00
Neil 1bb63fd521 Use dropdown for onboarding notification sounds (#2766)
* Use dropdown for onboarding notification sounds

* Trim onboarding macOS notification copy

* Align onboarding notification sound actions

* Tighten onboarding notification settings copy

* Hide onboarding custom sound path

* Remove onboarding notification volume slider

* Update onboarding notification subtitle
2026-05-24 19:32:16 -07:00
Neil 6229693511 fix: tune light sidebar hover contrast (#2770) 2026-05-24 19:12:34 -07:00
Jinjing 15b7433aeb Revert "Align tab bar action buttons" (#2767) 2026-05-24 18:47:33 -07:00
Brennan BensonandOrca c93759659f Rename Smart sort to Agent Activity (#2761)
Co-authored-by: Orca <help@stably.ai>
2026-05-24 15:49:36 -07:00
Neil 04f23c9cbc Add inline workspace title rename (#2753) 2026-05-24 13:32:22 -07:00
Neil 3ff99fd101 Document upstream xterm patch tracking (#2752) 2026-05-24 13:21:56 -07:00
Neil d6013ee404 Make workspace search global (#2748) 2026-05-24 13:06:21 -07:00
Neil 05af0e92ef Fix WSL preflight context snapshot stability (#2749) 2026-05-24 13:03:41 -07:00
Jinwoo HongandOrca 3d85148e95 Change floating workspace shortcut default (#2678)
Co-authored-by: Orca <help@stably.ai>
2026-05-24 12:03:08 -07:00
Neil 7c1910a462 Refine workspace hovercard section indentation (#2745) 2026-05-24 01:17:35 -07:00
Neil 476f367c9d Use square repo badges (#2744) 2026-05-24 00:25:27 -07:00
Neil eab824d735 Compact terminal shortcut notification
Shorten the terminal shortcut toast, keep it to two lines, and auto-dismiss it after 20 seconds.
2026-05-23 23:37:59 -07:00
Neil 5a130fe077 fix: restore tab bar pane collapse (#2743) 2026-05-23 23:36:57 -07:00
Neil bea744b7e4 Revert "Hide branch names behind workspace card property" (#2740) 2026-05-23 23:04:59 -07:00
Neil 28ba9151a5 Revert "Add agent hook opt-out controls" (#2739) 2026-05-23 23:04:57 -07:00
Neil 83c90db261 Fix onboarding rerun project continuation (#2735) 2026-05-23 21:44:46 -07:00