Support packaged Linux AppImage CLI registration with a stable wrapper that invokes the outer AppImage and resolves the CLI entry from APPDIR at runtime.
The takeover drops the already-landed Linux command rename plus unrelated perf/GPU sandbox changes from the original branch, and adds regression coverage for wrapper install, stale wrapper replacement, legacy symlink cleanup, argument forwarding, and env preservation.
Co-authored-by: Emad Fussi <43019044+omd0@users.noreply.github.com>
store-session-cascades.test.ts and tabs.test.ts each carried a
byte-for-byte copy of createTestStore (plus the make* fixture factories
in the session-cascades file) instead of importing the canonical ones
from store-test-helpers.ts. Switch both to the shared helpers, dropping
~170 lines of duplicated harness and the now-unused slice/create/AppState
imports. The removed bodies were identical to the shared exports, so test
behavior is unchanged.
* Keep project group headers sticky over nested repo headers
- Prevent nested repo headers from replacing their top-level project group
as the pinned sidebar header
- Split imported-row tests from scroll adjustment coverage
- Add sticky header tests for manual and built row hierarchies
* Tell users to commit before publishing dirty new branches
* fix(cli): fall back to ~/.local/bin on macOS arm64 when /usr/local/bin is absent
/usr/local/bin does not exist by default on Apple Silicon Macs — Homebrew
moved to /opt/homebrew after the arm64 transition. The previous code called
mkdir(/usr/local/bin) inside install(), which threw EACCES (root-owned parent
directory) before installSymlink() was reached, so the existing osascript
privileged-runner fallback was never invoked. Settings permanently showed
"not installed" with no error surfaced anywhere, silently blocking all four
agent skill install flows (Orchestration, Browser Use, Computer Use, CLI).
Changes:
- resolveCommandPath() darwin branch now returns this.macCommandPath, a field
resolved once at construction time via existsSync(dirname(candidatePath)).
When /usr/local/bin is absent the constructor falls back to ~/.local/bin/orca
(user-writable, no sudo, XDG standard, already on PATH via shell init on arm64).
existsSync is not called on every getStatus() invocation.
- mkdir is moved from install() into installSymlink()'s try/catch block so any
EACCES failure reaches the osascript privileged runner instead of propagating
as an unhandled rejection. mkdir is kept in install() for the Windows wrapper
path where the target directory is always user-writable.
- defaultMacCommandPath option added as a test seam so tests can simulate an
absent /usr/local/bin without touching the real filesystem.
Fixesstablyai/orca#3557
* review: tighten macOS CLI installer coverage
- cover the macOS path-selection seam without bypassing it
- make the privileged-runner test invoke install and assert the fallback
- prove macCommandPath stays fixed after construction
---------
Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com>
Exclude repo-only package inputs and move renderer/build-only dependencies out of production dependencies to reduce packaged app.asar size while keeping source maps allowed for crash diagnostics.
* refactor: reorganize Settings navigation order and labels
Rename the "Safety" group to "Privacy & Security" (the conventional term
for its permissions + telemetry contents), move Floating Workspace to the
end of Workflows so it sits with the Terminal/Browser surfaces it's built
from, and de-scramble the section registry so it reads in group order.
The registry array now mirrors SETTINGS_NAV_GROUPS top-to-bottom, which
makes the Cmd+J palette list settings in the same grouped order as the
sidebar instead of a jumbled sequence.
* refactor: move terminal visuals into appearance settings
---------
Co-authored-by: Jinjing <6427696+AmethystLiang@users.noreply.github.com>
- Keep active pane agent type when child CLIs inherit the parent pane key
- Ignore nested child done events so parent Codex turns stay visibly active
- Share identity resolution across main and renderer with regression tests
* Tighten worktree card spacing and agent rows
- Move repo, folder, status, and unread indicators into denser card slots
- Keep branch and review metadata available through title hover details
- Derive visible agent rows from terminal titles when hook status is absent
- Refine compact agent summaries and cover the new selectors/layout behavior
* Fix sidebar spacing CI expectations
- Add a terminal action to create a top-level workspace fork with captured agent context
- Pre-mark local and SSH agent trust before launching forked Codex/Cursor/Copilot sessions
- Use remote/Linux startup behavior for SSH and WSL forks, with Windows draft size fallback
- Cover fork prompt cleanup, launch behavior, remote trust writes, and dialog busy-state tests