mirror of
https://github.com/stablyai/orca.git
synced 2026-10-30 16:47:34 +00:00
refactor: group Parcel watcher process ownership (#33401)
This commit is contained in:
@@ -45,7 +45,9 @@ export const MAIN_BUILD_ENTRY_POINTS: Record<string, string> = {
|
||||
),
|
||||
// Why: forked with ELECTRON_RUN_AS_NODE so @parcel/watcher faults
|
||||
// can't take down the main process (issue #7547).
|
||||
'parcel-watcher-process-entry': resolve('src/main/ipc/parcel-watcher-process-entry.ts'),
|
||||
'parcel-watcher-process-entry': resolve(
|
||||
'src/main/ipc/filesystem/watcher-process/parcel-watcher-process-entry.ts'
|
||||
),
|
||||
// Why: `orca serve` runs it under ELECTRON_RUN_AS_NODE so the CLI never bundles orcad prep.
|
||||
[ORCAD_LOCAL_SERVE_SELECTION_ENTRY]: resolve(
|
||||
'src/main/orcad/orcad-local-serve-selection-entry.ts'
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@
|
||||
"src/main/foreign-sqlite-readers/foreign-sqlite-reader-entry.ts",
|
||||
"src/main/ports/port-scan-command-worker-entry.ts",
|
||||
"src/main/worker-thread-child-process/worker-thread-child-process-entry.ts",
|
||||
"src/main/ipc/parcel-watcher-process-entry.ts",
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-process-entry.ts",
|
||||
"src/main/hang-watchdog/main-thread-hang-watchdog-entry.ts",
|
||||
"src/main/agent-hooks/managed-agent-hook-controls.ts",
|
||||
"src/main/claude-accounts/keychain.ts",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
# Existing production source files importing child_process outside @orca/process-host.
|
||||
# Migration debt: this list may only shrink; new callers use the package public API.
|
||||
|
||||
src/cli/handlers/account.ts
|
||||
src/cli/handlers/core.ts
|
||||
src/cli/handlers/interactive-login-interruption.ts
|
||||
@@ -63,16 +63,16 @@ src/main/ipc/filesystem/watcher-process/parcel-watcher-child-launch.ts
|
||||
src/main/ipc/filesystem/watcher-process/parcel-watcher-child-messaging.ts
|
||||
src/main/ipc/filesystem/watcher-process/parcel-watcher-child-recovery.ts
|
||||
src/main/ipc/filesystem/watcher-process/parcel-watcher-child-termination.ts
|
||||
src/main/ipc/filesystem/watcher-process/parcel-watcher-host-subscriptions.ts
|
||||
src/main/ipc/filesystem/watcher-process/parcel-watcher-pending-cancellation.ts
|
||||
src/main/ipc/filesystem/watcher-process/parcel-watcher-process-supervisor.ts
|
||||
src/main/ipc/filesystem/watcher-process/parcel-watcher-supervisor-disposal.ts
|
||||
src/main/ipc/filesystem/watcher-process/parcel-watcher-supervisor-message.ts
|
||||
src/main/ipc/filesystem/watcher-process/parcel-watcher-supervisor-subscribe.ts
|
||||
src/main/ipc/local-network-connection-test.ts
|
||||
src/main/ipc/macos-keyboard-input-source.ts
|
||||
src/main/ipc/macos-keyboard-layout-snapshot.ts
|
||||
src/main/ipc/notification-authorization-status.ts
|
||||
src/main/ipc/parcel-watcher-host-subscriptions.ts
|
||||
src/main/ipc/parcel-watcher-process-supervisor.ts
|
||||
src/main/ipc/parcel-watcher-supervisor-disposal.ts
|
||||
src/main/ipc/parcel-watcher-supervisor-message.ts
|
||||
src/main/ipc/parcel-watcher-supervisor-subscribe.ts
|
||||
src/main/ipc/preflight-command-exec.ts
|
||||
src/main/ipc/repos/repo-clone-lifecycle.ts
|
||||
src/main/ipc/worktree-apfs-clone.ts
|
||||
|
||||
@@ -18520,14 +18520,14 @@
|
||||
"oracle": "Fill the global watcher-child reservation, require native desktop, paired-runtime, and WSL setup to retain typed transient capacity and retry after one serialized release, then cancel pending desktop and paired-client watches and require no retry. Hold one live anchor while aborting 10,000 callers at the capacity, quarantine-assignment, runtime-root, relay-setup, and SSH-registration layers; require exactly one explicit waiter and one base-promise reaction to remain, then zero after settlement. Hold an old relay unsubscribe, queue one same-root setup leader and one anchor, then abort 10,000 joiners; require every cancellation to settle before teardown releases, exactly one anchor waiter, and only one later physical install. Advance the former paired-web callback deadline while capacity remains full, require cancellation ownership to stay live, publish the server token before ready, and require files.unwatch to abort setup before a later slot release can install a native root. Reject the first ready-watch unwatch with a physical-exit promise, resolve that exit later, and require a fresh physical unwatch attempt, registry release, and exactly one stream end. Fill one healthy shared child with multiple roots, map a standard SSH repository's base, Git common directory, and worktree roots to one relay supervisor, then inject IPC disconnect-before-exit, queued and active cancellation, operations during termination, kill-without-exit, repeated unkillable generations, initial and recovery timeouts, and shard failure. During local and SSH deletion, attempt a late terminal spawn whose worktree identity and cwd name different roots, enumerate a non-prefix remote PTY by authoritative worktree ownership, withhold daemon/relay exit callbacks, make attach positively prove a concurrent-shutdown PID dead, and make the provider unavailable; require every acquired admission to roll back on rejection, dead-PID proof to settle physical exit before reaping, timeout to retain ownership, and Git/filesystem deletion never to start. Require bounded watcher process count, physical-exit settlement, healthy-root recovery, stale-generation rejection, overflow plus later events, and fail-closed destructive cleanup. Verify relay build hashes and remote install probes require both relay.js and relay-watcher.js. Launch the built relay with a real PTY and Parcel watch, kill only the watcher child, and require the same relay PID and PTY to answer before a replacement child delivers overflow and a post-crash event.",
|
||||
"commands": [
|
||||
"pnpm exec vitest run --config config/vitest.config.ts src/main/runtime/rpc/methods/files-watch-cleanup.test.ts --reporter=dot",
|
||||
"pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/parcel-watcher-unsubscribe-timeout.test.ts --reporter=dot",
|
||||
"pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/filesystem-watcher.test.ts src/main/ipc/filesystem-watcher-native-capacity.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-child-registry.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-child-launch.test.ts src/main/ipc/parcel-watcher-process.test.ts src/main/ipc/parcel-watcher-supervisor-capacity-wait.test.ts src/main/ipc/parcel-watcher-supervisor-capacity.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-pending-assignment.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/parcel-watcher-process-entry.test.ts src/main/ipc/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/main/runtime/rpc/methods/files-watch-cancellation.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts src/shared/physical-exit-tracker.test.ts src/shared/promise-settlement-waiters.test.ts src/main/ipc/pty-spawn-cwd-fallback.test.ts src/main/ipc/pty-listener-teardown-and-orphans.test.ts src/main/providers/local-pty-provider-shutdown.test.ts src/main/providers/local-pty-provider-session-inventory.test.ts src/main/daemon/daemon-pty-adapter.test.ts src/main/daemon/pty-subprocess.test.ts src/main/daemon/session.test.ts src/main/daemon/terminal-host.test.ts src/main/daemon/terminal-host-session-reaping-leak.test.ts --reporter=dot",
|
||||
"pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/filesystem-watcher.test.ts src/main/ipc/filesystem-watcher-native-capacity.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-child-registry.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-child-launch.test.ts src/main/ipc/parcel-watcher-process.test.ts src/main/ipc/parcel-watcher-supervisor-capacity.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/parcel-watcher-process-entry.test.ts src/main/ipc/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/main/runtime/rpc/methods/files-watch-cancellation.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts src/shared/physical-exit-tracker.test.ts src/main/ipc/pty-spawn-cwd-fallback.test.ts src/main/ipc/pty-listener-teardown-and-orphans.test.ts src/main/providers/local-pty-provider-shutdown.test.ts src/main/providers/local-pty-provider-session-inventory.test.ts src/main/daemon/daemon-pty-adapter.test.ts src/main/daemon/pty-subprocess.test.ts src/main/daemon/session.test.ts src/main/daemon/terminal-host.test.ts src/main/daemon/terminal-host-session-reaping-leak.test.ts --reporter=dot",
|
||||
"pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/filesystem-watcher.test.ts src/main/ipc/parcel-watcher-process.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/parcel-watcher-process-entry.test.ts src/main/ipc/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts src/main/ipc/pty-spawn-cwd-fallback.test.ts src/main/ipc/pty-listener-teardown-and-orphans.test.ts src/main/providers/local-pty-provider-shutdown.test.ts src/main/providers/local-pty-provider-session-inventory.test.ts src/main/daemon/pty-subprocess.test.ts src/main/daemon/session.test.ts src/main/daemon/terminal-host.test.ts src/main/daemon/terminal-host-session-reaping-leak.test.ts --reporter=dot",
|
||||
"pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/parcel-watcher-process.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/parcel-watcher-process-entry.test.ts src/main/ipc/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts src/main/ipc/pty-spawn-cwd-fallback.test.ts src/main/ipc/pty-listener-teardown-and-orphans.test.ts src/main/providers/local-pty-provider-shutdown.test.ts src/main/providers/local-pty-provider-session-inventory.test.ts src/main/daemon/pty-subprocess.test.ts src/main/daemon/session.test.ts src/main/daemon/terminal-host.test.ts src/main/daemon/terminal-host-session-reaping-leak.test.ts",
|
||||
"pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/parcel-watcher-process.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/parcel-watcher-process-entry.test.ts src/main/ipc/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts src/main/ipc/pty-spawn-cwd-fallback.test.ts src/main/ipc/pty-listener-teardown-and-orphans.test.ts src/main/providers/local-pty-provider-shutdown.test.ts src/main/providers/local-pty-provider-session-inventory.test.ts src/main/daemon/session.test.ts src/main/daemon/terminal-host.test.ts src/main/daemon/terminal-host-session-reaping-leak.test.ts",
|
||||
"pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/parcel-watcher-process.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/parcel-watcher-process-entry.test.ts src/main/ipc/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts src/main/ipc/pty-spawn-cwd-fallback.test.ts src/main/ipc/pty-listener-teardown-and-orphans.test.ts src/main/daemon/terminal-host.test.ts src/main/daemon/terminal-host-session-reaping-leak.test.ts",
|
||||
"pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/parcel-watcher-process.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/parcel-watcher-process-entry.test.ts src/main/ipc/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts",
|
||||
"pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-unsubscribe-timeout.test.ts --reporter=dot",
|
||||
"pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/filesystem-watcher.test.ts src/main/ipc/filesystem-watcher-native-capacity.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-child-registry.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-child-launch.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-process.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-supervisor-capacity-wait.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-supervisor-capacity.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-pending-assignment.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-process-entry.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/main/runtime/rpc/methods/files-watch-cancellation.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts src/shared/physical-exit-tracker.test.ts src/shared/promise-settlement-waiters.test.ts src/main/ipc/pty-spawn-cwd-fallback.test.ts src/main/ipc/pty-listener-teardown-and-orphans.test.ts src/main/providers/local-pty-provider-shutdown.test.ts src/main/providers/local-pty-provider-session-inventory.test.ts src/main/daemon/daemon-pty-adapter.test.ts src/main/daemon/pty-subprocess.test.ts src/main/daemon/session.test.ts src/main/daemon/terminal-host.test.ts src/main/daemon/terminal-host-session-reaping-leak.test.ts --reporter=dot",
|
||||
"pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/filesystem-watcher.test.ts src/main/ipc/filesystem-watcher-native-capacity.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-child-registry.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-child-launch.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-process.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-supervisor-capacity.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-process-entry.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/main/runtime/rpc/methods/files-watch-cancellation.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts src/shared/physical-exit-tracker.test.ts src/main/ipc/pty-spawn-cwd-fallback.test.ts src/main/ipc/pty-listener-teardown-and-orphans.test.ts src/main/providers/local-pty-provider-shutdown.test.ts src/main/providers/local-pty-provider-session-inventory.test.ts src/main/daemon/daemon-pty-adapter.test.ts src/main/daemon/pty-subprocess.test.ts src/main/daemon/session.test.ts src/main/daemon/terminal-host.test.ts src/main/daemon/terminal-host-session-reaping-leak.test.ts --reporter=dot",
|
||||
"pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/filesystem-watcher.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-process.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-process-entry.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts src/main/ipc/pty-spawn-cwd-fallback.test.ts src/main/ipc/pty-listener-teardown-and-orphans.test.ts src/main/providers/local-pty-provider-shutdown.test.ts src/main/providers/local-pty-provider-session-inventory.test.ts src/main/daemon/pty-subprocess.test.ts src/main/daemon/session.test.ts src/main/daemon/terminal-host.test.ts src/main/daemon/terminal-host-session-reaping-leak.test.ts --reporter=dot",
|
||||
"pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-process.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-process-entry.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts src/main/ipc/pty-spawn-cwd-fallback.test.ts src/main/ipc/pty-listener-teardown-and-orphans.test.ts src/main/providers/local-pty-provider-shutdown.test.ts src/main/providers/local-pty-provider-session-inventory.test.ts src/main/daemon/pty-subprocess.test.ts src/main/daemon/session.test.ts src/main/daemon/terminal-host.test.ts src/main/daemon/terminal-host-session-reaping-leak.test.ts",
|
||||
"pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-process.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-process-entry.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts src/main/ipc/pty-spawn-cwd-fallback.test.ts src/main/ipc/pty-listener-teardown-and-orphans.test.ts src/main/providers/local-pty-provider-shutdown.test.ts src/main/providers/local-pty-provider-session-inventory.test.ts src/main/daemon/session.test.ts src/main/daemon/terminal-host.test.ts src/main/daemon/terminal-host-session-reaping-leak.test.ts",
|
||||
"pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-process.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-process-entry.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts src/main/ipc/pty-spawn-cwd-fallback.test.ts src/main/ipc/pty-listener-teardown-and-orphans.test.ts src/main/daemon/terminal-host.test.ts src/main/daemon/terminal-host-session-reaping-leak.test.ts",
|
||||
"pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-process.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-process-entry.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts",
|
||||
"pnpm run build:electron-vite",
|
||||
"node config/scripts/runtime-file-watcher-resource-probe.mjs",
|
||||
"node config/scripts/runtime-file-watcher-fault-harness.mjs",
|
||||
@@ -18541,15 +18541,15 @@
|
||||
"src/main/ipc/filesystem-watcher-native-capacity.test.ts",
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-child-registry.test.ts",
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-child-launch.test.ts",
|
||||
"src/main/ipc/parcel-watcher-process.test.ts",
|
||||
"src/main/ipc/parcel-watcher-unsubscribe-timeout.test.ts",
|
||||
"src/main/ipc/parcel-watcher-supervisor-capacity-wait.test.ts",
|
||||
"src/main/ipc/parcel-watcher-supervisor-capacity.test.ts",
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-process.test.ts",
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-unsubscribe-timeout.test.ts",
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-supervisor-capacity-wait.test.ts",
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-supervisor-capacity.test.ts",
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-disconnect-termination.test.ts",
|
||||
"src/main/ipc/runtime-watcher-pending-assignment.test.ts",
|
||||
"src/main/ipc/runtime-watcher-process-pool.test.ts",
|
||||
"src/main/ipc/parcel-watcher-process-entry.test.ts",
|
||||
"src/main/ipc/parcel-watcher-event-delivery.test.ts",
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-process-entry.test.ts",
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-event-delivery.test.ts",
|
||||
"src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts",
|
||||
"src/main/ipc/filesystem-watcher-wsl.test.ts",
|
||||
"src/main/ipc/worktrees-delete-pty-teardown.test.ts",
|
||||
@@ -18630,7 +18630,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"file": "src/main/ipc/parcel-watcher-process.test.ts",
|
||||
"file": "src/main/ipc/filesystem/watcher-process/parcel-watcher-process.test.ts",
|
||||
"assertions": [
|
||||
"initial-subscribe crashes complete with an interruption refresh",
|
||||
"watch errors before readiness reject setup and physically cancel the native crawl",
|
||||
@@ -18647,20 +18647,20 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"file": "src/main/ipc/parcel-watcher-unsubscribe-timeout.test.ts",
|
||||
"file": "src/main/ipc/filesystem/watcher-process/parcel-watcher-unsubscribe-timeout.test.ts",
|
||||
"assertions": [
|
||||
"a canary-independent native-unsubscribe deadline restarts the shard and restores healthy siblings after physical child exit",
|
||||
"an unkillable child rejects the native unsubscribe with its retained physical-exit promise only at the bounded exit deadline"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file": "src/main/ipc/parcel-watcher-supervisor-capacity-wait.test.ts",
|
||||
"file": "src/main/ipc/filesystem/watcher-process/parcel-watcher-supervisor-capacity-wait.test.ts",
|
||||
"assertions": [
|
||||
"10,000 cancelled capacity callers leave exactly one live anchor and zero waiters after the released slot settles"
|
||||
]
|
||||
},
|
||||
{
|
||||
"file": "src/main/ipc/parcel-watcher-supervisor-capacity.test.ts",
|
||||
"file": "src/main/ipc/filesystem/watcher-process/parcel-watcher-supervisor-capacity.test.ts",
|
||||
"assertions": [
|
||||
"one released physical slot launches one shared supervisor child for every waiting root, while partial/all cancellation and disposal remove the shared capacity barrier",
|
||||
"a waiter recursively re-enters the event-driven barrier when crash recovery reclaims its announced slot"
|
||||
@@ -18696,7 +18696,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"file": "src/main/ipc/parcel-watcher-process-entry.test.ts",
|
||||
"file": "src/main/ipc/filesystem/watcher-process/parcel-watcher-process-entry.test.ts",
|
||||
"assertions": [
|
||||
"queued cancellation removes the request before Parcel starts its crawl",
|
||||
"active cancellation requests one host restart and emits no stale subscribed acknowledgement",
|
||||
@@ -18708,7 +18708,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"file": "src/main/ipc/parcel-watcher-event-delivery.test.ts",
|
||||
"file": "src/main/ipc/filesystem/watcher-process/parcel-watcher-event-delivery.test.ts",
|
||||
"assertions": [
|
||||
"eight concurrent root batches never exceed eight active directory metadata stats within one child"
|
||||
]
|
||||
@@ -18934,7 +18934,7 @@
|
||||
"runner": "local",
|
||||
"platform": "macos",
|
||||
"command": "pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/filesystem-watcher.test.ts src/main/ipc/filesystem-watcher-native-capacity.test.ts src/main/ipc/parcel-watcher-child-registry.test.ts src/main/ipc/parcel-watcher-child-launch.test.ts src/main/ipc/parcel-watcher-process.test.ts src/main/ipc/parcel-watcher-supervisor-capacity-wait.test.ts src/main/ipc/parcel-watcher-supervisor-capacity.test.ts src/main/ipc/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-pending-assignment.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/parcel-watcher-process-entry.test.ts src/main/ipc/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/main/runtime/rpc/methods/files-watch-cancellation.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts src/shared/physical-exit-tracker.test.ts src/shared/promise-settlement-waiters.test.ts src/main/ipc/pty-spawn-cwd-fallback.test.ts src/main/ipc/pty-listener-teardown-and-orphans.test.ts src/main/providers/local-pty-provider-shutdown.test.ts src/main/providers/local-pty-provider-session-inventory.test.ts src/main/daemon/daemon-pty-adapter.test.ts src/main/daemon/pty-subprocess.test.ts src/main/daemon/session.test.ts src/main/daemon/terminal-host.test.ts src/main/daemon/terminal-host-session-reaping-leak.test.ts --reporter=dot",
|
||||
"currentCommand": "pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/filesystem-watcher.test.ts src/main/ipc/filesystem-watcher-native-capacity.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-child-registry.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-child-launch.test.ts src/main/ipc/parcel-watcher-process.test.ts src/main/ipc/parcel-watcher-supervisor-capacity-wait.test.ts src/main/ipc/parcel-watcher-supervisor-capacity.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-pending-assignment.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/parcel-watcher-process-entry.test.ts src/main/ipc/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/main/runtime/rpc/methods/files-watch-cancellation.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts src/shared/physical-exit-tracker.test.ts src/shared/promise-settlement-waiters.test.ts src/main/ipc/pty-spawn-cwd-fallback.test.ts src/main/ipc/pty-listener-teardown-and-orphans.test.ts src/main/providers/local-pty-provider-shutdown.test.ts src/main/providers/local-pty-provider-session-inventory.test.ts src/main/daemon/daemon-pty-adapter.test.ts src/main/daemon/pty-subprocess.test.ts src/main/daemon/session.test.ts src/main/daemon/terminal-host.test.ts src/main/daemon/terminal-host-session-reaping-leak.test.ts --reporter=dot",
|
||||
"currentCommand": "pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/filesystem-watcher.test.ts src/main/ipc/filesystem-watcher-native-capacity.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-child-registry.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-child-launch.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-process.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-supervisor-capacity-wait.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-supervisor-capacity.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-pending-assignment.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-process-entry.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/main/runtime/rpc/methods/files-watch-cancellation.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts src/shared/physical-exit-tracker.test.ts src/shared/promise-settlement-waiters.test.ts src/main/ipc/pty-spawn-cwd-fallback.test.ts src/main/ipc/pty-listener-teardown-and-orphans.test.ts src/main/providers/local-pty-provider-shutdown.test.ts src/main/providers/local-pty-provider-session-inventory.test.ts src/main/daemon/daemon-pty-adapter.test.ts src/main/daemon/pty-subprocess.test.ts src/main/daemon/session.test.ts src/main/daemon/terminal-host.test.ts src/main/daemon/terminal-host-session-reaping-leak.test.ts --reporter=dot",
|
||||
"result": "passed",
|
||||
"durationSeconds": 11.98,
|
||||
"summary": "Thirty-nine watcher, cancellation, desktop/serve, paired-web, WSL, SSH/relay, removal, and PTY physical-exit files passed with 2,008 tests. Capacity, quarantine, runtime-root, relay, and SSH setup layers each prove that 10,000 aborted callers detach while one anchor remains and zero waiters remain after settlement."
|
||||
@@ -18944,7 +18944,7 @@
|
||||
"runner": "local",
|
||||
"platform": "macos",
|
||||
"command": "pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/filesystem-watcher.test.ts src/main/ipc/filesystem-watcher-native-capacity.test.ts src/main/ipc/parcel-watcher-child-registry.test.ts src/main/ipc/parcel-watcher-child-launch.test.ts src/main/ipc/parcel-watcher-process.test.ts src/main/ipc/parcel-watcher-supervisor-capacity.test.ts src/main/ipc/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/parcel-watcher-process-entry.test.ts src/main/ipc/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/main/runtime/rpc/methods/files-watch-cancellation.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts src/shared/physical-exit-tracker.test.ts src/main/ipc/pty-spawn-cwd-fallback.test.ts src/main/ipc/pty-listener-teardown-and-orphans.test.ts src/main/providers/local-pty-provider-shutdown.test.ts src/main/providers/local-pty-provider-session-inventory.test.ts src/main/daemon/daemon-pty-adapter.test.ts src/main/daemon/pty-subprocess.test.ts src/main/daemon/session.test.ts src/main/daemon/terminal-host.test.ts src/main/daemon/terminal-host-session-reaping-leak.test.ts --reporter=dot",
|
||||
"currentCommand": "pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/filesystem-watcher.test.ts src/main/ipc/filesystem-watcher-native-capacity.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-child-registry.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-child-launch.test.ts src/main/ipc/parcel-watcher-process.test.ts src/main/ipc/parcel-watcher-supervisor-capacity.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/parcel-watcher-process-entry.test.ts src/main/ipc/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/main/runtime/rpc/methods/files-watch-cancellation.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts src/shared/physical-exit-tracker.test.ts src/main/ipc/pty-spawn-cwd-fallback.test.ts src/main/ipc/pty-listener-teardown-and-orphans.test.ts src/main/providers/local-pty-provider-shutdown.test.ts src/main/providers/local-pty-provider-session-inventory.test.ts src/main/daemon/daemon-pty-adapter.test.ts src/main/daemon/pty-subprocess.test.ts src/main/daemon/session.test.ts src/main/daemon/terminal-host.test.ts src/main/daemon/terminal-host-session-reaping-leak.test.ts --reporter=dot",
|
||||
"currentCommand": "pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/filesystem-watcher.test.ts src/main/ipc/filesystem-watcher-native-capacity.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-child-registry.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-child-launch.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-process.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-supervisor-capacity.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-process-entry.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/main/runtime/rpc/methods/files-watch-cancellation.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts src/shared/physical-exit-tracker.test.ts src/main/ipc/pty-spawn-cwd-fallback.test.ts src/main/ipc/pty-listener-teardown-and-orphans.test.ts src/main/providers/local-pty-provider-shutdown.test.ts src/main/providers/local-pty-provider-session-inventory.test.ts src/main/daemon/daemon-pty-adapter.test.ts src/main/daemon/pty-subprocess.test.ts src/main/daemon/session.test.ts src/main/daemon/terminal-host.test.ts src/main/daemon/terminal-host-session-reaping-leak.test.ts --reporter=dot",
|
||||
"result": "passed",
|
||||
"durationSeconds": 11.59,
|
||||
"summary": "Thirty-four watcher, cancellation, desktop/serve, paired-web, WSL, removal, PTY physical-exit, provider, renderer, and path files passed with 1,999 tests; paired-web cancellation now owns a server token before ready and aborts pending setup without a late native install."
|
||||
@@ -18963,7 +18963,7 @@
|
||||
"runner": "local",
|
||||
"platform": "macos",
|
||||
"command": "pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/filesystem-watcher.test.ts src/main/ipc/parcel-watcher-process.test.ts src/main/ipc/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/parcel-watcher-process-entry.test.ts src/main/ipc/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts src/main/ipc/pty-spawn-cwd-fallback.test.ts src/main/ipc/pty-listener-teardown-and-orphans.test.ts src/main/providers/local-pty-provider-shutdown.test.ts src/main/providers/local-pty-provider-session-inventory.test.ts src/main/daemon/pty-subprocess.test.ts src/main/daemon/session.test.ts src/main/daemon/terminal-host.test.ts src/main/daemon/terminal-host-session-reaping-leak.test.ts --reporter=dot",
|
||||
"currentCommand": "pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/filesystem-watcher.test.ts src/main/ipc/parcel-watcher-process.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/parcel-watcher-process-entry.test.ts src/main/ipc/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts src/main/ipc/pty-spawn-cwd-fallback.test.ts src/main/ipc/pty-listener-teardown-and-orphans.test.ts src/main/providers/local-pty-provider-shutdown.test.ts src/main/providers/local-pty-provider-session-inventory.test.ts src/main/daemon/pty-subprocess.test.ts src/main/daemon/session.test.ts src/main/daemon/terminal-host.test.ts src/main/daemon/terminal-host-session-reaping-leak.test.ts --reporter=dot",
|
||||
"currentCommand": "pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/filesystem-watcher.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-process.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-process-entry.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts src/main/ipc/pty-spawn-cwd-fallback.test.ts src/main/ipc/pty-listener-teardown-and-orphans.test.ts src/main/providers/local-pty-provider-shutdown.test.ts src/main/providers/local-pty-provider-session-inventory.test.ts src/main/daemon/pty-subprocess.test.ts src/main/daemon/session.test.ts src/main/daemon/terminal-host.test.ts src/main/daemon/terminal-host-session-reaping-leak.test.ts --reporter=dot",
|
||||
"result": "passed",
|
||||
"durationSeconds": 10.01,
|
||||
"summary": "Twenty-seven watcher, WSL, desktop/serve removal, local/daemon/SSH PTY physical-exit, provider ownership, RPC, renderer, relay PTY admission, and cross-platform path files passed with 1,886 tests. The suite includes nested removal fencing, renderer/runtime cwd-only admission, legacy provider rows, rejected kill retries, transient WSL capacity, and synchronous-startup reservation cleanup."
|
||||
@@ -19018,7 +19018,7 @@
|
||||
"runner": "local",
|
||||
"platform": "macos",
|
||||
"command": "pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/parcel-watcher-process.test.ts src/main/ipc/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/parcel-watcher-process-entry.test.ts src/main/ipc/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts src/main/ipc/pty-spawn-cwd-fallback.test.ts src/main/ipc/pty-listener-teardown-and-orphans.test.ts src/main/providers/local-pty-provider-shutdown.test.ts src/main/providers/local-pty-provider-session-inventory.test.ts src/main/daemon/session.test.ts src/main/daemon/terminal-host.test.ts src/main/daemon/terminal-host-session-reaping-leak.test.ts",
|
||||
"currentCommand": "pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/parcel-watcher-process.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/parcel-watcher-process-entry.test.ts src/main/ipc/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts src/main/ipc/pty-spawn-cwd-fallback.test.ts src/main/ipc/pty-listener-teardown-and-orphans.test.ts src/main/providers/local-pty-provider-shutdown.test.ts src/main/providers/local-pty-provider-session-inventory.test.ts src/main/daemon/session.test.ts src/main/daemon/terminal-host.test.ts src/main/daemon/terminal-host-session-reaping-leak.test.ts",
|
||||
"currentCommand": "pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-process.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-process-entry.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts src/main/ipc/pty-spawn-cwd-fallback.test.ts src/main/ipc/pty-listener-teardown-and-orphans.test.ts src/main/providers/local-pty-provider-shutdown.test.ts src/main/providers/local-pty-provider-session-inventory.test.ts src/main/daemon/session.test.ts src/main/daemon/terminal-host.test.ts src/main/daemon/terminal-host-session-reaping-leak.test.ts",
|
||||
"result": "passed",
|
||||
"durationSeconds": 9.12,
|
||||
"summary": "Twenty-five watcher, WSL, desktop/serve removal, local/daemon/SSH PTY physical-exit, provider ownership, RPC, renderer, relay PTY admission, and cross-platform path files passed with 1,762 tests. The suite covers operations joining in-flight termination, kill failures retaining ownership, bounded timeouts, atomic relay spawn/revive caps, and PTY-removal admission."
|
||||
@@ -19073,7 +19073,7 @@
|
||||
"runner": "local",
|
||||
"platform": "macos",
|
||||
"command": "pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/parcel-watcher-process.test.ts src/main/ipc/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/parcel-watcher-process-entry.test.ts src/main/ipc/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts src/main/ipc/pty-spawn-cwd-fallback.test.ts src/main/ipc/pty-listener-teardown-and-orphans.test.ts src/main/daemon/terminal-host.test.ts src/main/daemon/terminal-host-session-reaping-leak.test.ts",
|
||||
"currentCommand": "pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/parcel-watcher-process.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/parcel-watcher-process-entry.test.ts src/main/ipc/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts src/main/ipc/pty-spawn-cwd-fallback.test.ts src/main/ipc/pty-listener-teardown-and-orphans.test.ts src/main/daemon/terminal-host.test.ts src/main/daemon/terminal-host-session-reaping-leak.test.ts",
|
||||
"currentCommand": "pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-process.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-process-entry.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts src/main/ipc/pty-spawn-cwd-fallback.test.ts src/main/ipc/pty-listener-teardown-and-orphans.test.ts src/main/daemon/terminal-host.test.ts src/main/daemon/terminal-host-session-reaping-leak.test.ts",
|
||||
"result": "passed",
|
||||
"durationSeconds": 9.03,
|
||||
"summary": "Twenty-three watcher, desktop/serve removal, terminal-spawn gate, daemon/SSH physical PTY exit, provider ownership, RPC, renderer, and cross-platform path files passed with 1,630 tests. The suite includes same-turn watcher replacement, authoritative SSH teardown before Git, bounded kill-without-exit failures that retain ownership, and local/SSH deletion fail-closed behavior."
|
||||
@@ -19101,7 +19101,7 @@
|
||||
"runner": "local",
|
||||
"platform": "macos",
|
||||
"command": "pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/parcel-watcher-process.test.ts src/main/ipc/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/parcel-watcher-process-entry.test.ts src/main/ipc/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts",
|
||||
"currentCommand": "pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/parcel-watcher-process.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/parcel-watcher-process-entry.test.ts src/main/ipc/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts",
|
||||
"currentCommand": "pnpm exec vitest run --config config/vitest.config.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-process.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-disconnect-termination.test.ts src/main/ipc/runtime-watcher-process-pool.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-process-entry.test.ts src/main/ipc/filesystem/watcher-process/parcel-watcher-event-delivery.test.ts src/main/ipc/filesystem-watcher-local-unsubscribe.test.ts src/main/ipc/filesystem-watcher-wsl.test.ts src/main/ipc/worktrees-delete-pty-teardown.test.ts src/main/ipc/worktrees-orphan-directory-cleanup.test.ts src/main/ipc/worktrees-remove-preflight.test.ts src/main/ipc/worktrees-remove-archive-hooks.test.ts src/main/ipc/watcher-removal-gate.test.ts src/main/runtime/file-watcher-host.test.ts src/main/runtime/orca-runtime-files-watch.test.ts src/main/runtime/worktree-teardown.test.ts src/main/runtime/orca-runtime.test.ts src/main/runtime/rpc/methods/files.test.ts src/renderer/src/runtime/runtime-file-client.test.ts src/renderer/src/web/web-runtime-client.test.ts src/shared/cross-platform-path.test.ts",
|
||||
"result": "passed",
|
||||
"durationSeconds": 8.85,
|
||||
"summary": "18 focused supervisor, disconnect termination, pool, child-entry, delivery, desktop/WSL cleanup and IPC removal, removal-gate, runtime-host/commands and physical PTY teardown, RPC, SSH ownership, renderer/paired-web clients, and cross-platform path files passed with 1,193 tests."
|
||||
|
||||
@@ -2652,23 +2652,23 @@
|
||||
"src/main/ipc/runtime-environments/orcad-ssh-provisioning-handlers.test.ts": 33,
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-child-launch.test.ts": 51,
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-child-registry.test.ts": 88,
|
||||
"src/main/ipc/parcel-watcher-crash-fuse.test.ts": 37,
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-crash-fuse.test.ts": 37,
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-disconnect-termination.test.ts": 146,
|
||||
"src/main/ipc/parcel-watcher-entry-path.test.ts": 41,
|
||||
"src/main/ipc/parcel-watcher-event-cancellation.test.ts": 45,
|
||||
"src/main/ipc/parcel-watcher-event-delivery.test.ts": 112,
|
||||
"src/main/ipc/parcel-watcher-module-loader.test.ts": 32,
|
||||
"src/main/ipc/parcel-watcher-native-error-retirement.test.ts": 100,
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-entry-path.test.ts": 41,
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-event-cancellation.test.ts": 45,
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-event-delivery.test.ts": 112,
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-module-loader.test.ts": 32,
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-native-error-retirement.test.ts": 100,
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-owned-children.test.ts": 50,
|
||||
"src/main/ipc/parcel-watcher-process-dispose.test.ts": 36,
|
||||
"src/main/ipc/parcel-watcher-process-entry.test.ts": 179,
|
||||
"src/main/ipc/parcel-watcher-process.test.ts": 558,
|
||||
"src/main/ipc/parcel-watcher-root-path-rewrite.test.ts": 109,
|
||||
"src/main/ipc/parcel-watcher-shallow-subscription.test.ts": 113,
|
||||
"src/main/ipc/parcel-watcher-supervisor-capacity-wait.test.ts": 177,
|
||||
"src/main/ipc/parcel-watcher-supervisor-capacity.test.ts": 247,
|
||||
"src/main/ipc/parcel-watcher-supervisor-disposal.test.ts": 91,
|
||||
"src/main/ipc/parcel-watcher-unsubscribe-timeout.test.ts": 118,
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-process-dispose.test.ts": 36,
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-process-entry.test.ts": 179,
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-process.test.ts": 558,
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-root-path-rewrite.test.ts": 109,
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-shallow-subscription.test.ts": 113,
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-supervisor-capacity-wait.test.ts": 177,
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-supervisor-capacity.test.ts": 247,
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-supervisor-disposal.test.ts": 91,
|
||||
"src/main/ipc/filesystem/watcher-process/parcel-watcher-unsubscribe-timeout.test.ts": 118,
|
||||
"src/main/ipc/pet-bundle.test.ts": 52,
|
||||
"src/main/ipc/pet.test.ts": 328,
|
||||
"src/main/ipc/plugin-marketplaces.test.ts": 250,
|
||||
|
||||
@@ -11,7 +11,7 @@ const { turnedOnDarkBuildDefines } = createRequire(import.meta.url)('../dark-bui
|
||||
export const ORCAD_ENTRY_POINT = 'src/main/orcad/main.ts'
|
||||
export const ORCAD_LAUNCHER_ENTRY_POINT = 'src/main/orcad/launcher.ts'
|
||||
export const ORCAD_CHILD_ENTRY_POINTS = {
|
||||
watcher: 'src/main/ipc/parcel-watcher-process-entry.ts',
|
||||
watcher: 'src/main/ipc/filesystem/watcher-process/parcel-watcher-process-entry.ts',
|
||||
daemon: 'src/main/daemon/daemon-entry.ts',
|
||||
writer: 'src/main/persistence/profile-state/profile-state-writer-worker-entry.ts',
|
||||
backup: 'src/main/persistence/profile-state/profile-state-backup-worker-entry.ts',
|
||||
|
||||
@@ -6,7 +6,9 @@ import { join, resolve } from 'node:path'
|
||||
import { build } from 'esbuild'
|
||||
|
||||
const ENTRY_PATH = resolve('out/main/parcel-watcher-process-entry.js')
|
||||
const SUPERVISOR_SOURCE = resolve('src/main/ipc/parcel-watcher-process-supervisor.ts')
|
||||
const SUPERVISOR_SOURCE = resolve(
|
||||
'src/main/ipc/filesystem/watcher-process/parcel-watcher-process-supervisor.ts'
|
||||
)
|
||||
const WAIT_TIMEOUT_MS = 15_000
|
||||
const require = createRequire(import.meta.url)
|
||||
|
||||
|
||||
@@ -9,7 +9,9 @@ import { build } from 'esbuild'
|
||||
|
||||
const ENTRY_PATH = resolve('out/main/parcel-watcher-process-entry.js')
|
||||
const POOL_SOURCE = resolve('src/main/ipc/runtime-watcher-process-pool.ts')
|
||||
const FAILURE_SOURCE = resolve('src/main/ipc/parcel-watcher-process-failure.ts')
|
||||
const FAILURE_SOURCE = resolve(
|
||||
'src/main/ipc/filesystem/watcher-process/parcel-watcher-process-failure.ts'
|
||||
)
|
||||
const REGISTRY_SOURCE = resolve(
|
||||
'src/main/ipc/filesystem/watcher-process/parcel-watcher-child-registry.ts'
|
||||
)
|
||||
|
||||
@@ -20,7 +20,9 @@ vi.mock('./filesystem-watcher-local-events', () => ({
|
||||
createLocalWatcher: createLocal,
|
||||
scheduleLocalBatchFlush: vi.fn()
|
||||
}))
|
||||
vi.mock('./parcel-watcher-process', () => ({ disposeWatcherProcess: vi.fn() }))
|
||||
vi.mock('./filesystem/watcher-process/parcel-watcher-process', () => ({
|
||||
disposeWatcherProcess: vi.fn()
|
||||
}))
|
||||
import { watcherLifecycleState as state } from './filesystem-watcher-lifecycle-state'
|
||||
import { getLocalWatcherRoot } from './filesystem-watcher-paths'
|
||||
import { registerFilesystemWatcherHandlers } from './filesystem-watcher-handlers'
|
||||
|
||||
@@ -9,7 +9,7 @@ const { handleMock, statMock, subscribeMock } = vi.hoisted(() => ({
|
||||
|
||||
vi.mock('electron', () => ({ ipcMain: { handle: handleMock } }))
|
||||
vi.mock('node:fs/promises', () => ({ stat: statMock }))
|
||||
vi.mock('./parcel-watcher-process', () => ({
|
||||
vi.mock('./filesystem/watcher-process/parcel-watcher-process', () => ({
|
||||
subscribeViaWatcherProcess: subscribeMock,
|
||||
disposeWatcherProcess: vi.fn()
|
||||
}))
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { WebContents } from 'electron'
|
||||
import { isWatcherProcessFailure } from './parcel-watcher-process-failure'
|
||||
import { isWatcherProcessFailure } from './filesystem/watcher-process/parcel-watcher-process-failure'
|
||||
import type { WatchedRoot } from './filesystem-watcher-wsl'
|
||||
import {
|
||||
type CancelledInstallWaiter,
|
||||
|
||||
@@ -12,7 +12,9 @@ const { statMock, subscribeMock } = vi.hoisted(() => ({
|
||||
}))
|
||||
|
||||
vi.mock('fs/promises', () => ({ stat: statMock }))
|
||||
vi.mock('./parcel-watcher-process', () => ({ subscribeViaWatcherProcess: subscribeMock }))
|
||||
vi.mock('./filesystem/watcher-process/parcel-watcher-process', () => ({
|
||||
subscribeViaWatcherProcess: subscribeMock
|
||||
}))
|
||||
|
||||
import { createLocalWatcher } from './filesystem-watcher-local-events'
|
||||
import { cancelLocalBatchFlush } from './filesystem-watcher-batch-control'
|
||||
|
||||
@@ -6,7 +6,7 @@ import { MAX_BATCHED_WATCHER_EVENTS, queueWatcherEvents } from './filesystem-wat
|
||||
// Filter high-churn events at source; Explorer display filters only hide rows.
|
||||
import { WATCHER_IGNORE_DIRS, buildParcelWatcherIgnoreOptions } from './filesystem-watcher-ignore'
|
||||
import type { WatchedRoot } from './filesystem-watcher-wsl'
|
||||
import { subscribeViaWatcherProcess } from './parcel-watcher-process'
|
||||
import { subscribeViaWatcherProcess } from './filesystem/watcher-process/parcel-watcher-process'
|
||||
import { normalizeWatcherEventPath } from './filesystem-watcher-paths'
|
||||
import { watcherLifecycleState } from './filesystem-watcher-lifecycle-state'
|
||||
import {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import { WatcherProcessFailure } from './parcel-watcher-process-failure'
|
||||
import { WatcherProcessFailure } from './filesystem/watcher-process/parcel-watcher-process-failure'
|
||||
|
||||
const { createLocalWatcherMock, statMock } = vi.hoisted(() => ({
|
||||
createLocalWatcherMock: vi.fn(),
|
||||
|
||||
@@ -3,7 +3,7 @@ import { isWslPath } from '../wsl'
|
||||
import { WATCHER_IGNORE_DIRS } from './filesystem-watcher-ignore'
|
||||
import { createWslWatcher, type WatchedRoot } from './filesystem-watcher-wsl'
|
||||
import { WatcherChildCapacityError } from './filesystem/watcher-process/parcel-watcher-child-registry'
|
||||
import { isWatcherProcessFailure } from './parcel-watcher-process-failure'
|
||||
import { isWatcherProcessFailure } from './filesystem/watcher-process/parcel-watcher-process-failure'
|
||||
import type {
|
||||
LocalWatcherInstallResult,
|
||||
LocalWatcherInstallToken
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { createWatcherSender } from './filesystem-watcher-test-sender'
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import type * as ParcelWatcherProcess from './parcel-watcher-process'
|
||||
import type * as ParcelWatcherProcess from './filesystem/watcher-process/parcel-watcher-process'
|
||||
|
||||
const { handleMock } = vi.hoisted(() => ({
|
||||
handleMock: vi.fn()
|
||||
@@ -24,7 +24,7 @@ vi.mock('./filesystem-watcher-wsl', () => ({
|
||||
createWslWatcher: vi.fn()
|
||||
}))
|
||||
|
||||
vi.mock('./parcel-watcher-process', async (importOriginal) => {
|
||||
vi.mock('./filesystem/watcher-process/parcel-watcher-process', async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof ParcelWatcherProcess>()
|
||||
return {
|
||||
...actual,
|
||||
@@ -40,8 +40,8 @@ import {
|
||||
import { registerFilesystemWatcherHandlers } from './filesystem-watcher-handlers'
|
||||
import { stat } from 'node:fs/promises'
|
||||
import { subscribe as subscribeParcelWatcher } from '@parcel/watcher'
|
||||
import { subscribeViaWatcherProcess } from './parcel-watcher-process'
|
||||
import { WatcherProcessFailure } from './parcel-watcher-process-failure'
|
||||
import { subscribeViaWatcherProcess } from './filesystem/watcher-process/parcel-watcher-process'
|
||||
import { WatcherProcessFailure } from './filesystem/watcher-process/parcel-watcher-process-failure'
|
||||
|
||||
type HandlerMap = Record<string, (_event: unknown, args: unknown) => unknown>
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ const { handleMock, statMock, subscribeViaWatcherProcessMock, disposeWatcherProc
|
||||
|
||||
vi.mock('electron', () => ({ ipcMain: { handle: handleMock } }))
|
||||
vi.mock('node:fs/promises', () => ({ stat: statMock }))
|
||||
vi.mock('./parcel-watcher-process', () => ({
|
||||
vi.mock('./filesystem/watcher-process/parcel-watcher-process', () => ({
|
||||
subscribeViaWatcherProcess: subscribeViaWatcherProcessMock,
|
||||
disposeWatcherProcess: disposeWatcherProcessMock
|
||||
}))
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { createWatcherSender } from './filesystem-watcher-test-sender'
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import type * as ParcelWatcherProcess from './parcel-watcher-process'
|
||||
import type * as ParcelWatcherProcess from './filesystem/watcher-process/parcel-watcher-process'
|
||||
|
||||
const { handleMock } = vi.hoisted(() => ({
|
||||
handleMock: vi.fn()
|
||||
@@ -24,7 +24,7 @@ vi.mock('./filesystem-watcher-wsl', () => ({
|
||||
createWslWatcher: vi.fn()
|
||||
}))
|
||||
|
||||
vi.mock('./parcel-watcher-process', async (importOriginal) => {
|
||||
vi.mock('./filesystem/watcher-process/parcel-watcher-process', async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof ParcelWatcherProcess>()
|
||||
return {
|
||||
...actual,
|
||||
@@ -41,10 +41,10 @@ import {
|
||||
WATCHER_REMOVAL_DRAIN_BUDGET_MS,
|
||||
WATCHER_REMOVAL_FINAL_DRAIN_RESERVE_MS
|
||||
} from './watcher-removal-drain'
|
||||
import { WatcherProcessFailure } from './parcel-watcher-process-failure'
|
||||
import { WatcherProcessFailure } from './filesystem/watcher-process/parcel-watcher-process-failure'
|
||||
import { stat } from 'node:fs/promises'
|
||||
import { subscribe as subscribeParcelWatcher } from '@parcel/watcher'
|
||||
import { subscribeViaWatcherProcess } from './parcel-watcher-process'
|
||||
import { subscribeViaWatcherProcess } from './filesystem/watcher-process/parcel-watcher-process'
|
||||
|
||||
type HandlerMap = Record<string, (_event: unknown, args: unknown) => unknown>
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ const { handleMock, statMock, subscribeMock } = vi.hoisted(() => ({
|
||||
|
||||
vi.mock('electron', () => ({ ipcMain: { handle: handleMock } }))
|
||||
vi.mock('node:fs/promises', () => ({ stat: statMock }))
|
||||
vi.mock('./parcel-watcher-process', () => ({
|
||||
vi.mock('./filesystem/watcher-process/parcel-watcher-process', () => ({
|
||||
subscribeViaWatcherProcess: subscribeMock,
|
||||
disposeWatcherProcess: vi.fn()
|
||||
}))
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { disposeWatcherProcess } from './parcel-watcher-process'
|
||||
import { disposeWatcherProcess } from './filesystem/watcher-process/parcel-watcher-process'
|
||||
import { watcherLifecycleState } from './filesystem-watcher-lifecycle-state'
|
||||
import { trackDetachedLocalUnsubscribe } from './filesystem-watcher-listener-lifecycle'
|
||||
import { cancelLocalBatchFlush } from './filesystem-watcher-batch-control'
|
||||
|
||||
@@ -3,15 +3,15 @@ import {
|
||||
failAllWatcherSubscriptions,
|
||||
type PendingWatcherUnsubscribe,
|
||||
resolvePendingWatcherUnsubscribes
|
||||
} from '../../parcel-watcher-host-subscriptions'
|
||||
} from './parcel-watcher-host-subscriptions'
|
||||
import type { WatcherCancellationTracker } from './parcel-watcher-cancellation-tracker'
|
||||
import {
|
||||
createWatcherChildTerminationFailure,
|
||||
terminateWatcherChild
|
||||
} from './parcel-watcher-child-termination'
|
||||
import { resetPendingSubscribeAttempt } from './parcel-watcher-pending-subscribe'
|
||||
import { WatcherProcessFailure } from '../../parcel-watcher-process-failure'
|
||||
import type { WatcherProcessSubscriptionRecord } from '../../parcel-watcher-process-subscription'
|
||||
import { WatcherProcessFailure } from './parcel-watcher-process-failure'
|
||||
import type { WatcherProcessSubscriptionRecord } from './parcel-watcher-process-subscription'
|
||||
|
||||
export function restoreWatcherRecordsAfterCancellation(
|
||||
records: Map<number, WatcherProcessSubscriptionRecord>,
|
||||
|
||||
@@ -13,7 +13,7 @@ const { forkMock, releaseReservationMock, signalPhysicalExitMock, writeFileSyncM
|
||||
|
||||
vi.mock('node:child_process', () => ({ fork: forkMock }))
|
||||
vi.mock('node:fs', () => ({ writeFileSync: writeFileSyncMock }))
|
||||
vi.mock('../../parcel-watcher-canary-directory', () => ({
|
||||
vi.mock('./parcel-watcher-canary-directory', () => ({
|
||||
createWatcherCanaryDirectory: vi.fn(() => null),
|
||||
removeWatcherCanaryDirectory: vi.fn()
|
||||
}))
|
||||
|
||||
@@ -3,10 +3,10 @@ import { writeFileSync } from 'node:fs'
|
||||
import {
|
||||
createWatcherCanaryDirectory,
|
||||
removeWatcherCanaryDirectory
|
||||
} from '../../parcel-watcher-canary-directory'
|
||||
} from './parcel-watcher-canary-directory'
|
||||
import { reserveWatcherChild, WatcherChildCapacityError } from './parcel-watcher-child-registry'
|
||||
import { registerWatcherChildPhysicalExit } from './parcel-watcher-child-termination'
|
||||
import type { WatcherToHostMessage } from '../../parcel-watcher-process-protocol'
|
||||
import type { WatcherToHostMessage } from './parcel-watcher-process-protocol'
|
||||
|
||||
export type LaunchedWatcherChild = {
|
||||
child: ChildProcess
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { ChildProcess } from 'node:child_process'
|
||||
import type { HostToWatcherMessage } from '../../parcel-watcher-process-protocol'
|
||||
import type { HostToWatcherMessage } from './parcel-watcher-process-protocol'
|
||||
|
||||
export function sendToWatcherChild(proc: ChildProcess, message: HostToWatcherMessage): void {
|
||||
try {
|
||||
|
||||
@@ -3,16 +3,16 @@ import {
|
||||
failAllWatcherSubscriptions,
|
||||
type PendingWatcherUnsubscribe,
|
||||
resolvePendingWatcherUnsubscribes
|
||||
} from '../../parcel-watcher-host-subscriptions'
|
||||
} from './parcel-watcher-host-subscriptions'
|
||||
import type { WatcherCancellationTracker } from './parcel-watcher-cancellation-tracker'
|
||||
import {
|
||||
createWatcherChildTerminationFailure,
|
||||
terminateWatcherChild
|
||||
} from './parcel-watcher-child-termination'
|
||||
import { resetPendingSubscribeAttempt } from './parcel-watcher-pending-subscribe'
|
||||
import type { WatcherProcessCrashFuse } from '../../parcel-watcher-crash-fuse'
|
||||
import { WatcherProcessFailure } from '../../parcel-watcher-process-failure'
|
||||
import type { WatcherProcessSubscriptionRecord } from '../../parcel-watcher-process-subscription'
|
||||
import type { WatcherProcessCrashFuse } from './parcel-watcher-crash-fuse'
|
||||
import { WatcherProcessFailure } from './parcel-watcher-process-failure'
|
||||
import type { WatcherProcessSubscriptionRecord } from './parcel-watcher-process-subscription'
|
||||
|
||||
export function recoverWatcherRecordsAfterChildGone(
|
||||
records: Map<number, WatcherProcessSubscriptionRecord>,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { ChildProcessHandle } from '@orca/process-host/process-spec'
|
||||
import { removeWatcherCanaryDirectory } from '../../parcel-watcher-canary-directory'
|
||||
import { removeWatcherCanaryDirectory } from './parcel-watcher-canary-directory'
|
||||
|
||||
export class WatcherChildSlot {
|
||||
child: ChildProcessHandle | null = null
|
||||
|
||||
@@ -2,8 +2,8 @@ import type { ChildProcess } from 'node:child_process'
|
||||
import {
|
||||
type PendingWatcherUnsubscribe,
|
||||
resolvePendingWatcherUnsubscribes
|
||||
} from '../../parcel-watcher-host-subscriptions'
|
||||
import { WatcherProcessFailure } from '../../parcel-watcher-process-failure'
|
||||
} from './parcel-watcher-host-subscriptions'
|
||||
import { WatcherProcessFailure } from './parcel-watcher-process-failure'
|
||||
import { RUNTIME_FILE_WATCH_EXIT_DEADLINE_MS } from '../../../../shared/runtime-file-watch-limits'
|
||||
|
||||
export const WATCHER_PROCESS_HARD_KILL_DELAY_MS = 5_000
|
||||
|
||||
+2
-2
@@ -22,8 +22,8 @@ import {
|
||||
disposeWatcherProcess,
|
||||
resetWatcherProcessForTest,
|
||||
subscribeViaWatcherProcess
|
||||
} from '../../parcel-watcher-process'
|
||||
import type { WatcherProcessSubscription } from '../../parcel-watcher-process-subscription'
|
||||
} from './parcel-watcher-process'
|
||||
import type { WatcherProcessSubscription } from './parcel-watcher-process-subscription'
|
||||
|
||||
type SentMessage = { op: string; id: number }
|
||||
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ import {
|
||||
getForkedChildEntryPath,
|
||||
resolveForkedChildEntryPath,
|
||||
resolveForkedChildEntryPathWithoutApp
|
||||
} from '../forked-child-entry-path'
|
||||
} from '../../../forked-child-entry-path'
|
||||
|
||||
const WATCHER_ENTRY_FILENAME = 'parcel-watcher-process-entry.js'
|
||||
|
||||
+3
-3
@@ -1,8 +1,8 @@
|
||||
import { stat } from 'node:fs/promises'
|
||||
import { PrioritySemaphore } from '../../shared/priority-semaphore'
|
||||
import { mapWithConcurrency } from '../../shared/map-with-concurrency'
|
||||
import { PrioritySemaphore } from '../../../../shared/priority-semaphore'
|
||||
import { mapWithConcurrency } from '../../../../shared/map-with-concurrency'
|
||||
import type { Event as ParcelWatcherEvent } from '@parcel/watcher'
|
||||
import { MAX_BATCHED_WATCHER_EVENTS } from './filesystem-watcher-event-batch'
|
||||
import { MAX_BATCHED_WATCHER_EVENTS } from '../../filesystem-watcher-event-batch'
|
||||
import type {
|
||||
WatcherProcessDeliveryOptions,
|
||||
WatcherProcessEvent
|
||||
+2
-2
@@ -2,14 +2,14 @@ import type { ChildProcess } from 'node:child_process'
|
||||
import {
|
||||
resetPendingSubscribeAttempt,
|
||||
takePendingSubscribe
|
||||
} from './filesystem/watcher-process/parcel-watcher-pending-subscribe'
|
||||
} from './parcel-watcher-pending-subscribe'
|
||||
import { isWatcherProcessFailure, WatcherProcessFailure } from './parcel-watcher-process-failure'
|
||||
import type { HostToWatcherMessage, WatcherToHostMessage } from './parcel-watcher-process-protocol'
|
||||
import type {
|
||||
WatcherProcessSubscription,
|
||||
WatcherProcessSubscriptionRecord
|
||||
} from './parcel-watcher-process-subscription'
|
||||
import { RUNTIME_FILE_WATCH_CANCEL_TIMEOUT_MS } from '../../shared/runtime-file-watch-limits'
|
||||
import { RUNTIME_FILE_WATCH_CANCEL_TIMEOUT_MS } from '../../../../shared/runtime-file-watch-limits'
|
||||
|
||||
export type PendingWatcherUnsubscribe = (error?: Error) => void
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { resetPendingSubscribeAttempt } from './parcel-watcher-pending-subscribe'
|
||||
import type { WatcherProcessFailure } from '../../parcel-watcher-process-failure'
|
||||
import type { WatcherProcessSubscriptionRecord } from '../../parcel-watcher-process-subscription'
|
||||
import type { WatcherProcessFailure } from './parcel-watcher-process-failure'
|
||||
import type { WatcherProcessSubscriptionRecord } from './parcel-watcher-process-subscription'
|
||||
|
||||
export function cancelInterruptedWatcherSubscribe(args: {
|
||||
record: WatcherProcessSubscriptionRecord
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ vi.mock('node:fs', () => ({
|
||||
}))
|
||||
|
||||
import { WatcherProcessSupervisor } from './parcel-watcher-process-supervisor'
|
||||
import { WATCHER_PROCESS_EXIT_DEADLINE_MS } from './filesystem/watcher-process/parcel-watcher-child-termination'
|
||||
import { WATCHER_PROCESS_EXIT_DEADLINE_MS } from './parcel-watcher-child-termination'
|
||||
|
||||
describe('native watcher error retirement', () => {
|
||||
let supervisor: WatcherProcessSupervisor
|
||||
@@ -1,8 +1,8 @@
|
||||
import type { ChildProcess } from 'node:child_process'
|
||||
import type { WatcherCancellationTracker } from './parcel-watcher-cancellation-tracker'
|
||||
import { takePendingSubscribe } from './parcel-watcher-pending-subscribe'
|
||||
import type { WatcherProcessFailure } from '../../parcel-watcher-process-failure'
|
||||
import type { WatcherProcessSubscriptionRecord } from '../../parcel-watcher-process-subscription'
|
||||
import type { WatcherProcessFailure } from './parcel-watcher-process-failure'
|
||||
import type { WatcherProcessSubscriptionRecord } from './parcel-watcher-process-subscription'
|
||||
|
||||
type CancelPendingWatcherSubscribeOptions = {
|
||||
record: WatcherProcessSubscriptionRecord
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { WatcherProcessFailure } from '../../parcel-watcher-process-failure'
|
||||
import { WatcherProcessFailure } from './parcel-watcher-process-failure'
|
||||
import type {
|
||||
PendingWatcherProcessSubscribe,
|
||||
WatcherProcessSubscriptionRecord
|
||||
} from '../../parcel-watcher-process-subscription'
|
||||
} from './parcel-watcher-process-subscription'
|
||||
|
||||
export function installPendingSubscribeControls(
|
||||
record: WatcherProcessSubscriptionRecord,
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ vi.mock('./parcel-watcher-process-supervisor', () => ({
|
||||
disposeAndWait = supervisorDispose
|
||||
}
|
||||
}))
|
||||
vi.mock('./runtime-watcher-process-pool', () => ({
|
||||
vi.mock('../../runtime-watcher-process-pool', () => ({
|
||||
RuntimeWatcherProcessPool: class {
|
||||
disposeAndWait = poolDispose
|
||||
}
|
||||
+1
-1
@@ -19,7 +19,7 @@ vi.mock('node:fs', () => ({
|
||||
writeFileSync: writeFileSyncMock
|
||||
}))
|
||||
vi.mock('node:fs/promises', () => ({ stat: statMock }))
|
||||
vi.mock('./shallow-watch-delivery-probe', () => ({
|
||||
vi.mock('../../shallow-watch-delivery-probe', () => ({
|
||||
detectShallowWatchDelivery: detectShallowWatchDeliveryMock,
|
||||
hasShallowWatchDelivered: () => false,
|
||||
noteShallowWatchDelivered: vi.fn()
|
||||
+3
-3
@@ -2,8 +2,8 @@
|
||||
import type * as ParcelWatcher from '@parcel/watcher'
|
||||
import { loadParcelWatcher } from './parcel-watcher-module-loader'
|
||||
import { startShallowWatcher } from './parcel-watcher-shallow-subscription'
|
||||
import { detectShallowWatchDelivery } from './shallow-watch-delivery-probe'
|
||||
import { startWatcherDeliveryCanary } from './parcel-watcher-delivery-canary'
|
||||
import { detectShallowWatchDelivery } from '../../shallow-watch-delivery-probe'
|
||||
import { startWatcherDeliveryCanary } from '../../parcel-watcher-delivery-canary'
|
||||
import {
|
||||
createWatcherProcessEventDeliveryQueue,
|
||||
type WatcherProcessEventDeliveryQueue
|
||||
@@ -14,7 +14,7 @@ import type {
|
||||
WatcherProcessSubscribeOptions,
|
||||
WatcherToHostMessage
|
||||
} from './parcel-watcher-process-protocol'
|
||||
import { errorMessage } from '../../shared/error-message'
|
||||
import { errorMessage } from '../../../../shared/error-message'
|
||||
|
||||
type WatcherSubscription = {
|
||||
unsubscribe: () => Promise<void>
|
||||
+12
-12
@@ -1,26 +1,26 @@
|
||||
import type { ChildProcess } from 'node:child_process'
|
||||
import { restartCancelledWatcherChild } from './filesystem/watcher-process/parcel-watcher-cancellation-restart'
|
||||
import { WatcherCancellationTracker } from './filesystem/watcher-process/parcel-watcher-cancellation-tracker'
|
||||
import { restartCancelledWatcherChild } from './parcel-watcher-cancellation-restart'
|
||||
import { WatcherCancellationTracker } from './parcel-watcher-cancellation-tracker'
|
||||
import { getWatcherProcessEntryPath, watcherProcessEntryExists } from './parcel-watcher-entry-path'
|
||||
import { WatcherChildSlot } from './filesystem/watcher-process/parcel-watcher-child-slot'
|
||||
import * as termination from './filesystem/watcher-process/parcel-watcher-child-termination'
|
||||
import { launchWatcherChild } from './filesystem/watcher-process/parcel-watcher-child-launch'
|
||||
import { sendToWatcherChild } from './filesystem/watcher-process/parcel-watcher-child-messaging'
|
||||
import { WatcherChildSlot } from './parcel-watcher-child-slot'
|
||||
import * as termination from './parcel-watcher-child-termination'
|
||||
import { launchWatcherChild } from './parcel-watcher-child-launch'
|
||||
import { sendToWatcherChild } from './parcel-watcher-child-messaging'
|
||||
import {
|
||||
recoverWatcherRecordsAfterChildGone,
|
||||
terminateDisconnectedWatcherChild
|
||||
} from './filesystem/watcher-process/parcel-watcher-child-recovery'
|
||||
import { resetWatcherChildRegistryForTest } from './filesystem/watcher-process/parcel-watcher-child-registry'
|
||||
} from './parcel-watcher-child-recovery'
|
||||
import { resetWatcherChildRegistryForTest } from './parcel-watcher-child-registry'
|
||||
import { WatcherSupervisorCapacityWait } from './parcel-watcher-supervisor-capacity-wait'
|
||||
import { WatcherProcessCrashFuse } from './parcel-watcher-crash-fuse'
|
||||
import { WatcherDeliveryHealthMonitor } from './parcel-watcher-delivery-health'
|
||||
import { cancelInterruptedWatcherSubscribe } from './filesystem/watcher-process/parcel-watcher-interrupted-cancellation'
|
||||
import { WatcherDeliveryHealthMonitor } from '../../parcel-watcher-delivery-health'
|
||||
import { cancelInterruptedWatcherSubscribe } from './parcel-watcher-interrupted-cancellation'
|
||||
import {
|
||||
type PendingWatcherUnsubscribe,
|
||||
reportWatcherTerminalError,
|
||||
resolvePendingWatcherUnsubscribes
|
||||
} from './parcel-watcher-host-subscriptions'
|
||||
import { cancelPendingWatcherSubscribe } from './filesystem/watcher-process/parcel-watcher-pending-cancellation'
|
||||
import { cancelPendingWatcherSubscribe } from './parcel-watcher-pending-cancellation'
|
||||
import type { WatcherProcessFailure } from './parcel-watcher-process-failure'
|
||||
import type {
|
||||
WatcherProcessSubscribeOptions,
|
||||
@@ -39,7 +39,7 @@ import {
|
||||
} from './parcel-watcher-supervisor-subscribe'
|
||||
import { disposeWatcherSupervisor } from './parcel-watcher-supervisor-disposal'
|
||||
import { handleWatcherSupervisorMessage } from './parcel-watcher-supervisor-message'
|
||||
import { WatcherOwnedChildren } from './filesystem/watcher-process/parcel-watcher-owned-children'
|
||||
import { WatcherOwnedChildren } from './parcel-watcher-owned-children'
|
||||
|
||||
export class WatcherProcessSupervisor {
|
||||
private nextSubscriptionId = 1
|
||||
+2
-2
@@ -1,10 +1,10 @@
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import { WATCHER_PROCESS_CANCEL_TIMEOUT_MS } from './filesystem/watcher-process/parcel-watcher-cancellation-tracker'
|
||||
import { WATCHER_PROCESS_CANCEL_TIMEOUT_MS } from './parcel-watcher-cancellation-tracker'
|
||||
import {
|
||||
terminateWatcherChild,
|
||||
WATCHER_PROCESS_EXIT_DEADLINE_MS,
|
||||
WATCHER_PROCESS_HARD_KILL_DELAY_MS
|
||||
} from './filesystem/watcher-process/parcel-watcher-child-termination'
|
||||
} from './parcel-watcher-child-termination'
|
||||
import {
|
||||
acknowledgeWatcherSubscribe as ackSubscribe,
|
||||
currentWatcherChild,
|
||||
+1
-1
@@ -5,7 +5,7 @@ import type {
|
||||
WatcherProcessHooks,
|
||||
WatcherProcessSubscription
|
||||
} from './parcel-watcher-process-subscription'
|
||||
import { RuntimeWatcherProcessPool } from './runtime-watcher-process-pool'
|
||||
import { RuntimeWatcherProcessPool } from '../../runtime-watcher-process-pool'
|
||||
|
||||
const sharedWatcherProcessSupervisor = new WatcherProcessSupervisor()
|
||||
// Healthy roots share a child; quarantine adds isolation only after faults to limit RSS.
|
||||
+1
-1
@@ -6,7 +6,7 @@ import {
|
||||
createAliasedWatcherRoot,
|
||||
removeAliasedWatcherRoot,
|
||||
type AliasedWatcherRoot
|
||||
} from './watcher-aliased-root-fixture'
|
||||
} from '../../watcher-aliased-root-fixture'
|
||||
import {
|
||||
acknowledgeWatcherSubscribe,
|
||||
currentWatcherChild,
|
||||
+3
-3
@@ -2,9 +2,9 @@ import { statSync, watch, type FSWatcher } from 'node:fs'
|
||||
import { stat } from 'node:fs/promises'
|
||||
import { join } from 'node:path'
|
||||
import type { Event as ParcelWatcherEvent } from '@parcel/watcher'
|
||||
import { startShallowFileWatcher } from './parcel-watcher-shallow-file-subscription'
|
||||
import { closeFileSystemWatcher } from './rebinding-file-watch'
|
||||
import { watcherDirectoryIdentity } from './watcher-directory-identity'
|
||||
import { startShallowFileWatcher } from '../../parcel-watcher-shallow-file-subscription'
|
||||
import { closeFileSystemWatcher } from '../../rebinding-file-watch'
|
||||
import { watcherDirectoryIdentity } from '../../watcher-directory-identity'
|
||||
|
||||
export type ShallowWatcherSubscription = {
|
||||
unsubscribe: () => Promise<void>
|
||||
+1
-1
@@ -3,7 +3,7 @@ import {
|
||||
MAX_PHYSICAL_WATCHER_CHILDREN,
|
||||
reserveWatcherChild,
|
||||
resetWatcherChildRegistryForTest
|
||||
} from './filesystem/watcher-process/parcel-watcher-child-registry'
|
||||
} from './parcel-watcher-child-registry'
|
||||
import { WatcherSupervisorCapacityWait } from './parcel-watcher-supervisor-capacity-wait'
|
||||
|
||||
describe('WatcherSupervisorCapacityWait', () => {
|
||||
+2
-2
@@ -1,9 +1,9 @@
|
||||
import {
|
||||
onWatcherChildCapacityAvailable,
|
||||
WatcherChildCapacityError
|
||||
} from './filesystem/watcher-process/parcel-watcher-child-registry'
|
||||
} from './parcel-watcher-child-registry'
|
||||
import { watcherHostFailure, WatcherProcessFailure } from './parcel-watcher-process-failure'
|
||||
import { PromiseSettlementWaiters } from '../../shared/promise-settlement-waiters'
|
||||
import { PromiseSettlementWaiters } from '../../../../shared/promise-settlement-waiters'
|
||||
|
||||
type CapacityWaitState = {
|
||||
waiters: PromiseSettlementWaiters<void>
|
||||
+2
-2
@@ -1,9 +1,9 @@
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import { WATCHER_PROCESS_EXIT_DEADLINE_MS } from './filesystem/watcher-process/parcel-watcher-child-termination'
|
||||
import { WATCHER_PROCESS_EXIT_DEADLINE_MS } from './parcel-watcher-child-termination'
|
||||
import {
|
||||
MAX_PHYSICAL_WATCHER_CHILDREN,
|
||||
resetWatcherChildRegistryForTest
|
||||
} from './filesystem/watcher-process/parcel-watcher-child-registry'
|
||||
} from './parcel-watcher-child-registry'
|
||||
import {
|
||||
acknowledgeWatcherSubscribe,
|
||||
currentWatcherChild,
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
import { afterEach, beforeEach, expect, it, vi } from 'vitest'
|
||||
import { acknowledgeWatcherSubscribe, FakeWatcherChild } from './parcel-watcher-process-test-child'
|
||||
import { resetWatcherChildRegistryForTest } from './filesystem/watcher-process/parcel-watcher-child-registry'
|
||||
import { resetWatcherChildRegistryForTest } from './parcel-watcher-child-registry'
|
||||
|
||||
const { forkMock } = vi.hoisted(() => ({ forkMock: vi.fn() }))
|
||||
vi.mock('node:child_process', () => ({ fork: forkMock }))
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
import type { ChildProcess } from 'node:child_process'
|
||||
import { removeWatcherCanaryDirectory } from './parcel-watcher-canary-directory'
|
||||
import type { WatcherCancellationTracker } from './filesystem/watcher-process/parcel-watcher-cancellation-tracker'
|
||||
import type { WatcherCancellationTracker } from './parcel-watcher-cancellation-tracker'
|
||||
import {
|
||||
type PendingWatcherUnsubscribe,
|
||||
resolvePendingWatcherUnsubscribes
|
||||
@@ -8,8 +8,8 @@ import {
|
||||
import {
|
||||
resetPendingSubscribeAttempt,
|
||||
takePendingSubscribe
|
||||
} from './filesystem/watcher-process/parcel-watcher-pending-subscribe'
|
||||
import { signalWatcherChild } from './filesystem/watcher-process/parcel-watcher-child-termination'
|
||||
} from './parcel-watcher-pending-subscribe'
|
||||
import { signalWatcherChild } from './parcel-watcher-child-termination'
|
||||
import { watcherHostFailure } from './parcel-watcher-process-failure'
|
||||
import type { WatcherProcessSubscriptionRecord } from './parcel-watcher-process-subscription'
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
import type { ChildProcess } from 'node:child_process'
|
||||
import type { WatcherCancellationTracker } from './filesystem/watcher-process/parcel-watcher-cancellation-tracker'
|
||||
import type { WatcherCancellationTracker } from './parcel-watcher-cancellation-tracker'
|
||||
import {
|
||||
handleWatcherHostMessage,
|
||||
type PendingWatcherUnsubscribe,
|
||||
@@ -9,7 +9,7 @@ import {
|
||||
import {
|
||||
startInterruptedSubscribeTimeout,
|
||||
startPendingSubscribeTimeout
|
||||
} from './filesystem/watcher-process/parcel-watcher-pending-subscribe'
|
||||
} from './parcel-watcher-pending-subscribe'
|
||||
import { WatcherProcessFailure } from './parcel-watcher-process-failure'
|
||||
import type { WatcherToHostMessage } from './parcel-watcher-process-protocol'
|
||||
import type { WatcherProcessSubscriptionRecord } from './parcel-watcher-process-subscription'
|
||||
+6
-3
@@ -1,15 +1,18 @@
|
||||
import type { ChildProcess } from 'node:child_process'
|
||||
import { existsSync } from 'node:fs'
|
||||
import { sendToWatcherChild } from './filesystem/watcher-process/parcel-watcher-child-messaging'
|
||||
import { sendToWatcherChild } from './parcel-watcher-child-messaging'
|
||||
import { createHostWatcherSubscription } from './parcel-watcher-host-subscriptions'
|
||||
import type { PendingWatcherUnsubscribe } from './parcel-watcher-host-subscriptions'
|
||||
import { subscribeWithInProcessWatcher } from './parcel-watcher-in-process-fallback'
|
||||
import {
|
||||
installPendingSubscribeControls,
|
||||
resetPendingSubscribeAttempt
|
||||
} from './filesystem/watcher-process/parcel-watcher-pending-subscribe'
|
||||
} from './parcel-watcher-pending-subscribe'
|
||||
import { WatcherProcessFailure } from './parcel-watcher-process-failure'
|
||||
import { rewriteWatcherEvents, resolveWatcherRootPaths } from './watcher-event-root-path-rewrite'
|
||||
import {
|
||||
rewriteWatcherEvents,
|
||||
resolveWatcherRootPaths
|
||||
} from '../../watcher-event-root-path-rewrite'
|
||||
import type {
|
||||
HostToWatcherMessage,
|
||||
WatcherProcessSubscribeOptions
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import { WATCHER_PROCESS_EXIT_DEADLINE_MS } from './filesystem/watcher-process/parcel-watcher-child-termination'
|
||||
import { WATCHER_PROCESS_EXIT_DEADLINE_MS } from './parcel-watcher-child-termination'
|
||||
import { WATCHER_PROCESS_UNSUBSCRIBE_TIMEOUT_MS } from './parcel-watcher-host-subscriptions'
|
||||
import {
|
||||
acknowledgeWatcherSubscribe as ackSubscribe,
|
||||
@@ -1,10 +1,10 @@
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import { CRASH_FUSE_COOLDOWN_INITIAL_MS } from './parcel-watcher-crash-fuse'
|
||||
import { CRASH_FUSE_COOLDOWN_INITIAL_MS } from './filesystem/watcher-process/parcel-watcher-crash-fuse'
|
||||
import {
|
||||
acknowledgeWatcherSubscribe as ackSubscribe,
|
||||
currentWatcherChild,
|
||||
FakeWatcherChild as FakeChild
|
||||
} from './parcel-watcher-process-test-child'
|
||||
} from './filesystem/watcher-process/parcel-watcher-process-test-child'
|
||||
|
||||
const { forkMock, existsSyncMock } = vi.hoisted(() => ({
|
||||
forkMock: vi.fn(),
|
||||
@@ -18,7 +18,7 @@ vi.mock('node:fs', () => ({
|
||||
rmSync: vi.fn()
|
||||
}))
|
||||
|
||||
import { createWatcherProcessSupervisor } from './parcel-watcher-process'
|
||||
import { createWatcherProcessSupervisor } from './filesystem/watcher-process/parcel-watcher-process'
|
||||
|
||||
const currentChild = (): FakeChild => currentWatcherChild(forkMock)
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import { type FSWatcher, mkdtempSync, rmSync, watch, writeFileSync } from 'node:
|
||||
import { tmpdir } from 'node:os'
|
||||
import { join } from 'node:path'
|
||||
import type * as ParcelWatcher from '@parcel/watcher'
|
||||
import { loadParcelWatcher } from './parcel-watcher-module-loader'
|
||||
import { loadParcelWatcher } from './filesystem/watcher-process/parcel-watcher-module-loader'
|
||||
import { hasShallowWatchDelivered, noteShallowWatchDelivered } from './shallow-watch-delivery-probe'
|
||||
import { errorMessage } from '../../shared/error-message'
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ import {
|
||||
acknowledgeWatcherSubscribe as ackSubscribe,
|
||||
currentWatcherChild,
|
||||
FakeWatcherChild as FakeChild
|
||||
} from './parcel-watcher-process-test-child'
|
||||
} from './filesystem/watcher-process/parcel-watcher-process-test-child'
|
||||
|
||||
const { forkMock, existsSyncMock } = vi.hoisted(() => ({
|
||||
forkMock: vi.fn(),
|
||||
@@ -21,10 +21,10 @@ import {
|
||||
CANARY_STALL_BACKOFF_INITIAL_MS,
|
||||
CANARY_STALL_BACKOFF_MAX_MS
|
||||
} from './parcel-watcher-delivery-canary'
|
||||
import { WatcherProcessCrashFuse } from './parcel-watcher-crash-fuse'
|
||||
import { WatcherProcessCrashFuse } from './filesystem/watcher-process/parcel-watcher-crash-fuse'
|
||||
import { WatcherDeliveryHealthMonitor } from './parcel-watcher-delivery-health'
|
||||
import type { WatcherProcessSubscriptionRecord } from './parcel-watcher-process-subscription'
|
||||
import { createWatcherProcessSupervisor } from './parcel-watcher-process'
|
||||
import type { WatcherProcessSubscriptionRecord } from './filesystem/watcher-process/parcel-watcher-process-subscription'
|
||||
import { createWatcherProcessSupervisor } from './filesystem/watcher-process/parcel-watcher-process'
|
||||
|
||||
describe('watcher delivery stall reporting', () => {
|
||||
beforeEach(() => {
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import type { WatcherProcessCrashFuse } from './parcel-watcher-crash-fuse'
|
||||
import type { WatcherProcessCrashFuse } from './filesystem/watcher-process/parcel-watcher-crash-fuse'
|
||||
import {
|
||||
CANARY_STALL_BACKOFF_INITIAL_MS,
|
||||
CANARY_STALL_BACKOFF_MAX_MS,
|
||||
type WatcherDeliveryHealth
|
||||
} from './parcel-watcher-delivery-canary'
|
||||
import type { WatcherProcessSubscriptionRecord } from './parcel-watcher-process-subscription'
|
||||
import type { WatcherProcessSubscriptionRecord } from './filesystem/watcher-process/parcel-watcher-process-subscription'
|
||||
|
||||
/** Rescan roots during OS event stalls with backoff, then once on recovery; the child keeps its streams. */
|
||||
export class WatcherDeliveryHealthMonitor {
|
||||
|
||||
@@ -7,7 +7,7 @@ import {
|
||||
MISSING_FILE_SWEEP_INTERVAL_MS,
|
||||
startShallowFileWatcher
|
||||
} from './parcel-watcher-shallow-file-subscription'
|
||||
import type { ShallowWatcherSubscription } from './parcel-watcher-shallow-subscription'
|
||||
import type { ShallowWatcherSubscription } from './filesystem/watcher-process/parcel-watcher-shallow-subscription'
|
||||
|
||||
let commonDir: string
|
||||
let subscription: ShallowWatcherSubscription | null
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { statSync } from 'node:fs'
|
||||
import { join } from 'node:path'
|
||||
import type { Event as ParcelWatcherEvent } from '@parcel/watcher'
|
||||
import type { ShallowWatcherSubscription } from './parcel-watcher-shallow-subscription'
|
||||
import type { ShallowWatcherSubscription } from './filesystem/watcher-process/parcel-watcher-shallow-subscription'
|
||||
import { watchFileAcrossReplacement, type RebindingFileWatch } from './rebinding-file-watch'
|
||||
|
||||
// Rebind missed replacements; Git metadata polling provides the shorter staleness backstop.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { WatcherProcessFailure } from './parcel-watcher-process-failure'
|
||||
import type { WatcherProcessHooks } from './parcel-watcher-process-subscription'
|
||||
import { WatcherProcessFailure } from './filesystem/watcher-process/parcel-watcher-process-failure'
|
||||
import type { WatcherProcessHooks } from './filesystem/watcher-process/parcel-watcher-process-subscription'
|
||||
import { PromiseSettlementWaiters } from '../../shared/promise-settlement-waiters'
|
||||
|
||||
const DEFAULT_QUARANTINE_WAIT_TIMEOUT_MS = 60_000
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { WatcherProcessFailure } from './parcel-watcher-process-failure'
|
||||
import { WatcherProcessFailure } from './filesystem/watcher-process/parcel-watcher-process-failure'
|
||||
|
||||
export class RuntimeWatcherPoolLifecycle {
|
||||
readonly isolatedRoots = new Set<string>()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { expect, it, vi } from 'vitest'
|
||||
import { RuntimeWatcherProcessPool } from './runtime-watcher-process-pool'
|
||||
import type { WatcherProcessHooks } from './parcel-watcher-process-subscription'
|
||||
import { WatcherProcessFailure } from './parcel-watcher-process-failure'
|
||||
import type { WatcherProcessHooks } from './filesystem/watcher-process/parcel-watcher-process-subscription'
|
||||
import { WatcherProcessFailure } from './filesystem/watcher-process/parcel-watcher-process-failure'
|
||||
|
||||
function supervisor() {
|
||||
const pending = Promise.withResolvers<void>()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { WatcherProcessSupervisor } from './parcel-watcher-process-supervisor'
|
||||
import type { WatcherProcessSupervisor } from './filesystem/watcher-process/parcel-watcher-process-supervisor'
|
||||
|
||||
export type RuntimeWatcherPoolSupervisor = Pick<WatcherProcessSupervisor, 'dispose' | 'subscribe'> &
|
||||
Partial<Pick<WatcherProcessSupervisor, 'disposeAndWait'>>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { WatcherProcessFailure } from './parcel-watcher-process-failure'
|
||||
import type { WatcherProcessFailure } from './filesystem/watcher-process/parcel-watcher-process-failure'
|
||||
|
||||
/** Retain exact failed-child ownership until its native handles are gone. */
|
||||
export class RuntimeWatcherPredecessorBarriers {
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import { WatcherProcessFailure } from './parcel-watcher-process-failure'
|
||||
import type { WatcherProcessSubscribeOptions } from './parcel-watcher-process-protocol'
|
||||
import { WatcherProcessFailure } from './filesystem/watcher-process/parcel-watcher-process-failure'
|
||||
import type { WatcherProcessSubscribeOptions } from './filesystem/watcher-process/parcel-watcher-process-protocol'
|
||||
import type {
|
||||
WatcherProcessCallback,
|
||||
WatcherProcessHooks,
|
||||
WatcherProcessSubscription
|
||||
} from './parcel-watcher-process-subscription'
|
||||
} from './filesystem/watcher-process/parcel-watcher-process-subscription'
|
||||
import { RuntimeWatcherProcessPool } from './runtime-watcher-process-pool'
|
||||
|
||||
type InstalledSubscription = {
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { isWatcherProcessFailure, WatcherProcessFailure } from './parcel-watcher-process-failure'
|
||||
import { WatcherProcessSupervisor } from './parcel-watcher-process-supervisor'
|
||||
import type { WatcherProcessSubscribeOptions } from './parcel-watcher-process-protocol'
|
||||
import * as failures from './filesystem/watcher-process/parcel-watcher-process-failure'
|
||||
import { WatcherProcessSupervisor } from './filesystem/watcher-process/parcel-watcher-process-supervisor'
|
||||
import type { WatcherProcessSubscribeOptions } from './filesystem/watcher-process/parcel-watcher-process-protocol'
|
||||
import type {
|
||||
WatcherProcessCallback,
|
||||
WatcherProcessHooks,
|
||||
WatcherProcessSubscription
|
||||
} from './parcel-watcher-process-subscription'
|
||||
} from './filesystem/watcher-process/parcel-watcher-process-subscription'
|
||||
import { RuntimeWatcherPendingAssignment } from './runtime-watcher-pending-assignment'
|
||||
import { RuntimeWatcherDisposalOwners } from './runtime-watcher-disposal-owners'
|
||||
import { RuntimeWatcherPoolLifecycle } from './runtime-watcher-pool-lifecycle'
|
||||
@@ -105,7 +105,7 @@ export class RuntimeWatcherProcessPool {
|
||||
unsubscribePromise ??= subscription.unsubscribe().then(
|
||||
() => releaseAssignment(),
|
||||
(error: unknown) => {
|
||||
if (isWatcherProcessFailure(error) && error.scope === 'supervisor') {
|
||||
if (failures.isWatcherProcessFailure(error) && error.scope === 'supervisor') {
|
||||
this.retireSlot(slot, error)
|
||||
} else {
|
||||
releaseAssignment()
|
||||
@@ -121,7 +121,7 @@ export class RuntimeWatcherProcessPool {
|
||||
/** Kill every pooled watcher child (production shutdown or test reset). */
|
||||
dispose(): void {
|
||||
this.lifecycle.dispose()
|
||||
const disposedError = new WatcherProcessFailure(
|
||||
const disposedError = new failures.WatcherProcessFailure(
|
||||
'file watcher supervisor disposed',
|
||||
'supervisor',
|
||||
'supervisor_disposed'
|
||||
@@ -163,7 +163,7 @@ export class RuntimeWatcherProcessPool {
|
||||
): RuntimeWatcherPoolAssignment | Promise<RuntimeWatcherPoolAssignment> {
|
||||
this.predecessorBarriers.throwIfRetained(dir)
|
||||
if (this.lifecycle.failedQuarantineRoots.has(dir)) {
|
||||
throw new WatcherProcessFailure(
|
||||
throw new failures.WatcherProcessFailure(
|
||||
'file watcher process failed again in quarantine',
|
||||
'supervisor',
|
||||
'supervisor_crash_fuse'
|
||||
@@ -253,7 +253,7 @@ export class RuntimeWatcherProcessPool {
|
||||
return slot
|
||||
}
|
||||
|
||||
private retireSlot(slot: RuntimeWatcherPoolSlot, error: WatcherProcessFailure): void {
|
||||
private retireSlot(slot: RuntimeWatcherPoolSlot, error: failures.WatcherProcessFailure): void {
|
||||
if (slot.retired) {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { WatcherProcessFailure } from './parcel-watcher-process-failure'
|
||||
import { WatcherProcessFailure } from './filesystem/watcher-process/parcel-watcher-process-failure'
|
||||
|
||||
type QuarantineWaiter<T> = {
|
||||
dir: string
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import {
|
||||
isWatcherProcessFailure,
|
||||
type WatcherProcessFailure
|
||||
} from './parcel-watcher-process-failure'
|
||||
} from './filesystem/watcher-process/parcel-watcher-process-failure'
|
||||
|
||||
export function handleRuntimeWatcherSubscriptionFailure(
|
||||
error: unknown,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { stat } from 'node:fs/promises'
|
||||
import { join } from 'node:path'
|
||||
import { subscribeViaWatcherProcess } from './parcel-watcher-process'
|
||||
import { isWatcherProcessFailure } from './parcel-watcher-process-failure'
|
||||
import { subscribeViaWatcherProcess } from './filesystem/watcher-process/parcel-watcher-process'
|
||||
import { isWatcherProcessFailure } from './filesystem/watcher-process/parcel-watcher-process-failure'
|
||||
import type { WorktreeBaseWatchTarget } from './worktree-base-directory-event-filter'
|
||||
import type {
|
||||
WorktreeBasePollEvent,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import { WatcherProcessFailure } from './parcel-watcher-process-failure'
|
||||
import { WatcherProcessFailure } from './filesystem/watcher-process/parcel-watcher-process-failure'
|
||||
import { GIT_COMMON_NATIVE_UPGRADE_INTERVAL_MS } from './worktree-git-common-native-upgrade-poll'
|
||||
|
||||
const { pollingMock, statMock, subscribeMock } = vi.hoisted(() => ({
|
||||
@@ -9,7 +9,9 @@ const { pollingMock, statMock, subscribeMock } = vi.hoisted(() => ({
|
||||
}))
|
||||
|
||||
vi.mock('node:fs/promises', () => ({ stat: statMock }))
|
||||
vi.mock('./parcel-watcher-process', () => ({ subscribeViaWatcherProcess: subscribeMock }))
|
||||
vi.mock('./filesystem/watcher-process/parcel-watcher-process', () => ({
|
||||
subscribeViaWatcherProcess: subscribeMock
|
||||
}))
|
||||
vi.mock('./worktree-git-common-polling', () => ({ startGitCommonPolling: pollingMock }))
|
||||
|
||||
import { startGitCommonNarrowWatch } from './worktree-git-common-narrow-watch'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { CRASH_FUSE_COOLDOWN_INITIAL_MS } from './parcel-watcher-crash-fuse'
|
||||
import { CRASH_FUSE_COOLDOWN_INITIAL_MS } from './filesystem/watcher-process/parcel-watcher-crash-fuse'
|
||||
|
||||
// Retry when the crash fuse half-opens so fallback polling does not remain permanent until restart.
|
||||
export const GIT_COMMON_NATIVE_UPGRADE_INTERVAL_MS = CRASH_FUSE_COOLDOWN_INITIAL_MS
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { join } from 'node:path'
|
||||
import { subscribeViaWatcherProcess } from './parcel-watcher-process'
|
||||
import type { WatcherProcessSubscription } from './parcel-watcher-process-subscription'
|
||||
import { subscribeViaWatcherProcess } from './filesystem/watcher-process/parcel-watcher-process'
|
||||
import type { WatcherProcessSubscription } from './filesystem/watcher-process/parcel-watcher-process-subscription'
|
||||
import type {
|
||||
WorktreeBasePollEvent,
|
||||
WorktreeBaseSubscription,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { join, resolve } from 'node:path'
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import { subscribeViaWatcherProcess } from './parcel-watcher-process'
|
||||
import type { WatcherProcessCallback } from './parcel-watcher-process-subscription'
|
||||
import { subscribeViaWatcherProcess } from './filesystem/watcher-process/parcel-watcher-process'
|
||||
import type { WatcherProcessCallback } from './filesystem/watcher-process/parcel-watcher-process-subscription'
|
||||
import { startGitCommonPolling } from './worktree-git-common-polling'
|
||||
import { startGitCommonNarrowWatch } from './worktree-git-common-narrow-watch'
|
||||
import { createGitCommonWatchReconciliation } from './worktree-git-common-watch-reconciliation'
|
||||
@@ -11,7 +11,9 @@ import type {
|
||||
} from './worktree-base-directory-poller'
|
||||
|
||||
vi.mock('node:fs/promises', () => ({ stat: vi.fn(async () => ({ isDirectory: () => true })) }))
|
||||
vi.mock('./parcel-watcher-process', () => ({ subscribeViaWatcherProcess: vi.fn() }))
|
||||
vi.mock('./filesystem/watcher-process/parcel-watcher-process', () => ({
|
||||
subscribeViaWatcherProcess: vi.fn()
|
||||
}))
|
||||
vi.mock('./worktree-git-common-polling', () => ({ startGitCommonPolling: vi.fn() }))
|
||||
|
||||
const commonDirPath = resolve('repository', '.git')
|
||||
|
||||
@@ -5,12 +5,12 @@ import { performance as nodePerformance } from 'node:perf_hooks'
|
||||
import { updateActiveGitStatusRefBinding } from './worktree-git-status-ref-watch'
|
||||
import { tmpdir } from 'node:os'
|
||||
import { join } from 'node:path'
|
||||
import { subscribeViaWatcherProcess } from './parcel-watcher-process'
|
||||
import { WatcherProcessFailure } from './parcel-watcher-process-failure'
|
||||
import { subscribeViaWatcherProcess } from './filesystem/watcher-process/parcel-watcher-process'
|
||||
import { WatcherProcessFailure } from './filesystem/watcher-process/parcel-watcher-process-failure'
|
||||
import type {
|
||||
WatcherProcessCallback,
|
||||
WatcherProcessHooks
|
||||
} from './parcel-watcher-process-subscription'
|
||||
} from './filesystem/watcher-process/parcel-watcher-process-subscription'
|
||||
import type { WorktreeBaseWatchTarget } from './worktree-base-directory-event-filter'
|
||||
import type {
|
||||
WorktreeBasePollEvent,
|
||||
@@ -18,7 +18,7 @@ import type {
|
||||
} from './worktree-base-directory-poller'
|
||||
import { startGitCommonWatch } from './worktree-git-common-watch'
|
||||
|
||||
vi.mock('./parcel-watcher-process', () => ({
|
||||
vi.mock('./filesystem/watcher-process/parcel-watcher-process', () => ({
|
||||
subscribeViaWatcherProcess: vi.fn()
|
||||
}))
|
||||
const { statCalls } = vi.hoisted(() => ({ statCalls: [] as string[] }))
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { ChildProcessWithoutNullStreams } from 'node:child_process'
|
||||
import { PhysicalExitTracker } from '../../shared/physical-exit-tracker'
|
||||
import { WatcherProcessFailure } from './parcel-watcher-process-failure'
|
||||
import { WatcherProcessFailure } from './filesystem/watcher-process/parcel-watcher-process-failure'
|
||||
|
||||
export const WSL_WATCHER_PHYSICAL_EXIT_TIMEOUT_MS = 8_000
|
||||
|
||||
|
||||
@@ -126,7 +126,8 @@ async function startOrcadRuntime(
|
||||
const { AgentStatusObservedPaneIdentities, AgentStatusObservedPaneIdentityCapture } =
|
||||
await import('../runtime/agent-status-observed-pane-identity')
|
||||
|
||||
const { disposeWatcherProcessAndWait } = await import('../ipc/parcel-watcher-process')
|
||||
const { disposeWatcherProcessAndWait } =
|
||||
await import('../ipc/filesystem/watcher-process/parcel-watcher-process')
|
||||
|
||||
let paneGridsForShutdown: { flushPaneGrids(): Promise<void> | null } | null = null
|
||||
let profileStoreForShutdown:
|
||||
|
||||
@@ -3,7 +3,7 @@ import { tmpdir } from 'node:os'
|
||||
import { join } from 'node:path'
|
||||
import { afterEach, beforeEach, describe, expect, it } from 'vitest'
|
||||
import { getAppEnvironment } from '../../shared/app-environment'
|
||||
import { getWatcherProcessEntryPath } from '../ipc/parcel-watcher-entry-path'
|
||||
import { getWatcherProcessEntryPath } from '../ipc/filesystem/watcher-process/parcel-watcher-entry-path'
|
||||
import {
|
||||
AI_VAULT_SERVICE_ENTRY_FILENAME,
|
||||
getAiVaultServiceEntryPath
|
||||
|
||||
@@ -3,7 +3,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import type {
|
||||
WatcherProcessCallback,
|
||||
WatcherProcessHooks
|
||||
} from '../ipc/parcel-watcher-process-subscription'
|
||||
} from '../ipc/filesystem/watcher-process/parcel-watcher-process-subscription'
|
||||
import { PtySpawnHealthTimeoutError } from '../daemon/pty-subprocess/spawn-preflight'
|
||||
import { preflightOrcadNativeRuntime } from './orcad-runtime-native-preflight'
|
||||
import { WindowsProcessTableTimeoutError } from '../windows/windows-process-table-timeout-error'
|
||||
@@ -41,7 +41,7 @@ vi.mock('node:fs/promises', () => ({
|
||||
writeFile: fixture.write,
|
||||
rm: fixture.remove
|
||||
}))
|
||||
vi.mock('../ipc/parcel-watcher-process-supervisor', () => ({
|
||||
vi.mock('../ipc/filesystem/watcher-process/parcel-watcher-process-supervisor', () => ({
|
||||
WatcherProcessSupervisor: class {
|
||||
subscribe = fixture.subscribe
|
||||
dispose = fixture.dispose
|
||||
|
||||
@@ -6,8 +6,8 @@ import {
|
||||
PTY_SPAWN_HEALTH_TIMEOUT_MS,
|
||||
runPtySpawnHealthProbe
|
||||
} from '../daemon/pty-subprocess/spawn-preflight'
|
||||
import { WatcherProcessSupervisor } from '../ipc/parcel-watcher-process-supervisor'
|
||||
import { resolveWatcherProcessEntryPath } from '../ipc/parcel-watcher-entry-path'
|
||||
import { WatcherProcessSupervisor } from '../ipc/filesystem/watcher-process/parcel-watcher-process-supervisor'
|
||||
import { resolveWatcherProcessEntryPath } from '../ipc/filesystem/watcher-process/parcel-watcher-entry-path'
|
||||
import { resolveOrcadInstallRoot } from './orcad-app-paths'
|
||||
import {
|
||||
isWindowsProcessTableAvailable,
|
||||
|
||||
@@ -2,7 +2,7 @@ import { mkdtemp, mkdir, rm, symlink, truncate, writeFile } from 'node:fs/promis
|
||||
import { tmpdir } from 'node:os'
|
||||
import { join } from 'node:path'
|
||||
import { afterEach, describe, expect, it, vi } from 'vitest'
|
||||
import { disposeWatcherProcess } from '../ipc/parcel-watcher-process'
|
||||
import { disposeWatcherProcess } from '../ipc/filesystem/watcher-process/parcel-watcher-process'
|
||||
import { fingerprintPluginConsent } from '../../shared/plugins/plugin-consent-fingerprint'
|
||||
import { pluginManifestSchema, type PluginManifest } from '../../shared/plugins/plugin-manifest'
|
||||
import {
|
||||
|
||||
@@ -4,8 +4,8 @@ import { mkdir, rename, rm, stat, symlink } from 'node:fs/promises'
|
||||
import type * as FsPromises from 'node:fs/promises'
|
||||
import { join } from 'node:path'
|
||||
import { afterEach, beforeEach, expect, it, vi } from 'vitest'
|
||||
import { subscribeViaWatcherProcess } from '../ipc/parcel-watcher-process'
|
||||
import type { WatcherProcessCallback } from '../ipc/parcel-watcher-process-subscription'
|
||||
import { subscribeViaWatcherProcess } from '../ipc/filesystem/watcher-process/parcel-watcher-process'
|
||||
import type { WatcherProcessCallback } from '../ipc/filesystem/watcher-process/parcel-watcher-process-subscription'
|
||||
import {
|
||||
createAliasedWatcherRoot,
|
||||
removeAliasedWatcherRoot,
|
||||
@@ -15,7 +15,9 @@ import { watcherDirectoryIdentity } from '../ipc/watcher-directory-identity'
|
||||
import { PluginDevWatcher } from './plugin-dev-watcher'
|
||||
import { PluginServiceHousekeeping } from './plugin-service-housekeeping'
|
||||
|
||||
vi.mock('../ipc/parcel-watcher-process', () => ({ subscribeViaWatcherProcess: vi.fn() }))
|
||||
vi.mock('../ipc/filesystem/watcher-process/parcel-watcher-process', () => ({
|
||||
subscribeViaWatcherProcess: vi.fn()
|
||||
}))
|
||||
vi.mock('node:fs', async () => {
|
||||
const actual = await vi.importActual<typeof Fs>('node:fs')
|
||||
return { ...actual, statSync: vi.fn(actual.statSync) }
|
||||
|
||||
@@ -4,12 +4,12 @@ import type * as Fs from 'node:fs'
|
||||
import { mkdir, realpath, rename, rm, stat, symlink, writeFile } from 'node:fs/promises'
|
||||
import type * as FsPromises from 'node:fs/promises'
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import { subscribeViaWatcherProcess } from '../ipc/parcel-watcher-process'
|
||||
import { subscribeViaWatcherProcess } from '../ipc/filesystem/watcher-process/parcel-watcher-process'
|
||||
import type {
|
||||
WatcherProcessCallback,
|
||||
WatcherProcessHooks
|
||||
} from '../ipc/parcel-watcher-process-subscription'
|
||||
import type { WatcherProcessSubscribeOptions } from '../ipc/parcel-watcher-process-protocol'
|
||||
} from '../ipc/filesystem/watcher-process/parcel-watcher-process-subscription'
|
||||
import type { WatcherProcessSubscribeOptions } from '../ipc/filesystem/watcher-process/parcel-watcher-process-protocol'
|
||||
import {
|
||||
createAliasedWatcherRoot as createNativeAliasedWatcherRoot,
|
||||
removeAliasedWatcherRoot,
|
||||
@@ -18,7 +18,9 @@ import {
|
||||
import { PluginDevWatcher } from './plugin-dev-watcher'
|
||||
import { PluginServiceHousekeeping } from './plugin-service-housekeeping'
|
||||
|
||||
vi.mock('../ipc/parcel-watcher-process', () => ({ subscribeViaWatcherProcess: vi.fn() }))
|
||||
vi.mock('../ipc/filesystem/watcher-process/parcel-watcher-process', () => ({
|
||||
subscribeViaWatcherProcess: vi.fn()
|
||||
}))
|
||||
vi.mock('node:fs', async () => {
|
||||
const actual = await vi.importActual<typeof Fs>('node:fs')
|
||||
return { ...actual, statSync: vi.fn(actual.statSync) }
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { realpathSync, statSync, type BigIntStats } from 'node:fs'
|
||||
import { realpath, stat } from 'node:fs/promises'
|
||||
import { basename, dirname, resolve } from 'node:path'
|
||||
import { subscribeViaWatcherProcess } from '../ipc/parcel-watcher-process'
|
||||
import type { WatcherProcessSubscribeOptions } from '../ipc/parcel-watcher-process-protocol'
|
||||
import type { WatcherProcessSubscription } from '../ipc/parcel-watcher-process-subscription'
|
||||
import { subscribeViaWatcherProcess } from '../ipc/filesystem/watcher-process/parcel-watcher-process'
|
||||
import type { WatcherProcessSubscribeOptions } from '../ipc/filesystem/watcher-process/parcel-watcher-process-protocol'
|
||||
import type { WatcherProcessSubscription } from '../ipc/filesystem/watcher-process/parcel-watcher-process-subscription'
|
||||
import { resolveWatcherRootPaths } from '../ipc/watcher-event-root-path-rewrite'
|
||||
import { watcherDirectoryIdentity } from '../ipc/watcher-directory-identity'
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@ import type {
|
||||
WatcherProcessCallback,
|
||||
WatcherProcessHooks,
|
||||
WatcherProcessSubscription
|
||||
} from '../ipc/parcel-watcher-process-subscription'
|
||||
import { WatcherProcessFailure } from '../ipc/parcel-watcher-process-failure'
|
||||
} from '../ipc/filesystem/watcher-process/parcel-watcher-process-subscription'
|
||||
import { WatcherProcessFailure } from '../ipc/filesystem/watcher-process/parcel-watcher-process-failure'
|
||||
import {
|
||||
WATCHER_IGNORE_DIRS,
|
||||
buildParcelWatcherIgnoreOptions
|
||||
@@ -21,7 +21,7 @@ const {
|
||||
subscribeViaRuntimeWatcherProcessMock: vi.fn()
|
||||
}))
|
||||
|
||||
vi.mock('../ipc/parcel-watcher-process', () => ({
|
||||
vi.mock('../ipc/filesystem/watcher-process/parcel-watcher-process', () => ({
|
||||
forgetRuntimeWatcherProcessRoot: forgetRuntimeWatcherProcessRootMock,
|
||||
resetRuntimeWatcherProcessForTest: resetRuntimeWatcherProcessForTestMock,
|
||||
subscribeViaRuntimeWatcherProcess: subscribeViaRuntimeWatcherProcessMock
|
||||
|
||||
@@ -3,13 +3,13 @@ import {
|
||||
forgetRuntimeWatcherProcessRoot,
|
||||
resetRuntimeWatcherProcessForTest,
|
||||
subscribeViaRuntimeWatcherProcess
|
||||
} from '../ipc/parcel-watcher-process'
|
||||
import type { WatcherProcessEvent } from '../ipc/parcel-watcher-process-protocol'
|
||||
import type { WatcherProcessSubscription } from '../ipc/parcel-watcher-process-subscription'
|
||||
} from '../ipc/filesystem/watcher-process/parcel-watcher-process'
|
||||
import type { WatcherProcessEvent } from '../ipc/filesystem/watcher-process/parcel-watcher-process-protocol'
|
||||
import type { WatcherProcessSubscription } from '../ipc/filesystem/watcher-process/parcel-watcher-process-subscription'
|
||||
import {
|
||||
isWatcherProcessFailure,
|
||||
type WatcherProcessFailure
|
||||
} from '../ipc/parcel-watcher-process-failure'
|
||||
} from '../ipc/filesystem/watcher-process/parcel-watcher-process-failure'
|
||||
import {
|
||||
WATCHER_IGNORE_DIRS,
|
||||
buildParcelWatcherIgnoreOptions
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { normalizeRuntimePathForComparison } from '../../../../shared/cross-platform-path'
|
||||
import { isWatcherProcessFailure } from '../../../ipc/parcel-watcher-process-failure'
|
||||
import { isWatcherProcessFailure } from '../../../ipc/filesystem/watcher-process/parcel-watcher-process-failure'
|
||||
|
||||
const pendingRuntimeFileWatcherUnsubscribes = new Set<Promise<void>>()
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { FsChangeEvent } from '../../../../shared/filesystem-entry-types'
|
||||
import { PhysicalExitTracker } from '../../../../shared/physical-exit-tracker'
|
||||
import { watch as watchFs } from 'node:fs'
|
||||
import { WatcherProcessFailure } from '../../../ipc/parcel-watcher-process-failure'
|
||||
import { WatcherProcessFailure } from '../../../ipc/filesystem/watcher-process/parcel-watcher-process-failure'
|
||||
import { watchBatchFlushDelayMs } from '../../../../shared/filesystem-watch-batch-window'
|
||||
|
||||
// Why: each emit is a whole-tree overflow refresh, so pace it slower than precise watcher batches.
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user