Skip to content

ci: speed up validation feedback#591

Closed
JustYannicc wants to merge 118 commits into
SuperCmdLabs:mainfrom
JustYannicc:codex/perf-wave4-ci-validation-signal
Closed

ci: speed up validation feedback#591
JustYannicc wants to merge 118 commits into
SuperCmdLabs:mainfrom
JustYannicc:codex/perf-wave4-ci-validation-signal

Conversation

@JustYannicc

@JustYannicc JustYannicc commented Jul 4, 2026

Copy link
Copy Markdown
Collaborator

What changed

  • Reordered project checks so i18n, main build/typecheck, and renderer typecheck run before unit and perf tests.
  • Added npm run test:ci, backed by scripts/run-node-tests.mjs --exclude-perf, so CI unit tests do not rerun browser/file/root perf harnesses owned by test:perf:ci.
  • Added structured perf budget evidence for browser, file, and root search CI logs, including budget utilization.

Why

  • TypeScript and i18n failures were previously hidden behind the full unit suite and perf budgets.
  • CI was duplicating standalone perf harness work in npm test and npm run test:perf:ci.
  • File perf CI passed budgets but did not leave the same audit-friendly evidence as browser/root perf logs.

Compatibility impact

  • Validation-only change; no app runtime behavior is changed.
  • npm test remains unchanged for the broad local test sweep.
  • CI now uses npm run test:ci for non-perf Node tests and keeps perf budgets in npm run test:perf:ci.

How tested

  • SUPERCMD_SKIP_ELECTRON_TESTS=1 npm run check:i18n
  • SUPERCMD_SKIP_ELECTRON_TESTS=1 npm run build:main
  • SUPERCMD_SKIP_ELECTRON_TESTS=1 npm run typecheck:renderer
  • SUPERCMD_SKIP_ELECTRON_TESTS=1 npm run test:ci
  • SUPERCMD_SKIP_ELECTRON_TESTS=1 npm run test:perf:ci
  • SUPERCMD_SKIP_ELECTRON_TESTS=1 npm run build:renderer
  • Focused: SUPERCMD_SKIP_ELECTRON_TESTS=1 SUPERCMD_PERF_CI=1 SUPERCMD_PERF_REPORT=1 node --test scripts/test-file-search-perf-harness.mjs

Performance evidence

  • Before local baseline: npm test passed in 4.90s and included perf harness work; test:perf:ci passed in 30.11s.
  • After local validation: test:ci passed in 3.70s, running 73 Node test files and excluding 3 perf harness files; test:perf:ci passed in 28.59s.
  • Final browser 50k CI evidence: index 675.62ms / 7000ms, ranked max avg 20.25ms / 260ms, ordered max avg 19.22ms / 260ms, ranked event-loop delay 415.84ms / 7500ms, ordered event-loop delay 385.09ms / 7500ms.
  • Final file CI evidence: 33,964 indexed entries, initial index 929.898ms / 60000ms, path query p95 15.779ms / 3000ms, event-loop p95 6.432ms / 5000ms, cleanup completed.
  • Final root CI evidence: optimized median 599.912ms / 900ms, indexed median 86.795ms / 350ms, compile median 63.686ms / 500ms, indexed speedup 21.873x / 1.05x minimum.

Stack validation

  • Base commit verified at 206eab8280a2eb91a57e4e74ea6df99e45a55cb4.
  • Before timings: i18n 0.19s, main build/typecheck 1.46s, renderer typecheck 3.59s, renderer build 4.44s.
  • Final timings: i18n 0.16s, main build/typecheck 1.35s, renderer typecheck 3.43s, renderer build 4.10s.
  • Main process TypeScript is clean via npm run build:main.
  • Renderer TypeScript is clean via npm run typecheck:renderer.
  • Codex LSP: TypeScript diagnostics clean for touched .mjs files; Biome unavailable for JSON; YAML LSP configured but crashed due missing vscode-languageserver-protocol.

Replaces

  • Replaces the prior CI ordering where npm test and npm run test:perf:ci ran before i18n/typecheck feedback.

…perf-wave2-integration-stack-20260704

# Conflicts:
#	src/renderer/src/raycast-api/list-runtime.tsx
…perf-wave2-integration-stack-20260704

# Conflicts:
#	scripts/bench-script-command-discovery.mjs
#	scripts/benchmark-file-search-delete-batch.mjs
#	scripts/lib/script-command-runner-harness.mjs
#	scripts/lib/ts-import.mjs
#	scripts/test-file-search-delete-batch.mjs
#	scripts/test-script-command-runner.mjs
#	src/main/file-search-index.ts
#	src/main/main.ts
…perf-wave2-integration-stack-20260704

# Conflicts:
#	scripts/lib/script-command-runner-harness.mjs
#	scripts/lib/ts-import.mjs
#	scripts/test-extension-lifecycle-sandbox.mjs
#	scripts/test-script-command-runner.mjs
#	src/main/main.ts
#	src/renderer/src/ExtensionView.tsx
…perf-wave2-integration-stack-20260704

# Conflicts:
#	.github/workflows/project-checks.yml
#	scripts/test-root-search-perf.mjs
#	src/renderer/src/CameraExtension.tsx
#	src/renderer/src/raycast-api/list-runtime.tsx
…erf-wave3-integration-stack-20260704

# Conflicts:
#	package.json
#	scripts/measure-extension-bundle-cache.mjs
#	scripts/test-icon-runtime-file-icon-cache.mjs
#	src/main/extension-runner.ts
#	src/renderer/src/components/HiddenExtensionRunners.tsx
#	src/renderer/src/raycast-api/icon-runtime-render.tsx
…/perf-wave3-integration-stack-20260704

# Conflicts:
#	scripts/test-browser-search-performance.mjs
#	scripts/test-root-search-perf.mjs
…ignal' into codex/perf-wave4-ci-validation-signal

# Conflicts:
#	.github/workflows/project-checks.yml
#	scripts/test-file-search-perf-harness.mjs
@JustYannicc JustYannicc changed the title ci: improve validation feedback signal ci: speed up validation feedback Jul 4, 2026
@JustYannicc

Copy link
Copy Markdown
Collaborator Author

Superseded by #600, which consolidates the CI validation feedback changes and reruns the full requested project-checks stack.

@JustYannicc JustYannicc closed this Jul 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant