singularity-forge/src/tests
Tom Boucher 7a413bb84f fix(web): resolve compiled .js modules for all subprocess calls under node_modules (#2320)
Node v24 unconditionally refuses .ts files under node_modules/ — even
with --experimental-transform-types. When GSD is installed globally via
npm, every web service subprocess that loads a .ts extension module
crashes with ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING.

Add resolveSubprocessModule() and buildSubprocessPrefixArgs() to
ts-subprocess-flags.ts. When packageRoot is under node_modules/ and the
compiled dist/*.js file exists, subprocess calls use the compiled JS
directly without TS flags or the resolve-ts.mjs loader.

Updated all 14 web service files: auto-dashboard, bridge, captures,
cleanup, doctor, export, forensics, history, hooks, recovery-diagnostics,
settings, skill-health, undo, and visualizer.

Fixes #2279

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 07:34:41 -06:00
..
integration feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
app-smoke.test.ts Improve startup performance with lazy extension loading (#1336) 2026-03-19 07:38:50 -06:00
artifact-manager.test.ts feat: TTSR + blob/artifact storage (ported from oh-my-pi) 2026-03-13 08:43:56 -06:00
auto-budget.test.ts refactor: extract 7 focused modules from auto.ts (#898) 2026-03-17 11:03:01 -05:00
auto-tool-tracking.test.ts refactor: extract 7 focused modules from auto.ts (#898) 2026-03-17 11:03:01 -05:00
bg-shell-persistence-cwd.test.ts fix/gsd-bg-shell-stale-cwd: normalize bg-shell worktree cwd detection 2026-03-16 17:02:58 -04:00
bg-shell-session-cleanup.test.ts fix: reap orphan-prone child processes across session churn (#920) 2026-03-17 13:14:51 -06:00
blob-store.test.ts test: replace shape-only assertions with value checks (#1875) 2026-03-21 15:25:10 -06:00
bundled-extension-paths.test.ts Fix packaging verification and path portability (#378) 2026-03-14 12:28:14 -06:00
ci_monitor.test.ts feat: add GitHub Workflows skill with CI workflow and ci_monitor tool (#294) 2026-03-13 22:31:17 -06:00
extension-discovery.test.ts fix: apply pi manifest opt-out to extension-discovery.ts (#1545) 2026-03-20 08:11:51 -06:00
extension-smoke.test.ts fix: google-search OAuth test mock and Windows path separator in smoke test 2026-03-16 11:56:46 -06:00
fetch-test-helpers.ts test: fix Assertion Roulette, Eager Test, and contract test regressions (#1938) 2026-03-21 21:24:15 -06:00
file-watcher.test.ts fix: prevent ensureGitignore from adding .gsd when tracked in git (#1364) (#1367) 2026-03-19 17:06:01 -06:00
google-search-auth.repro.test.ts fix: google-search OAuth test mock and Windows path separator in smoke test 2026-03-16 11:56:46 -06:00
gsd-web-launcher-contract.test.ts feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
headless-detection.test.ts fix: headless mode exits early on progress notifications containing 'complete' (#879) (#888) 2026-03-17 09:11:34 -06:00
headless-events.test.ts feat: add --events flag for JSONL stream filtering (#1000) 2026-03-17 17:35:44 -06:00
initial-gsd-header-filter.test.ts feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
llm-context-tavily.test.ts test: fix Assertion Roulette, Eager Test, and contract test regressions (#1938) 2026-03-21 21:24:15 -06:00
marketplace-discovery.test.ts fix: remove duplicate marketplace-discovery test 2026-03-17 16:18:45 -06:00
mcp-client-schema.test.ts fix(mcp): preserve args for mcp_call tool invocations (#1354) 2026-03-19 15:29:19 -06:00
mcp-server.test.ts fix: resolve CI failures in VS Code extension PR 2026-03-16 16:53:34 -05:00
native-search.test.ts fix: remove duplicate TUI header rendered on session_start (#1663) 2026-03-21 08:34:18 -06:00
node-modules-symlink.test.ts fix: add @gsd/pi-tui to test module resolver in dist-redirect (#1811) 2026-03-21 12:04:13 -06:00
non-extension-library.test.ts fix: silence spurious extension load error for non-extension libraries (#1709) (#1747) 2026-03-21 08:54:19 -06:00
postinstall.test.ts fix: strip clack UI from postinstall, keep silent Playwright download (#783) 2026-03-16 21:35:04 -06:00
provider.test.ts fix(search): consolidate duplicate Brave API helpers (#1010) 2026-03-17 18:06:23 -06:00
pty-chat-parser.test.ts feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
resource-loader.test.ts feat(gsd): activate matching skills in dispatched prompts (#1630) 2026-03-20 13:20:06 -06:00
resource-sync-staleness.test.ts fix: detect stale bundled resources via content fingerprint (#1193) 2026-03-18 11:06:09 -06:00
search-loop-guard.test.ts fix(search): keep duplicate-search loop guard armed (#2117) 2026-03-23 09:52:34 -06:00
search-provider-command.test.ts test: fix Assertion Roulette, Eager Test, and contract test regressions (#1938) 2026-03-21 21:24:15 -06:00
search-tavily.test.ts test: fix Assertion Roulette, Eager Test, and contract test regressions (#1938) 2026-03-21 21:24:15 -06:00
secret-scan.test.ts feat: add pre-commit secret scanner and CI secret detection (#1148) 2026-03-18 08:33:17 -06:00
startup-perf.test.ts perf: startup optimizations — pre-compiled extensions, compile cache, batch discovery (#2125) 2026-03-23 10:02:30 -06:00
tavily-helpers.test.ts test: fix Assertion Roulette, Eager Test, and contract test regressions (#1938) 2026-03-21 21:24:15 -06:00
terminal-cmux.test.ts feat: integrate cmux with gsd runtime (#1532) 2026-03-19 20:05:06 -06:00
token-counter.test.ts feat: add GitHub API client, diff-aware context, tiktoken token counting 2026-03-16 13:50:00 -05:00
tool-bootstrap.test.ts Fix packaging verification and path portability (#378) 2026-03-14 12:28:14 -06:00
ttsr-manager.test.ts fix: add barrel files for remote-questions, ttsr, and shared extensions (#1048) 2026-03-17 18:48:32 -06:00
ttsr-rule-loader.test.ts fix: add barrel files for remote-questions, ttsr, and shared extensions (#1048) 2026-03-17 18:48:32 -06:00
update-check.test.ts feat: add startup update check with 24h cache 2026-03-13 14:28:43 -03:00
url-utils.test.ts security: add SSRF protection to fetch_page tool 2026-03-16 13:35:48 -05:00
web-auth-token.test.ts fix(web): persist auth token in sessionStorage to survive page refreshes (#1877) 2026-03-21 15:25:27 -06:00
web-boot-node24.test.ts test(web): add regression tests for readdirSync in boot payload path (#2050) 2026-03-23 09:51:05 -06:00
web-bridge-contract.test.ts test(web): add regression tests for readdirSync in boot payload path (#2050) 2026-03-23 09:51:05 -06:00
web-bridge-terminal-contract.test.ts feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
web-cli-entry.test.ts feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
web-command-parity-contract.test.ts test: fix Assertion Roulette, Eager Test, and contract test regressions (#1938) 2026-03-21 21:24:15 -06:00
web-continuity-contract.test.ts feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
web-diagnostics-contract.test.ts test: replace shape-only assertions with value checks (#1875) 2026-03-21 15:25:10 -06:00
web-live-interaction-contract.test.ts feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
web-live-state-contract.test.ts feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
web-mode-cli.test.ts fix(web): kill stale server process before launch to prevent EADDRINUSE (#1934) (#2034) 2026-03-22 17:06:29 -06:00
web-mode-network-flags.test.ts feat: add --host, --port, --allowed-origins flags for web mode (#1847) (#1873) 2026-03-21 15:22:01 -06:00
web-multi-project-contract.test.ts feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
web-onboarding-contract.test.ts test(web): isolate onboarding contract env from host machine (#2119) 2026-03-23 09:53:02 -06:00
web-onboarding-presentation.test.ts feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
web-project-discovery-contract.test.ts feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
web-project-url.test.ts feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
web-recovery-diagnostics-contract.test.ts feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
web-session-parity-contract.test.ts feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
web-state-surfaces-contract.test.ts feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
web-subprocess-module-resolution.test.ts fix(web): resolve compiled .js modules for all subprocess calls under node_modules (#2320) 2026-03-24 07:34:41 -06:00
web-switch-project.test.ts feat(web): add "Change project root" button to web UI (#2355) 2026-03-24 07:18:05 -06:00
web-workflow-action-execution.test.ts feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
web-workflow-controls-contract.test.ts feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
welcome-screen.test.ts feat: feat(ui): minimal GSD welcome screen on startup (#1584) 2026-03-20 08:11:06 -06:00