orca/config/scripts
Jinjing 433df4be3c
fix(runtime): prevent file watcher SIGSEGV from crashing orca serve (#8370)
* Fix crash-isolated file watcher process pool for orca-serve SIGSEGV afte

Replace the worker-thread runtime file watcher with a forked, crash-isolated
@parcel/watcher child process pool so a native FSEvents fault can no longer
take down the main/serve process, and add bounded event batching, delivery
backpressure, and quarantine-based recovery for faulty watch roots.

* Fix crash-isolated file watcher teardown and shutdown leaks

- Fault harness could throw before mkdtemp/realpath completed, skipping
  cleanup; now tracks each temp path independently and races an async
  watcher-callback error so it can't escape the try/finally unhandled.
- In-process fallback swallowed unsubscribe failures via a bare rejection
  handler that could still throw; use .catch() instead.
- Watcher process entry's cancel-subscribe handler now reuses the async
  unsubscribe path when a crawl already finished, releasing the native
  handle instead of leaking it (blocks worktree unlock on Windows).
- Runtime watcher process pool exposed no real dispose(); shutdown now
  kills pooled children so they don't outlive the main process.

* Fix disposeSlot double-iteration bug in file watcher pool teardown

Remove the unnecessary array snapshot in dispose(): disposeSlot mutates
allSlots by deleting the slot being visited, and deleting the
in-progress element during Set iteration is well-defined, so the spread
copy was dead weight left over from prior debugging.

* Fix pending file watcher installs not aborting on unsubscribe

- Local/WSL watcher installs and SSH fs.watch setup now honor the
  in-flight AbortSignal, so the last unwatch cancels a slow native
  subscribe or remote setup instead of waiting for it to finish.
- Thread signal through IFilesystemProvider.watch and SSH-backed
  file explorer watches for the same early-cancel behavior.

* Fix crash-resubscribe hangs and SSH watch teardown races in file watcher

- Add a bounded deadline for post-crash resubscription crawls so one
  stuck root quarantines instead of pinning its whole shard forever.
- Report FSEvents overflow as recoverable so delivery continues after
  a dropped-events error instead of surfacing as terminal.
- Make WSL watcher abort errors real DOMException instances so
  AbortSignal-based cancellation checks recognize them.
- Rework SSH watch registration so ownership of the shared setup
  request (not just the first caller) decides teardown, preventing
  one caller's abort from cancelling another's shared watch and
  guaranteeing exactly one fs.unwatch per registration.
- Reformat reliability-gates.jsonc arrays and refresh WSL/SSH coverage
  entries and evidence runs to match the above.

* Add CI gate to run the file-watcher SIGSEGV fault harness under Electron

- The reliability gate and release workflows (mac, Linux) previously only
  exercised the crash-isolation harness under vanilla Node, which doesn't
  catch runtime differences in the actual Electron binary that ships to
  users.
- Adds an `ELECTRON_RUN_AS_NODE=1 pnpm exec electron ...` run of the same
  harness alongside the existing Node run, so #8212's SIGSEGV-survival
  contract is proven against both runtimes before packaging.

* Add CI gate blocking Linux/macOS release packaging on watcher fault reco

Adds a contract test asserting release-cut.yml and release-mac-build.yml
run the runtime-file-watcher-fault-harness after building and before
publishing artifacts, so a regression in watcher process fault recovery
fails release packaging instead of shipping silently.

* Fix use-after-clear crash in failAllWatcherSubscriptions

Snapshot the records map before iterating, since onTerminalError
hooks can dispose the supervisor and clear `records` mid-loop,
causing a crash. Also update the matching test to assert against
the shared buildParcelWatcherIgnoreOptions helper instead of a
loose arrayContaining match.

* Fix use-after-clear crash in failAllWatcherSubscriptions

Snapshot watcher records with Array.from instead of spread, since
spread syntax over an iterator that's mutated mid-loop by
onTerminalError hooks can produce inconsistent results.
2026-07-12 18:15:15 -07:00
..
styled-scrollbars Upgrade to TypeScript 7 and Electron 43 (#8189) 2026-07-10 19:08:12 -07:00
windows-apphang-repro Improve Windows terminal performance: retain WebGL contexts, warm first ConPTY (#7085) 2026-07-02 18:41:23 -04:00
audit-localization-coverage.mjs Upgrade to TypeScript 7 and Electron 43 (#8189) 2026-07-10 19:08:12 -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
bootstrap-zh-catalog.mjs
build-computer-macos.mjs chore(lint): adopt unicorn/prefer-import-meta-properties (error) (#6847) 2026-06-29 23:37:30 -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 Agent status over WSL: guest-resident hook relay + WSL-side hook installers (STA-1515) (#7903) 2026-07-10 00:19:45 -07:00
build-windows-cli-launcher.mjs fix(cli): preserve multiline arguments on Windows (#8374) 2026-07-12 02:13:41 -07:00
build-windows-cli-launcher.test.mjs fix(cli): preserve multiline arguments on Windows (#8374) 2026-07-12 02:13:41 -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-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-styled-scrollbars.mjs
check-styled-scrollbars.test.mjs
check-terminal-perf-report-budgets.mjs Terminal performance initiative: pipeline fixes + term-speed-2 revival + PTY flow control (integration branch) (#7214) 2026-07-10 17:27:47 -07:00
check-terminal-perf-report-budgets.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
codemod-settings-search-keywords.mjs
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 Windows terminal daemon death after workspace close (#8140) 2026-07-10 13:50:38 -07:00
computer-use-skill-guidance.test.mjs docs(computer-use): clarify get-app-state JSON tree field (#7788) 2026-07-11 22:50:30 -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 ci(daemon): fail builds, packaging, and CI when the terminal daemon cannot start — and stop failing silently (#7849) 2026-07-08 19:46:14 -04:00
dev-fresh-profile.sh
electron-builder-config.test.mjs fix(cli): preserve multiline arguments on Windows (#8374) 2026-07-12 02:13:41 -07:00
electron-builder-native-rebuild.cjs fix(cli): preserve multiline arguments on Windows (#8374) 2026-07-12 02:13:41 -07:00
electron-builder-native-rebuild.test.mjs fix(cli): preserve multiline arguments on Windows (#8374) 2026-07-12 02:13:41 -07:00
ensure-native-runtime.mjs fix(build): skip spawn-helper check on Linux to avoid spurious node-pty rebuilds (#7762) 2026-07-10 01:17:55 -07:00
ensure-native-runtime.test.mjs fix(build): skip spawn-helper check on Linux to avoid spurious node-pty rebuilds (#7762) 2026-07-10 01:17:55 -07:00
file-explorer-tree-projection-benchmark.mjs
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
git-binary-compatibility-workflow.test.mjs fix(git): cache unsupported capabilities per host (#8109) 2026-07-10 18:19: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
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 chore(lint): adopt unicorn/prefer-import-meta-properties (error) (#6847) 2026-06-29 23:37:30 -07:00
install-electron-package-binary.test.mjs
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(linux): disable GPU sandbox to stop terminal input freeze on Wayland (#5319) 2026-06-28 19:43:18 -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-cross-locale-key-overrides.mjs fix(i18n): correct Korean mistranslations 2026-06-19 15:52:05 -07:00
locale-ja-phrase-fixes.mjs
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(i18n): correct Korean mistranslations 2026-06-19 15:52:05 -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(pet): stop i18n from corrupting CSS keyframes 2026-07-04 14:43:57 -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-phrase-fixes.mjs fix(i18n): correct Spanish "PR" mistranslated as "relaciones públicas" (#6749) 2026-06-29 11:56:26 -07:00
locale-screen-cursor-exemptions.mjs
locale-search-keyword-overrides.mjs
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
locale-translation-policy.mjs fix(i18n): correct Spanish "PR" mistranslated as "relaciones públicas" (#6749) 2026-06-29 11:56:26 -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
locale-zh-phrase-fixes-round5.mjs
locale-zh-value-overrides.mjs
localize-renderer-strings.mjs Upgrade to TypeScript 7 and Electron 43 (#8189) 2026-07-10 19:08:12 -07:00
macos-launch-diagnostics.sh
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
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
orca-cli-skill-guidance.test.mjs fix(runtime): explain full worktree id selectors (#7432) (#7892) 2026-07-11 22:40:44 -07:00
orca-dev
orca-dev-bin.test.mjs Add project Windows runtime selection (#5519) 2026-06-17 16:08:14 -07:00
orca-dev.mjs chore(lint): adopt unicorn/prefer-import-meta-properties (error) (#6847) 2026-06-29 23:37:30 -07:00
orca-linear-skill-guidance.test.mjs chore(lint): adopt unicorn/prefer-import-meta-properties (error) (#6847) 2026-06-29 23:37:30 -07:00
orchestration-skill-guidance.test.mjs Add Cursor orchestration group routing (#8436) 2026-07-12 17:39:18 -07:00
package-electron-runtime-contract.test.mjs fix(runtime): prevent file watcher SIGSEGV from crashing orca serve (#8370) 2026-07-12 18:15:15 -07:00
pty-batch-flush-benchmark.mjs
publish-complete-draft-releases.mjs
publish-complete-draft-releases.test.mjs
rebuild-native-deps.mjs fix(build): skip spawn-helper check on Linux to avoid spurious node-pty rebuilds (#7762) 2026-07-10 01:17:55 -07:00
rebuild-native-deps.test.mjs fix(build): skip spawn-helper check on Linux to avoid spurious node-pty rebuilds (#7762) 2026-07-10 01:17:55 -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 Terminal performance initiative: pipeline fixes + term-speed-2 revival + PTY flow control (integration branch) (#7214) 2026-07-10 17:27:47 -07:00
release-rc-history.test.mjs
repair-locale-catalog.mjs
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
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 onboarding: seamless macOS notification permission step with live state detection (#7684) 2026-07-08 22:21:40 -07:00
run-idle-cpu-benchmark.mjs chore(lint): adopt unicorn/prefer-import-meta-properties (error) (#6847) 2026-06-29 23:37:30 -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-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-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-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
serve-headless-fresh-profile-pairing.mjs Fix OMP worktree title identity flicker 2026-07-07 13:51:25 -07:00
serve-sim-seen-keys-leak-benchmark.mjs perf(emulator): prune serve-sim dedupe keys on worktree forget (#6708) 2026-06-28 23:41:14 -07:00
smoke-packaged-cli.mjs fix(cli): preserve multiline arguments on Windows (#8374) 2026-07-12 02:13:41 -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
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-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
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-cli-bin.mjs fix: pin CLI build output to CommonJS (#6656) 2026-06-28 22:58:27 -07:00
verify-cli-bin.test.mjs fix: pin CLI build output to CommonJS (#6656) 2026-06-28 22:58:27 -07:00
verify-computer-native.mjs
verify-linux-wayland-gpu-sandbox.mjs fix(linux): disable GPU sandbox to stop terminal input freeze on Wayland (#5319) 2026-06-28 19:43:18 -07:00
verify-localization-catalog.mjs Upgrade to TypeScript 7 and Electron 43 (#8189) 2026-07-10 19:08:12 -07:00
verify-localization-catalog.test.mjs
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-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-telemetry-constants.mjs chore(lint): adopt unicorn/prefer-import-meta-properties (error) (#6847) 2026-06-29 23:37:30 -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
windows-daemon-workspace-close-repro.mjs Fix Windows terminal daemon death after workspace close (#8140) 2026-07-10 13:50:38 -07:00
wrap-localized-search-exports.mjs