ci: real local gate scripts and deterministic smoke harness (#97, #99)#108
Open
jmcte wants to merge 3 commits into
Open
ci: real local gate scripts and deterministic smoke harness (#97, #99)#108jmcte wants to merge 3 commits into
jmcte wants to merge 3 commits into
Conversation
Replace the placeholder run-fast-checks.sh / run-extended-validation.sh with the project's real gates (lint + test + build, plus the coverage threshold for extended), keeping them shell-safe for the self-hosted Synology public runner. A new ci-scripts test asserts the real checks are present and the placeholder text cannot regress back in. Make the registration smoke harness deterministic: the mock API now emits a stdout readiness sentinel and the test waits on it event-driven, failing fast on spawn error or early exit instead of polling a log file on a fixed interval that raced the test timeout. Closes #97 Closes #99 https://claude.ai/code/session_01QxQ71Yrf2Cn6zVfM4LY7AR
pheidon
previously approved these changes
May 15, 2026
3 tasks
#108 merged main after #109 landed without the env-isolation fix, so its doctor.test.ts missing-env/missing-host assertions failed on the self-hosted runner (GITHUB_PAT is exported there). Wrap those cases in withEnv to clear the relevant variables, matching the existing missing-env test pattern. Mirrors PR #110. https://claude.ai/code/session_01QxQ71Yrf2Cn6zVfM4LY7AR
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #97, closes #99.
Summary
#99 — real local CI gate scripts
scripts/ci/run-fast-checks.shnow runs the real cheap gate:pnpm install --frozen-lockfile→pnpm lint→pnpm test→pnpm build, shell-safe for the self-hosted Synology public runner (Corepack-activated pnpm, no sudo/extra installs).scripts/ci/run-extended-validation.shruns the fast checks plus the coverage-threshold gate (pnpm test:coverage), with a comment documenting that mutation testing intentionally stays a separate CI job.test/ci-scripts.test.tsasserts the real commands are present and the placeholder text cannot regress back in (and that the workflow keeps mutation testing as its own job).#97 — deterministic smoke harness
scripts/smoke/mock-api.mjsemits aready <host>:<port>stdout sentinel once the server is listening.test/smoke-harness.test.tswaits on that sentinel event-driven and rejects immediately on childerror/exit. This removes the previous 50×100ms log-file poll that raced the per-test timeout. The only remaining timeout (15s) fires solely on a genuine startup hang — it is not used to mask a slow poll. The test now completes in well under one second.Test plan
pnpm lintpasses (Node 24.14.1)pnpm test— 46 files / 213 tests pass; smoke harness runs in <1sbash scripts/ci/run-fast-checks.shruns lint+test+build and exits 0bash -nsyntax-checks both scriptshttps://claude.ai/code/session_01QxQ71Yrf2Cn6zVfM4LY7AR
Generated by Claude Code