Commit Graph
2191 Commits
Author SHA1 Message Date
Trevin Chowandbrennanb2025 a65f7b4216 feat: auto-rename workspace branch from the first prompt (#2888)
Co-authored-by: brennanb2025 <brennankbenson@gmail.com>
2026-05-27 14:09:43 -07:00
Jinwoo HongandOrca 770536ef7e Auto-detect repo icons when adding projects (#2786)
Co-authored-by: Orca <help@stably.ai>
2026-05-27 13:48:40 -07:00
48a1923756 fix(terminal): flatten multiline quick commands into shell list (#2903)
Multiline quick commands should behave like a shell command list, not a series of already-queued PTY lines. When a foreground command reads stdin, raw newline delivery can be consumed before the shell sees later cd/pwd lines; terminal paste avoids that but shows the whole block as pasted input before execution.

Flatten newline-separated quick commands into a semicolon-delimited command list before active-pane dispatch and new-tab startup queuing. The shell parses the list once, so later commands run after earlier foreground commands exit and directory changes remain in the active shell.

Fixes #2844

Co-authored-by: Prethish-Complyance <prethish@complyance.io>
Co-authored-by: Orca <help@stably.ai>
2026-05-27 01:06:47 -07:00
Neil c40a430596 Fix Antigravity agent status stability (#2904) 2026-05-27 00:53:10 -07:00
Jinjing 5783c4192b Improve Linear issue editing flow (#2901)
* fix: address review findings

* fix: update Linear RPC test
2026-05-26 23:15:33 -07:00
Jinwoo HongandOrca 3f8fad9e9e Improve mobile terminal startup and scrolling (#2828)
Co-authored-by: Orca <help@stably.ai>
2026-05-27 00:59:14 -04:00
Brennan BensonandOrca 54c2ef89da Handle force delete for orphaned worktree directories (#2757)
Co-authored-by: Orca <help@stably.ai>
2026-05-26 20:28:51 -07:00
Trevin ChowandNeil b2b5cac9a9 Add per-file line counts to the source control sidebar (#2865)
* Add per-file line counts to the source control sidebar

Show +N/-N (green/red) next to each file in the Changes, Untracked, and
Committed-on-branch sections so the magnitude of a change is visible at a
glance. Counts are computed per staging area via `git diff --numstat`;
untracked/new files count their full contents as additions and binary
files show no count.

Consolidate numstat parsing and binary-buffer detection into shared
modules reused by the local status path, the SSH/relay path, and the
existing branch-compare code. Include added/removed in the status-entry
equality check so the sidebar doesn't re-render on unchanged polls.

* fix: harden source control line counts

---------

Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com>
2026-05-26 20:09:54 -07:00
Jinjing 6a9be249f5 feat: add external task filter links (#2871) 2026-05-26 20:07:03 -07:00
Neil 9b2c05fa77 Fix keyboard layout shortcut dispatch
Fix shortcut dispatch so app commands follow the produced logical key for the active keyboard layout, while preserving intentional physical-code fallbacks for terminal byte paths and unavailable logical keys.\n\nCloses #2858
2026-05-26 18:28:55 -07:00
Brennan BensonandOrca 91991d6186 Improve refresh local base ref UX (#2570)
Co-authored-by: Orca <help@stably.ai>
2026-05-26 18:28:41 -07:00
Brennan BensonandOrca b7832c0790 Persist worktree creation base in git config (#2859)
Co-authored-by: Orca <help@stably.ai>
2026-05-26 15:54:07 -07:00
Neil eb579a0e54 Fix SSH sessions after host sleep 2026-05-26 14:53:16 -07:00
Neil a6f9a5826e Add Command Code agent status tracking
Adds Command Code hook installation, status normalization, launch seeding, and terminal-output fallback detection for working/done sidebar status. Includes review hardening for long-running tool repaint cadence and prompt sanitization across split ANSI chunks.
2026-05-26 14:45:34 -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
ddda84f529 fix(shell-ready): honor user's ZDOTDIR (XDG-layout fix, redo of #1737) (#1947)
* fix(shell-ready): honor ZDOTDIR without breaking zsh scoping

Fixes #1866

This reimplements PR #1737 (reverted in #1864) with a safer approach
that preserves normal zsh startup semantics.

**Core fix**: Discover ZDOTDIR by sourcing user ~/.zshenv in a subshell
instead of inside a wrapper function. This preserves top-level zsh
scoping for common patterns like `typeset -U path` that broke in the
original implementation.

**Shell safety improvements**:
- Use `printf '%s\n'` instead of `echo` for capturing ZDOTDIR (handles
  special characters in paths safely)
- Subshell isolates early returns and side effects from wrapper

**Code quality**:
- Extract duplicated zsh wrapper template to `src/main/shell-templates.ts`
- Both local-pty and daemon paths now share identical wrapper logic

**Test coverage**:
- Add live zsh subprocess tests that spawn real zsh to verify:
  - XDG ZDOTDIR discovery works
  - `typeset -U path` in .zshrc preserves top-level scoping
  - Early returns in .zshenv don't crash the wrapper
  - Vanilla (non-XDG) configs fall back to HOME correctly
- Template structure tests validate subshell discovery logic

Before (broken):
```zsh
__orca_source_user_zshenv() {
  source "$HOME/.zshenv"  # typeset becomes function-scoped
}
```

After (fixed):
```zsh
_orca_discovered_zdotdir=$(
  unset ZDOTDIR
  [[ -f "$HOME/.zshenv" ]] && source "$HOME/.zshenv" 2>/dev/null
  printf '%s\n' "${ZDOTDIR}"
)
export ORCA_ORIG_ZDOTDIR="${_orca_discovered_zdotdir:-${_orca_spawn_orig_zdotdir:-$HOME}}"
```

The subshell sources .zshenv at top-level (preserving normal scoping),
captures only the ZDOTDIR value, then exits. User rcfiles (.zshrc, etc.)
are still sourced at the wrapper's top level, so all scoping works normally.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Add shell-script-literal test framework and improvements

Adds a new declarative test framework for shell-ready tests that uses
literal shell scripts (copy-pastable into terminals) with inline snapshots.

Framework features:
- Shell scripts as string literals with # Run: marker to split setup/test
- Direct script execution (no brittle parsing) via temp files
- Path normalization for reproducible snapshots (<HOME>, <WRAPPER_DIR>)
- Auto-detects shell from command, supports bash/zsh/sh
- Inline snapshot testing with vitest toMatchInlineSnapshot()

Code quality improvements:
- Extract escapeRegex to shared string-utils.ts (deduplicates 2 copies)
- Refactor shell-templates.ts for readability (condense comments, add structure)
- Pre-compile regex patterns to avoid hot-path allocation
- Fix path normalization to sort by length (prevent nested path corruption)
- Fix actualUserHome handling to skip empty values

All tests passing (64/64 shell-ready tests, 55/55 affected tests).

Files added:
- src/main/providers/__tests__/shell-ready-framework/shell-script-test.ts
- src/main/providers/__tests__/shell-ready-framework/README.md
- src/main/providers/__tests__/shell-ready-framework-example.test.ts
- src/shared/string-utils.ts

Files modified:
- src/main/shell-templates.ts (readability cleanup)
- src/main/codex/config-toml-trust.ts (use shared escapeRegex)
- src/main/daemon/shell-ready.test.ts (updated for new framework)
- src/main/providers/local-pty-shell-ready.test.ts (updated for new framework)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix(shell-ready): preserve zshenv semantics

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com>
2026-05-26 00:24:45 -07:00
Jinwoo HongandOrca 6f18d362cc Improve mobile markdown editing (#2826)
Co-authored-by: Orca <help@stably.ai>
2026-05-26 00:07:53 -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 6b51b85519 Fix OMP agent status routing (#2815) 2026-05-25 19:32:15 -07: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
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
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 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
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
Brennan Benson 5287a581a6 Revert "Allow OS metadata during worktree delete preflight" (#2776) 2026-05-24 23:23:31 -07:00
Brennan BensonandOrca fdb63366d3 Allow OS metadata during worktree delete preflight (#2760)
Co-authored-by: Orca <help@stably.ai>
2026-05-24 23:00:40 -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 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 f0627cccc6 Fix SSH target removal state cleanup (#2710) 2026-05-23 21:44:40 -07:00
Neil 4f81953d10 feat: add agent hook opt-out controls (#2714) 2026-05-23 21:16:49 -07:00
Neil cacc09e92f Add commit failure AI recovery action (#2705)
* Add commit failure AI recovery action

* Add agent picker to commit failure fix action
2026-05-23 21:13:00 -07:00
Neil 283fdc6805 Bound PTY batch flushes to reduce typing latency spikes (#2724)
* Bound PTY batch flushes

* Add PTY batch flush benchmark

* Reduce PTY runtime ingress work

* Fix PTY benchmark lint
2026-05-23 20:01:06 -07:00
Neil 3dd281eb8e Hide branch names behind workspace card property 2026-05-23 19:16:50 -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