Collapse multi-line explanatory comment blocks into single-line "why" statements
per AGENTS.md ("Document the Why, Briefly"): drop restatements of the code and
mechanism narration; keep the non-obvious reason, external refs, and directives.
Comments-only — verified no code changed via a Babel/esbuild comment-strip
token-equality gate against origin/main; typecheck and oxlint clean.
Area: main — git, source-control, providers & integrations. 40 files changed, 1432 insertions(+), 4473 deletions(-).
Co-authored-by: Orca <help@stably.ai>
* fix(cli): harden Windows launcher transports
* Fix csc.exe compile failures on space-bearing Windows install paths
- Legacy csc.exe mangles absolute paths containing spaces, so the
compile step now cd's into the bin directory and passes bare
file names for /out and the source file instead of full paths
* Surface a friendly error when Windows blocks the user PATH write
When HKCU\Environment is locked (Group Policy / restricted ACL / EDR-managed
environment), the PowerShell SetEnvironmentVariable write rejects with a raw
'Command failed: powershell ...' error (often mojibake-localized) that the CLI
Settings toast displayed verbatim. Detect the permission failure via the Latin
PowerShell error-envelope tokens and rethrow an actionable message naming the
exact folder to add to PATH manually, chaining the original error on cause.
Fixes#6412
Co-authored-by: Orca <help@stably.ai>
* Tighten Windows PATH permission detection
---------
Co-authored-by: Orca <help@stably.ai>
* fix Orca CLI path resolution and improve registration UI
- Hydrate the shell PATH before running installer actions on macOS to
match the user's terminal instead of launchd.
- Resolve the active macOS command path dynamically against shell PATH
candidates, ignoring broken symlinks and non-executable files.
- Detect and report conflicts with unmanaged executables shadowing the
configured command path.
- Add "Preparing..." and "Registering..." loading states to the settings
and setup panels during preflight checks.
* Fix Orca CLI detection and installation path conflict checks
- Allow detecting a managed Orca command located later in PATH when the
default path entry is missing or non-executable.
- Avoid raising installation conflicts for unmanaged commands located
after the default install path, as they will be safely shadowed.
- Translate terminal setup and Orca CLI registration strings for
Spanish, Japanese, Korean, and Chinese locales.
* Only open terminal when pre-install checks succeed
Prevent the terminal from opening and setting the terminal command if
onBeforeOpenTerminal or refreshPreInstallNotice throws an error.
Detect generated Orca Unix launcher files as stale CLI registrations and replace them during install, while keeping arbitrary regular files protected as conflicts. This removes the stale /usr/local/bin/orca blocker found during memory profiling.
* feat(ui): add instruction hints to command and prompt dialogs
Add helper text below prompt/description textareas in the quick command
dialog, automation editor dialog, and create PR dialog to inform users
about supported features like skills, file paths, and built-in commands.
Closes#3998
* fix: use resources/bin/orca.cmd for packaged Windows CLI path
resolveCommandPath() returned %LOCALAPPDATA%\\Programs\\Orca\\bin\\orca.cmd
but the actual CLI after updates lives at resources\\bin\\orca.cmd.
The bin\\orca.cmd shim is wiped on every update, breaking CLI access.
* chore: keep windows cli path PR focused
---------
Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com>
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>
* 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>
Adds an RPM Linux package target and renames the Linux CLI command to orca-ide to avoid shadowing GNOME Orca, while preserving macOS and Windows CLI command behavior.\n\nFollow-up hardening keeps the Linux launcher executable, removes only old Orca-managed Linux/WSL orca launchers during migration, preserves AppImage/deb artifact names, and updates package/release tests for the RPM asset.