orca/config/scripts
Dominik Mery 650dd48ec9
feat(cli): add `orca account add` / `account list` for headless hosts (Claude + Codex) (#9177)
* feat(cli): add `orca account add` / `account list` for headless hosts

The desktop "Add account" UI is disabled when the renderer drives a remote
runtime (isRemoteAccountScope === kind:'environment'), so a headless server
reached from a remote desktop/web client has no way to register managed
Claude accounts. Add a host-local CLI path that reuses the existing capture
logic:

- ClaudeAccountService.addAccountFromConfigDir(): register a managed account by
  capturing credentials from an already-authenticated CLAUDE_CONFIG_DIR instead
  of spawning the interactive browser login (extracted persist/rollback helpers
  shared with the existing add flow)
- RPC accounts.addClaudeFromConfigDir, bridged via OrcaRuntime; rejected for
  mobile device tokens (host-local only)
- `orca account add` runs `claude login` in the user's own terminal into a temp
  CLAUDE_CONFIG_DIR, then registers it via the local runtime; `orca account list`
  lists managed accounts

Switching (select) already works from a remote client; only adding was blocked.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat(cli): support Codex in `orca account add` / `account list`

Mirror the Claude headless-account CLI for Codex:

- CodexAccountService.addAccountFromHome(): register a managed Codex account by
  importing auth.json from an already-authenticated CODEX_HOME, reusing a shared
  persist helper extracted from doAddAccount (no interactive login spawned here)
- RPC accounts.addCodexFromHome + OrcaRuntime.addCodexAccountFromHome bridge,
  rejected for mobile device tokens (host-local only)
- `orca account add --agent claude|codex` (default claude); `orca account list`
  now renders both Claude and Codex managed-account blocks

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* test: cover headless account-add capture paths (Claude + Codex)

- ClaudeAccountService.addAccountFromConfigDir: registers a managed account by
  capturing an authenticated CLAUDE_CONFIG_DIR; rejects and rolls back when the
  dir has no .credentials.json
- CodexAccountService.addAccountFromHome: imports auth.json from an
  authenticated CODEX_HOME into a managed account; rejects when auth.json is
  missing

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix: address CodeRabbit review on headless account-add flows

- CLI login spawn uses a shell on Windows so `.cmd` agent shims resolve without
  ENOENT (args are fixed literals, no injection risk)
- Claude capture skips the `.credentials.json` precheck on macOS, where creds
  live in the Keychain and captureAuthFromConfigDir reads them
- Claude add rollback is best-effort: a failed rematerialization no longer skips
  managed-auth cleanup or masks the original add error
- Codex persist restores the prior account/selection if a post-write sync or
  rate-limit refresh fails, so a failure can't leave a dangling managed account
- Codex sync passes the account's selection target (correct runtime for WSL)
- Add JSDoc to the new public service methods and CLI functions

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(cli): harden headless account capture

* fix(cli): correct account command flag surface and interrupt cleanup

- `account` commands no longer accept or advertise the browser `--page`
  flag; `supportsBrowserPageFlag` allow-listed them by omission, so
  `orca account list --page x` was silently accepted and `--help`
  rendered a browser-only option
- account specs declare GLOBAL_FLAGS, so `--help`/`--json` render in the
  Options block like every other command
- `--agent` on `account add` documents the account provider instead of
  the terminal TUI-agent meaning inherited from the shared flag table
- a SIGINT/SIGTERM during the interactive login now removes the temp
  login dir (and restores the macOS Keychain item) before exiting 130;
  Node terminates without unwinding `finally`, which stranded live OAuth
  credentials on disk

* perf(cli): stop `account list` forcing a provider usage refresh

`accounts.list` awaited refreshAccountsForMobile(), which runs
fetchAll({ force: true }) — bypassing both the poll throttle and the
per-provider Retry-After gate — then O(N) serial per-account round
trips. `orca account list` renders only emails and the active ids, so
all of that work was discarded. The RPC now takes `refreshUsage`
(default true, so mobile and web keep the forced lane) and the CLI opts
out. Older hosts declare `params: null` and ignore the field, so a newer
CLI degrades to the previous behavior rather than failing.

Also documents on `account list` that `--environment` does not retarget
it, matching the host-local behavior of shouldIgnoreRemoteSelection.

* fix(cli): survive repeated and hangup signals during account add

withInterruptCleanup latched cleanup behind a boolean, so a second signal
got an already-resolved promise and its process.exit fired while the first
cleanup was still inside a Keychain call (3s each) — the temp dir's OAuth
credentials and the swapped macOS Keychain item both survived. Memoize the
cleanup promise so every signal awaits the same run, and register with
`on` instead of `once` so a second Ctrl-C cannot fall through to Node's
terminate-immediately default mid-cleanup.

Handle SIGHUP too. This flow exists for headless/SSH hosts, where the most
likely interrupt is the connection dropping, which hangs up the login's
terminal and previously ran no cleanup at all.

Warn when the interrupt lands after sign-in completed: the runtime finishes
the add independently of this process, so exiting 130 silently would tell
the user it was cancelled when the account may exist.

Reject a valueless `--agent`; the parser turns it into boolean true, which
silently ran a full OAuth login for Claude when the user asked for another
provider.

Also lock two behaviors the refactor changed but left uncovered: a WSL Codex
add must sync the WSL runtime lane rather than the default host lane, and
rename the account-spec help test to describe the Options block it actually
asserts rather than the usage string it never reads.

* fix(build): bundle the main modules the account CLI imports

electron-vite cleans out/main and emits only its declared entries, and
`build:desktop` runs it after `build:cli`, so the tsc-emitted copies of
`claude-accounts/keychain`, `codex-cli/command` and `win32-utils` were
deleted before packaging. Both `orca account add` and `orca account list`
then died at require time with "Cannot find module
'../../main/claude-accounts/keychain'" — reproduced against a real
`--serve` host. `agent-hooks/managed-agent-hook-controls` already carried
an entry for exactly this reason; these three were missing.

Adds a parity test so any future CLI import of a `src/main` module fails
in CI rather than at a user's shell after packaging.

* test: cover the desktop add-path behavior this PR changes

Both changes ride in the persist/rollback helpers the existing GUI add
flow shares with the new headless path, and neither had coverage:

- Claude: rollbackAddAccount now guards forceMaterializeCurrentSelection-
  ForRollback, so a rejecting rematerialization no longer replaces the
  real add error nor skips safeRemoveManagedAuth. Asserts the original
  error surfaces and the throwaway auth dir is gone.
- Codex: the desktop add now passes the account's selection target to
  syncForCurrentSelection, matching reauthenticate and select. Asserts
  the host target alongside the existing WSL assertion.

Both fail when the corresponding change is reverted.

* fix(cli): close the remaining account-add interrupt and preflight gaps

The round-1 interrupt fix detached the signal handlers before running the
finally-path cleanup, so the very window it was meant to protect — the two
serial 3s `security` calls plus rmSync on the success/error path — was
still covered only by Node's terminate-immediately default. Both review
lanes reproduced it independently. Await cleanup first, detach in a nested
finally, and stop a cleanup failure from replacing the error that actually
explains why the add failed.

Do not burn the interactive login when the runtime is unreachable. The
RuntimeClient is lazily constructed and the first call was the registration
RPC itself, so "Requires the Orca runtime to be running" was discovered
only after the user completed a full OAuth round trip. Preflight with the
now-cheap `accounts.list { refreshUsage: false }`.

Reject `--environment` / `--pairing-code` on `account add`.
shouldIgnoreRemoteSelection pins account commands to the local runtime, so
`orca account add --environment homelab` silently registered the account on
the laptop instead of the headless host it names.

Survive a daemon that cannot spawn `claude`. `allowFailure` is honored in
onClose but not onError, and unlike the GUI flow nothing has run `claude` in
the daemon before this point — so a launchd/systemd daemon with a minimal
PATH hard-failed an add the user had already signed in for, even though
identity resolves fine from the config dir's oauthAccount.

Also align the `--agent` help description with the global flag column.

* fix(cli): reject runtime selectors on `account list` too

`orca account list --environment homelab` was accepted and silently
listed the LOCAL machine's accounts, because shouldIgnoreRemoteSelection
pins account commands to the local runtime. Documenting that in --help
does not reach someone who already typed the flag, and answering with the
wrong host's accounts is the specific wrong answer they would act on.

`account add` already errors; this makes the new command group internally
consistent. The other groups in shouldIgnoreRemoteSelection keep their
existing silent-ignore behavior — changing those is not this PR's job.

* test: harden account-add signal tests and cover cleanup failure

- Identify the handler under test by set difference instead of
  `process.listeners(sig).at(-1)`. Vitest installs its own once-wrapped
  SIGINT teardown, so the positional lookup could grab the wrong listener;
  the helper also asserts exactly one new listener was added.
- Mock rmSync while keeping the real implementation by default, so the
  temp-dir assertions elsewhere stay honest.
- Cover that a cleanup failure in the `finally` does not replace the error
  explaining why the add failed. Fails when that guard is removed.

Completes the review loop's final round; the loop died on an API error
before it could commit this, and its `import()` type annotation would
have failed oxlint.

* fix(cli): harden interactive account add

* test(cli): make account cancellation coverage portable

* fix(cli): preserve merged skills runtime modules

---------

Co-authored-by: Dominik <marketing@gavaplast.sk>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Brennan Benson <79079362+brennanb2025@users.noreply.github.com>
2026-07-30 12:50:07 -07:00
..
windows-apphang-repro feat(codex): real-home routing + self-contained multi-account homes (#9501) 2026-07-20 14:34:53 -07:00
agent-hook-normalizer-roundtrip-benchmark.mjs perf(agent-status): validate hook payloads without the JSON round trip (#10752) 2026-07-26 13:20:23 -07:00
app-store-performance-plugin.test.mjs perf(lint): consolidate code-quality gates into Oxlint (#11117) 2026-07-28 00:21:13 -07:00
audit-localization-coverage.mjs Revert "Decouple feature copy from translated locale catalogs (#8488)" (#8500) 2026-07-12 23:43:07 -07:00
benchmark-artifact-comparison.test.mjs Reduce git trace and branch compare polling churn (#6002) 2026-06-22 19:13:32 -07:00
bootstrap-locale-catalog.mjs Revert "Decouple feature copy from translated locale catalogs (#8488)" (#8500) 2026-07-12 23:43:07 -07:00
bootstrap-zh-catalog.mjs
branch-compare-head-benchmark.mjs perf(git): overlap getBranchCompare's head-of-chain reads (#10895) 2026-07-27 17:17:03 -07:00
build-computer-macos.mjs chore(lint): adopt unicorn/prefer-import-meta-properties (error) (#6847) 2026-06-29 23:37:30 -07:00
build-mac-local.mjs feat(updater): switch to validated local mac builds (#10889) 2026-07-27 16:36:39 -07:00
build-mac-local.test.mjs feat(updater): switch to validated local mac builds (#10889) 2026-07-27 16:36:39 -07:00
build-native-for-platform.mjs fix(cli): preserve multiline arguments on Windows (#8374) 2026-07-12 02:13:41 -07:00
build-notification-status-macos.mjs onboarding: seamless macOS notification permission step with live state detection (#7684) 2026-07-08 22:21:40 -07:00
build-relay.mjs fix(ssh): patch node-pty helper in Windows relay (#9638) 2026-07-20 19:09:18 -07:00
build-windows-cli-launcher.mjs P2 windows cli hardening (#8638) 2026-07-13 18:58:21 -07:00
build-windows-cli-launcher.test.mjs test(windows): allow native launcher compilation time (#8897) 2026-07-15 13:26:42 -07:00
check-changed-code-quality.mjs fix(lint): restore nested config discovery in changed-code gate (#11130) 2026-07-28 01:30:52 -07:00
check-changed-code-quality.test.mjs fix(lint): restore nested config discovery in changed-code gate (#11130) 2026-07-28 01:30:52 -07:00
check-feature-wall-assets.mjs chore(lint): adopt unicorn/prefer-import-meta-properties (error) (#6847) 2026-06-29 23:37:30 -07:00
check-max-lines-ratchet.mjs Add max-lines ratchet CI gate to block new line-limit bypasses (#7608) 2026-07-06 17:12:27 -07:00
check-max-lines-ratchet.test.mjs Add max-lines ratchet CI gate to block new line-limit bypasses (#7608) 2026-07-06 17:12:27 -07:00
check-react-doctor-changed.mjs chore(quality): ratchet Oxlint, React Doctor, and Zustand performance (#11034) 2026-07-27 18:58:36 -07:00
check-reliability-gates.mjs cleanup(main): defer serve-sim materialization, dedupe reload flags, guard gate validators (#7321) 2026-07-03 22:32:11 -07:00
check-reliability-gates.test.mjs Harden reliability gate policy and register merged terminal regression tests as gates (#7295) 2026-07-03 19:58:07 -07:00
check-terminal-perf-report-budgets.mjs Fix e2e tests (#8495) 2026-07-13 00:48:51 -07:00
check-terminal-perf-report-budgets.test.mjs Fix e2e tests (#8495) 2026-07-13 00:48:51 -07:00
claude-account-windows-spawn-repro.mjs fix(claude-accounts): quote resolved claude path for Windows shell spawn (#10237) 2026-07-23 17:44:43 -07:00
claude-usage-yield-benchmark.mjs fix(quality): enforce performance-safe lint baseline (#11074) 2026-07-27 20:54:02 -07:00
cli-runtime-client-deferral-benchmark.mjs fix(quality): enforce performance-safe lint baseline (#11074) 2026-07-27 20:54:02 -07:00
cli-runtime-client-deferral-equivalence.mjs perf(cli): construct the runtime client only when a command needs it (#10919) 2026-07-27 17:16:01 -07:00
codemod-settings-search-keywords.mjs
codex-primary-home-tripwire.mjs feat(codex): real-home routing + self-contained multi-account homes (#9501) 2026-07-20 14:34:53 -07:00
codex-primary-home-tripwire.test.ts feat(codex): real-home routing + self-contained multi-account homes (#9501) 2026-07-20 14:34:53 -07:00
codex-validation-process-shutdown.mjs feat(codex): real-home routing + self-contained multi-account homes (#9501) 2026-07-20 14:34:53 -07:00
command-code-transcript-scan-benchmark.mjs perf(agent-status): scan Command Code transcripts backward from EOF (#10742) 2026-07-26 20:20:12 -07:00
compare-benchmark-artifacts.mjs Reduce git trace and branch compare polling churn (#6002) 2026-06-22 19:13:32 -07:00
computer-e2e-workflow.test.mjs fix(computer-use): make modifier clicks interruption-safe (#11451) 2026-07-29 18:29:10 -07:00
computer-use-modifier-safety.test.mjs fix(computer-use): make modifier clicks interruption-safe (#11451) 2026-07-29 18:29:10 -07:00
computer-use-skill-guidance.test.mjs fix(computer-use): make modifier clicks interruption-safe (#11451) 2026-07-29 18:29:10 -07:00
computer-use-smoke.mjs
computer-use-smoke.test.mjs
create-draft-release.mjs fix: bound release notes by published releases (#7311) 2026-07-03 20:53:16 -07:00
create-draft-release.test.mjs fix: bound release notes by published releases (#7311) 2026-07-03 20:53:16 -07:00
daemon-boot-smoke.mjs Fix native Windows PTY startup query handling (#9500) 2026-07-19 20:25:52 -07:00
dev-cli-terminal-wrapper.mjs Implement robust orchestration primitives and connected-server workers (#9925) 2026-07-27 12:31:37 -07:00
dev-cli-terminal-wrapper.test.mjs Implement robust orchestration primitives and connected-server workers (#9925) 2026-07-27 12:31:37 -07:00
dev-fresh-profile.sh
electron-builder-config.test.mjs feat(cli): add `orca account add` / `account list` for headless hosts (Claude + Codex) (#9177) 2026-07-30 12:50:07 -07:00
electron-builder-native-rebuild.cjs ci: parallelize PR checks and accelerate Vite builds (#10989) 2026-07-27 13:32:29 -07:00
electron-builder-native-rebuild.test.mjs ci: parallelize PR checks and accelerate Vite builds (#10989) 2026-07-27 13:32:29 -07:00
electron-vite-output-contract.test.ts fix(macos): explain the TCC prompts, and surface Full Disk Access only to users macOS is prompting (#9756) (#9910) 2026-07-28 15:34:52 -07:00
ensure-native-runtime.mjs fix(cli): avoid Windows PATH status timeout (#9483) 2026-07-19 21:59:22 -04:00
ensure-native-runtime.test.mjs fix(cli): avoid Windows PATH status timeout (#9483) 2026-07-19 21:59:22 -04:00
file-explorer-tree-projection-benchmark.mjs
generate-bundled-skill-guides.mjs feat(skills): land remaining hybrid stubs (#9846) 2026-07-22 11:43:01 -07:00
generate-bundled-skill-guides.test.mjs feat(skills): land remaining hybrid stubs (#9846) 2026-07-22 11:43:01 -07:00
generate-skill-bundle-manifest.mjs fix(skills): advance the release ledger at the cut so shipped revisions freeze (#10483) 2026-07-24 23:29:55 -07:00
generate-skill-bundle-manifest.test.mjs fix(skills): advance the release ledger at the cut so shipped revisions freeze (#10483) 2026-07-24 23:29:55 -07:00
generate-terminal-perf-html-report.mjs Terminal performance initiative: pipeline fixes + term-speed-2 revival + PTY flow control (integration branch) (#7214) 2026-07-10 17:27:47 -07:00
generate-terminal-perf-html-report.test.mjs Terminal performance initiative: pipeline fixes + term-speed-2 revival + PTY flow control (integration branch) (#7214) 2026-07-10 17:27:47 -07:00
generate-windows-blockmap.mjs fix(release): regenerate Windows blockmap via app-builder-lib JS (#10110) 2026-07-22 23:10:19 -07:00
git-binary-compatibility-workflow.test.mjs ci: parallelize PR checks and accelerate Vite builds (#10989) 2026-07-27 13:32:29 -07:00
git-diff-blob-concurrency-benchmark.mjs perf(git): read both diff blobs concurrently (#10781) 2026-07-26 20:31:52 -07:00
git-pull-request-diff-base.mjs chore(quality): ratchet Oxlint, React Doctor, and Zustand performance (#11034) 2026-07-27 18:58:36 -07:00
git-pull-request-diff-base.test.mjs chore(quality): ratchet Oxlint, React Doctor, and Zustand performance (#11034) 2026-07-27 18:58:36 -07:00
hibernation-output-epoch-leak-benchmark.mjs perf(renderer): drop per-tick matchMedia alloc + purge hibernation epoch map (#6696) 2026-06-28 21:16:02 -07:00
hydrate-worktree-lookup-benchmark.mjs perf(store): index worktrees and tabs once per hydration loop (#10891) 2026-07-27 17:09:31 -07:00
idle-cpu-synthetic-spinners.mjs
install-dev-cli.mjs chore(lint): adopt unicorn/prefer-import-meta-properties (error) (#6847) 2026-06-29 23:37:30 -07:00
install-electron-package-binary.mjs ci: parallelize PR checks and accelerate Vite builds (#10989) 2026-07-27 13:32:29 -07:00
install-electron-package-binary.test.mjs ci: parallelize PR checks and accelerate Vite builds (#10989) 2026-07-27 13:32:29 -07:00
latest-stable-release.mjs
latest-stable-release.test.mjs
lint-react-doctor-changed.mjs
linux-wayland-renderer-diagnostics.mjs fix(linux): disable GPU sandbox to stop terminal input freeze on Wayland (#5319) 2026-06-28 19:43:18 -07:00
linux-wayland-terminal-exercise.mjs fix(quality): enforce performance-safe lint baseline (#11074) 2026-07-27 20:54:02 -07:00
linux-wayland-validation-watchdog.mjs fix(linux): disable GPU sandbox to stop terminal input freeze on Wayland (#5319) 2026-06-28 19:43:18 -07:00
locale-cjk-latin-spaced-terms.mjs fix(i18n): correct Korean mistranslations and particle spacing (#5761) 2026-06-18 21:26:12 -07:00
locale-count-fragment-separator.test.mjs fix(i18n): restore count separators in terminal theme picker for CJK locales (#9935) 2026-07-24 00:26:39 -07:00
locale-cross-locale-key-overrides.mjs fix(i18n): restore count separators in terminal theme picker for CJK locales (#9935) 2026-07-24 00:26:39 -07:00
locale-ja-phrase-fixes.mjs Fix unnatural Japanese (ja) localization wording (#5589) 2026-06-17 15:14:35 -07:00
locale-ja-value-overrides.mjs Redesign mobile driver overlay layout and clarify action copy (#5647) 2026-06-17 19:21:42 -07:00
locale-key-override-merge.mjs fix(macos): explain the TCC prompts, and surface Full Disk Access only to users macOS is prompting (#9756) (#9910) 2026-07-28 15:34:52 -07:00
locale-key-overrides.mjs fix(i18n): correct Chinese MT errors and translate Settings panel strings (#5915) 2026-06-21 21:23:36 -07:00
locale-ko-key-overrides.json fix(macos): explain the TCC prompts, and surface Full Disk Access only to users macOS is prompting (#9756) (#9910) 2026-07-28 15:34:52 -07:00
locale-ko-key-overrides.mjs chore(lint): adopt unicorn/prefer-import-meta-properties (error) (#6847) 2026-06-29 23:37:30 -07:00
locale-ko-key-overrides.test.mjs fix(i18n): correct Korean mistranslations 2026-06-19 15:52:05 -07:00
locale-ko-phrase-fixes-round5.mjs
locale-ko-phrase-fixes.mjs
locale-ko-value-overrides.mjs Fix paste ownership, input bounds, and IPC validation 2026-06-19 17:14:55 -07:00
locale-macos-tcc-key-overrides.mjs fix(macos): explain the TCC prompts, and surface Full Disk Access only to users macOS is prompting (#9756) (#9910) 2026-07-28 15:34:52 -07:00
locale-phrase-fixes.mjs fix(i18n): correct Spanish "PR" mistranslated as "relaciones públicas" (#6749) 2026-06-29 11:56:26 -07:00
locale-prose-term-exemptions.mjs fix(macos): explain the TCC prompts, and surface Full Disk Access only to users macOS is prompting (#9756) (#9910) 2026-07-28 15:34:52 -07:00
locale-screen-cursor-exemptions.mjs Fix unnatural Japanese (ja) localization wording (#5589) 2026-06-17 15:14:35 -07:00
locale-search-keyword-overrides.mjs Fix unnatural Japanese (ja) localization wording (#5589) 2026-06-17 15:14:35 -07:00
locale-translation-policy-ko-round5.test.mjs fix(i18n): correct Korean mistranslations 2026-06-19 15:52:05 -07:00
locale-translation-policy.es-pr.test.mjs fix(i18n): correct Spanish "PR" mistranslated as "relaciones públicas" (#6749) 2026-06-29 11:56:26 -07:00
locale-translation-policy.es-round5.test.mjs
locale-translation-policy.ja-round5.test.mjs Fix unnatural Japanese (ja) localization wording (#5589) 2026-06-17 15:14:35 -07:00
locale-translation-policy.mjs fix(macos): explain the TCC prompts, and surface Full Disk Access only to users macOS is prompting (#9756) (#9910) 2026-07-28 15:34:52 -07:00
locale-translation-policy.test.mjs fix(i18n): correct Korean mistranslations 2026-06-19 15:52:05 -07:00
locale-translation-policy.zh-round5.test.mjs
locale-value-overrides.mjs Fix unnatural Japanese (ja) localization wording (#5589) 2026-06-17 15:14:35 -07:00
locale-zh-phrase-fixes-round5.mjs
locale-zh-value-overrides.mjs fix(i18n): correct zh translation of "Pin Tab" to 固定标签 (#9157) 2026-07-17 17:25:55 -07:00
localization-package-contract.test.mjs Decouple feature copy from locale parity (#8512) 2026-07-29 17:44:41 -07:00
localize-renderer-strings.mjs Upgrade to TypeScript 7 and Electron 43 (#8189) 2026-07-10 19:08:12 -07:00
mac-build-compatibility.cjs feat(updater): switch to validated local mac builds (#10889) 2026-07-27 16:36:39 -07:00
mac-build-compatibility.test.mjs feat(updater): switch to validated local mac builds (#10889) 2026-07-27 16:36:39 -07:00
macos-launch-diagnostics.sh
macos-tcc-prompt-localization.test.mjs fix(macos): explain the TCC prompts, and surface Full Disk Access only to users macOS is prompting (#9756) (#9910) 2026-07-28 15:34:52 -07:00
marine-creatures-parity.test.mjs
markdown-toc-parse-benchmark.mjs perf(editor): skip markdown TOC parse while the panel is closed (#6695) 2026-06-28 21:19:10 -07:00
mjpeg-frame-parser-alloc-benchmark.mjs perf(emulator): return MJPEG frames as views instead of per-frame copies (#6707) 2026-06-28 23:40:55 -07:00
mobile-agent-status-projection-benchmark.mjs perf(mobile-sync): memoize the agent-status projection per entry (#10787) 2026-07-26 20:31:55 -07:00
mobile-pairing-qrcode-import-plugin.test.mjs chore(quality): ratchet Oxlint, React Doctor, and Zustand performance (#11034) 2026-07-27 18:58:36 -07:00
node-old-space-limit.mjs build: publish linux arm64 release artifacts (#4755) 2026-06-22 01:07:16 -07:00
node-old-space-limit.test.mjs build: publish linux arm64 release artifacts (#4755) 2026-06-22 01:07:16 -07:00
node-pty-console-list-agent-patch.test.mjs fix(quality): enforce performance-safe lint baseline (#11074) 2026-07-27 20:54:02 -07:00
orca-cli-skill-guidance.test.mjs feat(skills): land remaining hybrid stubs (#9846) 2026-07-22 11:43:01 -07:00
orca-dev
orca-dev-bin.test.mjs Implement robust orchestration primitives and connected-server workers (#9925) 2026-07-27 12:31:37 -07:00
orca-dev.mjs Implement robust orchestration primitives and connected-server workers (#9925) 2026-07-27 12:31:37 -07:00
orca-linear-skill-guidance.test.mjs feat(skills): land remaining hybrid stubs (#9846) 2026-07-22 11:43:01 -07:00
orchestration-skill-guidance.test.mjs fix(orchestration): preserve active workers across updates (#11271) 2026-07-29 11:31:35 -07:00
oxlint-plugin-test-runner.mjs perf(lint): consolidate code-quality gates into Oxlint (#11117) 2026-07-28 00:21:13 -07:00
package-electron-runtime-contract.test.mjs ci: parallelize PR checks and accelerate Vite builds (#10989) 2026-07-27 13:32:29 -07:00
plain-node-entry-guard.test.ts ci: parallelize PR checks and accelerate Vite builds (#10989) 2026-07-27 13:32:29 -07:00
pr-e2e-gate-contract.test.mjs ci(pr): run E2E when a PR touches tests/e2e paths (advisory) (#11131) 2026-07-28 02:16:24 -07:00
pr-workflow-lint-parity.test.mjs fix(ci): mirror missing lint steps in PR workflow (#10601) (#10623) 2026-07-27 16:26:43 -07:00
pr-workflow-parallelism.test.mjs Fix Node 26 test gate and happy-dom storage (#11434) 2026-07-29 17:11:16 -07:00
project-renderer-web-client.mjs ci: parallelize PR checks and accelerate Vite builds (#10989) 2026-07-27 13:32:29 -07:00
project-renderer-web-client.test.mjs ci: parallelize PR checks and accelerate Vite builds (#10989) 2026-07-27 13:32:29 -07:00
pty-batch-flush-benchmark.mjs
publish-complete-draft-releases.mjs fix(quality): enforce performance-safe lint baseline (#11074) 2026-07-27 20:54:02 -07:00
publish-complete-draft-releases.test.mjs
quadratic-buffer-concat-plugin.test.mjs perf(lint): consolidate code-quality gates into Oxlint (#11117) 2026-07-28 00:21:13 -07:00
rebuild-native-deps.mjs fix(terminal): make remote workspace sleep converge (#9874) 2026-07-22 00:22:36 -07:00
rebuild-native-deps.test.mjs fix(terminal): make remote workspace sleep converge (#9874) 2026-07-22 00:22:36 -07:00
relay-replay-buffer-benchmark.mjs perf(relay): keep the PTY replay window as chunks, not a re-sliced string (#10900) 2026-07-27 16:40:59 -07:00
relay-watcher-fault-harness.mjs Fix ssh watcher isolation (#8463) 2026-07-12 21:34:59 -07:00
release-e2e-dispatch-contract.test.mjs ci(release): detach non-blocking E2E (#11031) 2026-07-27 18:40:22 -07:00
release-mac-build-workflow-dispatch.test.mjs ci: isolate Blacksmith mac release build (#6962) 2026-06-30 16:36:59 -07:00
release-rc-history.mjs fix(release-cut): gate an explicit RC against its own series (#10525) 2026-07-25 03:50:25 -07:00
release-rc-history.test.mjs fix(release-cut): gate an explicit RC against its own series (#10525) 2026-07-25 03:50:25 -07:00
remote-agent-session-authority-repro.mjs fix(remote): create paired agent sessions without host focus (#10193) 2026-07-23 20:20:00 -07:00
remote-agent-session-process-cleanup.mjs fix(remote): create paired agent sessions without host focus (#10193) 2026-07-23 20:20:00 -07:00
remote-agent-session-repro-client.mjs fix(remote): create paired agent sessions without host focus (#10193) 2026-07-23 20:20:00 -07:00
remote-agent-session-repro-fixture.mjs fix(remote): create paired agent sessions without host focus (#10193) 2026-07-23 20:20:00 -07:00
remote-agent-session-repro-writable-shell.mjs fix(remote): create paired agent sessions without host focus (#10193) 2026-07-23 20:20:00 -07:00
renderer-scrollbar-style-plugin.test.mjs perf(lint): consolidate code-quality gates into Oxlint (#11117) 2026-07-28 00:21:13 -07:00
repair-locale-catalog.mjs Revert "Decouple feature copy from translated locale catalogs (#8488)" (#8500) 2026-07-12 23:43:07 -07:00
repo-owner-settings-selector-benchmark.mjs perf(renderer): give owner-routed settings a stable identity (#10743) 2026-07-26 13:19:23 -07:00
repro-windows-apphang-terminal-activation.mjs Improve Windows terminal performance: retain WebGL contexts, warm first ConPTY (#7085) 2026-07-02 18:41:23 -04:00
resolve-7za-path.mjs fix(release): restore the Windows inner-binary signature gate (#6487) (#10719) 2026-07-27 15:48:39 -07:00
resolve-7za-path.test.mjs fix(release): restore the Windows inner-binary signature gate (#6487) (#10719) 2026-07-27 15:48:39 -07:00
rich-markdown-doc-link-scan-benchmark.mjs perf(editor): cut per-keystroke work on two rich-markdown paths (#10862) 2026-07-27 17:18:31 -07:00
run-codex-real-account-validation.mjs feat(codex): real-home routing + self-contained multi-account homes (#9501) 2026-07-20 14:34:53 -07:00
run-codex-real-account-validation.test.ts feat(codex): real-home routing + self-contained multi-account homes (#9501) 2026-07-20 14:34:53 -07:00
run-electron-vite-build.mjs build: publish linux arm64 release artifacts (#4755) 2026-06-22 01:07:16 -07:00
run-electron-vite-dev.mjs fix(macos): explain the TCC prompts, and surface Full Disk Access only to users macOS is prompting (#9756) (#9910) 2026-07-28 15:34:52 -07:00
run-electron-vite-targets-in-parallel.mjs ci: parallelize PR checks and accelerate Vite builds (#10989) 2026-07-27 13:32:29 -07:00
run-headless-linux-pairing-docker.mjs Update paired Orca servers from the active client (#9839) 2026-07-22 18:52:37 -07:00
run-idle-cpu-benchmark.mjs fix(quality): enforce performance-safe lint baseline (#11074) 2026-07-27 20:54:02 -07:00
run-internal-dev-setup.mjs chore(lint): adopt unicorn/prefer-import-meta-properties (error) (#6847) 2026-06-29 23:37:30 -07:00
run-internal-dev-setup.test.mjs
run-multi-client-navigation-e2e.mjs fix(runtime): isolate navigation across paired clients (#9664) 2026-07-20 21:36:15 -07:00
run-multi-workspace-typing-bench.mjs Terminal performance initiative: pipeline fixes + term-speed-2 revival + PTY flow control (integration branch) (#7214) 2026-07-10 17:27:47 -07:00
run-nested-runtime-ssh-e2e.mjs fix(runtime): route HUB-owned SSH worktrees through owning runtime (#9994) 2026-07-22 18:25:05 -07:00
run-release-mac-build-workflow.mjs ci: isolate Blacksmith mac release build (#6962) 2026-06-30 16:36:59 -07:00
run-ssh-codex-artifacts-repro-e2e.mjs Fix SSH terminal replay artifacts 2026-06-22 16:42:20 -07:00
run-ssh-docker-perf-e2e.mjs
run-ssh-docker-terminal-parking-e2e.mjs fix(terminal): bound SSH & remote hidden-worktree terminal retention (C1) (#10625) 2026-07-29 00:47:18 -07:00
run-ssh-docker-watcher-isolation-e2e.mjs Ssh watcher isolation e2e (#8494) 2026-07-12 23:50:00 -07:00
run-terminal-ibus-hangul-e2e.mjs fix(terminal): reconcile cross-platform IME composition lifecycle (#11293) 2026-07-29 16:12:20 -07:00
run-terminal-scale-perf-e2e.mjs
run-terminal-scale-perf-report-gate.mjs Terminal performance initiative: pipeline fixes + term-speed-2 revival + PTY flow control (integration branch) (#7214) 2026-07-10 17:27:47 -07:00
run-terminal-scale-perf-report-gate.test.mjs Terminal performance initiative: pipeline fixes + term-speed-2 revival + PTY flow control (integration branch) (#7214) 2026-07-10 17:27:47 -07:00
run-vite-web-build.mjs build: publish linux arm64 release artifacts (#4755) 2026-06-22 01:07:16 -07:00
runtime-file-watcher-fault-harness.mjs fix(runtime): prevent file watcher SIGSEGV from crashing orca serve (#8370) 2026-07-12 18:15:15 -07:00
runtime-file-watcher-resource-probe.mjs fix(runtime): harden watcher and PTY teardown ownership (#8661) 2026-07-15 15:23:35 -07:00
serve-headless-fresh-profile-pairing.mjs Fix headless Linux serve pairing readiness (#9785) 2026-07-21 18:23:20 -07:00
smoke-packaged-cli.mjs fix(cli): preserve multiline arguments on Windows (#8374) 2026-07-12 02:13:41 -07:00
source-control-path-sort-benchmark.mjs perf(source-control): share one path collator across the projection (#10850) 2026-07-26 22:26:49 -07:00
ssh-watch-fanout-benchmark.mjs perf(ssh): normalize watch event paths once per fs.changed batch (#10881) 2026-07-27 01:02:48 -07:00
summarize-terminal-perf-report.mjs Terminal performance initiative: pipeline fixes + term-speed-2 revival + PTY flow control (integration branch) (#7214) 2026-07-10 17:27:47 -07:00
summarize-terminal-perf-report.test.mjs Reduce git trace and branch compare polling churn (#6002) 2026-06-22 19:13:32 -07:00
telemetry-bundle-constant-patterns.mjs fix(release): accept lowered telemetry declarations (#11019) 2026-07-27 17:38:54 -07:00
telemetry-bundle-constant-patterns.test.mjs fix(release): accept lowered telemetry declarations (#11019) 2026-07-27 17:38:54 -07:00
terminal-control-strip-benchmark.mjs perf(terminal): eliminate adverse control and frame-gate cases (#11045) 2026-07-27 23:28:05 -07:00
terminal-e2e-helpers.mjs chore(lint): upgrade oxlint to 1.71 + enable 7 new rules (autofixed backlog) (#6841) 2026-06-29 22:38:29 -07:00
terminal-ime-e2e-workflow.test.mjs fix(terminal): reconcile cross-platform IME composition lifecycle (#11293) 2026-07-29 16:12:20 -07:00
terminal-output-frame-chunk-benchmark.mjs perf(terminal): eliminate adverse control and frame-gate cases (#11045) 2026-07-27 23:28:05 -07:00
terminal-perf-report-annotations.mjs Reduce git trace and branch compare polling churn (#6002) 2026-06-22 19:13:32 -07:00
terminal-perf-report-annotations.test.mjs Reduce git trace and branch compare polling churn (#6002) 2026-06-22 19:13:32 -07:00
terminal-perf-report-rows.mjs Terminal performance initiative: pipeline fixes + term-speed-2 revival + PTY flow control (integration branch) (#7214) 2026-07-10 17:27:47 -07:00
terminal-pr-link-carry-benchmark.mjs perf(terminal): bound the PR-link carry scan to the trailing window (#10741) 2026-07-26 15:32:33 -07:00
terminal-stream-byte-length-benchmark.mjs perf(terminal): measure stream byte length natively above a code-unit floor (#10916) 2026-07-27 17:15:54 -07:00
trim-windows-icon-source.mjs chore(lint): adopt unicorn/prefer-import-meta-properties (error) (#6847) 2026-06-29 23:37:30 -07:00
trim-windows-icon-source.test.mjs chore(lint): adopt unicorn/prefer-import-meta-properties (error) (#6847) 2026-06-29 23:37:30 -07:00
vendor-feature-wall-assets.mjs chore(lint): adopt unicorn/prefer-import-meta-properties (error) (#6847) 2026-06-29 23:37:30 -07:00
verify-agent-hook-stdin-lifecycle.mjs fix(agent-hooks): drain stdin before hook script early exits so agents never hit EPIPE (#8430) 2026-07-13 00:26:22 -07:00
verify-cli-bin.mjs fix: pin CLI build output to CommonJS (#6656) 2026-06-28 22:58:27 -07:00
verify-cli-bin.test.mjs Revert "fix(memory): bound OOM-prone accumulators (#10179)" (#10255) 2026-07-23 18:35:31 -07:00
verify-computer-native.mjs revert: restore pre-worker process boundaries (#11481) 2026-07-29 20:01:31 -07:00
verify-linux-glibc-floor.cjs fix(linux): restore Ubuntu 20.04 launch — pin node-pty glibc symbols + add glibc/libstdc++ packaging gate (#9902) (#10019) 2026-07-22 19:11:44 -07:00
verify-linux-glibc-floor.test.mjs fix(linux): restore Ubuntu 20.04 launch — pin node-pty glibc symbols + add glibc/libstdc++ packaging gate (#9902) (#10019) 2026-07-22 19:11:44 -07:00
verify-linux-wayland-gpu-sandbox.mjs feat(codex): real-home routing + self-contained multi-account homes (#9501) 2026-07-20 14:34:53 -07:00
verify-localization-catalog.mjs Decouple feature copy from locale parity (#8512) 2026-07-29 17:44:41 -07:00
verify-localization-catalog.test.mjs Decouple feature copy from locale parity (#8512) 2026-07-29 17:44:41 -07:00
verify-localization-extraction.mjs Decouple feature copy from locale parity (#8512) 2026-07-29 17:44:41 -07:00
verify-localization-extraction.test.mjs Decouple feature copy from locale parity (#8512) 2026-07-29 17:44:41 -07:00
verify-macos-entitlements.mjs chore(lint): adopt unicorn/prefer-import-meta-properties (error) (#6847) 2026-06-29 23:37:30 -07:00
verify-macos-release-env.mjs
verify-packaged-daemon-entry.cjs Harden layout validation, watcher lifecycle, and connection robustness (#7924) 2026-07-09 16:09:09 -07:00
verify-packaged-daemon-entry.test.mjs Harden layout validation, watcher lifecycle, and connection robustness (#7924) 2026-07-09 16:09:09 -07:00
verify-packaged-plugin-resources.cjs feat(plugins): Orca plugin system — kernel, content packs, panels, workers, marketplace v0 (experimental) (#8549) 2026-07-27 01:14:33 -07:00
verify-packaged-plugin-resources.test.mjs feat(plugins): Orca plugin system — kernel, content packs, panels, workers, marketplace v0 (experimental) (#8549) 2026-07-27 01:14:33 -07:00
verify-release-required-assets.mjs lint(unicorn): enable prefer-number-properties, prefer-array-find, prefer-array-index-of (#7516) 2026-07-05 23:56:37 -07:00
verify-release-required-assets.test.mjs build: publish linux arm64 release artifacts (#4755) 2026-06-22 01:07:16 -07:00
verify-skill-update-roundtrip.mjs Add safe skill freshness detection and update rail (#8637) 2026-07-16 14:47:28 -07:00
verify-telemetry-constants.mjs fix(release): accept lowered telemetry declarations (#11019) 2026-07-27 17:38:54 -07:00
verify-web-build.mjs chore(lint): upgrade oxlint to 1.71 + enable 7 new rules (autofixed backlog) (#6841) 2026-06-29 22:38:29 -07:00
verify-windows-inner-signature.mjs Fix Windows inner signature PowerShell path (#7136) 2026-07-02 12:11:58 -07:00
verify-windows-inner-signature.test.mjs Fix Windows inner signature PowerShell path (#7136) 2026-07-02 12:11:58 -07:00
win-crash-survival-e2e.test.mjs test(e2e): prove the terminal daemon survives a main-process crash on Windows (#7742) (#9311) 2026-07-19 11:27:29 -07:00
windows-daemon-workspace-close-repro.mjs Fix native Windows PTY startup query handling (#9500) 2026-07-19 20:25:52 -07:00
windows-signing-gate-toolset.test.mjs fix(release): restore the Windows inner-binary signature gate (#6487) (#10719) 2026-07-27 15:48:39 -07:00
windows-ssh-attach-console-repro.mjs fix(ssh): patch node-pty helper in Windows relay (#9638) 2026-07-20 19:09:18 -07:00
wrap-localized-search-exports.mjs
zustand-selector-fanout-benchmark.mjs chore(quality): ratchet Oxlint, React Doctor, and Zustand performance (#11034) 2026-07-27 18:58:36 -07:00