inspector/scripts
Repository files (latest commit first)
Filename Latest commit message Latest commit date
cliffhall 29e3ce95b8 chore(smoke): run the web smokes against a throwaway catalog
`startProdWebServer` spread `process.env` without setting `MCP_CATALOG_PATH`,
so `smoke:web`, `smoke:web:browser`, and `smoke:web:app` all ran against the
developer's real `~/.mcp-inspector/mcp.json` — unlike `smoke:cli` / `smoke:tui`,
which have always driven a temp `--catalog`.

That made the web smokes both destructive and non-deterministic.
`smoke:web:app`'s deep link persists a `deep-link` server row, so a second run
finds it already on disk, racing hydration: the deep-link effect misses it in
`servers`, POSTs `addServer` anyway, and the backend answers 409. The app
swallows that 409 by design (App.tsx:2842) so the smoke still passed, but it
reported a spurious non-fatal console error that was really just residue from
the previous run.

Give the helper its own temp catalog dir and clean it up in `stop()` via
`removeSafe`, so cleanup can never turn a passing smoke red. Isolation lives in
the shared helper rather than per script, since every web smoke needs it.

Only the catalog is redirected — other per-user state under `~/.mcp-inspector`
stays shared, since isolating it means redirecting HOME wholesale, which would
also move the npx and Playwright caches these smokes depend on.

Verified: `smoke:web:app` twice in a row is now clean both times (previously
the second run reported the 409), the real catalog's mtime is unchanged, and no
temp dirs leak. CI never saw this — a fresh HOME per run made every CI run look
like a first run.

Closes #1977

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HDdo1rNRVQnVRRdsqSrvG3
Signed-off-by: cliffhall <cliff@futurescale.com>
2026-08-11 14:32:20 -04:00
..
lib chore(smoke): run the web smokes against a throwaway catalog 2026-08-11 14:32:20 -04:00
install-clients.mjs feat: port CLI, TUI, and launcher from v1.5 into v2 (#1452) 2026-06-14 20:27:49 -04:00
pack-and-verify.mjs fix: ship clients/web/static so the MCP Apps sandbox proxy loads 2026-08-05 17:46:10 -04:00
smoke-cli.mjs feat(web): enforce localhost-only binding; expand loopback origin allow-list (#1796) 2026-07-26 22:15:10 -04:00
smoke-launcher.mjs refactor: self-validating clients, fast validate + separate coverage/smoke (#1504) (#1505) 2026-06-21 11:41:33 -04:00
smoke-tui.mjs fix(scripts): await the pack:verify web child's exit before removing its work dir (#1895) 2026-08-01 19:50:00 -04:00
smoke-web-app.mjs chore(smoke): run the web smokes against a throwaway catalog 2026-08-11 14:32:20 -04:00
smoke-web-browser.mjs chore(smoke): run the web smokes against a throwaway catalog 2026-08-11 14:32:20 -04:00
smoke-web.mjs chore(smoke): run the web smokes against a throwaway catalog 2026-08-11 14:32:20 -04:00
verify-build-gate.mjs chore(web): format-gate the ungated first-party TS/JS (server/, vite.config.ts, scripts/) (#1788) 2026-07-25 23:15:45 -04:00
verify-dep-lockstep.main.test.mjs chore(deps): enrol installs by package.json, and fail on a missing lockfile 2026-08-10 22:31:05 -04:00
verify-dep-lockstep.mjs chore(deps): enrol installs by package.json, and fail on a missing lockfile 2026-08-10 22:31:05 -04:00
verify-dep-lockstep.test.mjs chore(deps): check the declared lockfileVersion, not just the packages key 2026-08-10 22:23:32 -04:00
verify-format-coverage.main.test.mjs test(scripts): cover verify-format-coverage's sibling-guard vouch 2026-08-10 22:16:29 -04:00
verify-format-coverage.mjs chore(deps): scope the allowlist to a major, cover vitest.shared.mts, fix the vouch comment 2026-08-10 21:00:31 -04:00
verify-typecheck-coverage.mjs test(cli,tui): typecheck the __tests__ dirs (#1791) (#1799) 2026-07-27 12:05:35 -04:00
verify-typecheck-coverage.test.mjs test(cli,tui): typecheck the __tests__ dirs (#1791) (#1799) 2026-07-27 12:05:35 -04:00