* 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