ci: isolate dropped-language-gap.test.ts as a regression canary#1169
Conversation
Add a dedicated step in the engine-parity job that runs only `tests/integration/dropped-language-gap.test.ts`. The broader `test` job already runs this file as part of `npm test`, but a failure there gets buried in 500+ test names. The standalone step surfaces a clear "Dropped-language gap regression guard" status on every PR and rules out test pollution from neighbouring files when the canary fires. The gap-repair path (#1083) is load-bearing for engine parity but silently breaks if `backfillNativeDroppedFiles` ever stops writing the file node row — exactly the shape #1147 reported. Refs #1147
|
Claude finished @carlos-alm's task —— View job Reviewing PR: CI isolation for dropped-language-gap.test.tsTodo List:
Root Cause AnalysisProblem Being Solved: Issue #1147 reported that Why This Approach: The tests already run as part of the broader Risk Assessment: Minimal risk. This is purely additive CI monitoring with no changes to test logic, timeouts, or thresholds. Backlog Compliance
AnalysisConfiguration Changes (Phase 2): ✅ CLEAR
Test Integrity (Phase 3): ✅ EXCELLENT
Code Quality (Phase 4): ✅ GOOD
Technical Assessment:
Strengths:
Minor Observations:
Final Recommendation
|
Greptile SummaryAdds an isolated regression canary step to the
Confidence Score: 5/5Safe to merge — only adds a read-only CI step with no production code changes. The change is a single new step appended to an existing matrix job. It reuses the native-addon setup already done by prior steps in the same job, mirrors the exact conventions of the neighbouring parity step (shell, env var, vitest invocation), and touches nothing outside the CI workflow file. No files require special attention. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[engine-parity matrix\nubuntu / macos / windows] --> B[Checkout & Setup Node.js]
B --> C[Install dependencies]
C --> D[Download PR-built native addon]
D --> E[Install native addon over published binary]
E --> F[Verify native addon is available]
F --> G[Run parity tests\ntests/engines/ + build-parity.test.ts\nCODEGRAPH_PARITY=1]
G --> H["NEW: Dropped-language gap regression guard #1147\ntests/integration/dropped-language-gap.test.ts\nCODEGRAPH_PARITY=1"]
H --> I[Job complete — all three OS runners]
Reviews (3): Last reviewed commit: "Merge branch 'main' into fix/1147-droppe..." | Re-trigger Greptile |
Summary
tests/integration/dropped-language-gap.test.tswithCODEGRAPH_PARITY=1, on all three OS runners.testjob already runs this file as part ofnpm test, but a failure there gets buried in 500+ test names. The standalone step gives the gap-repair canary its own visible status check on every PR.Why
Issue #1147 reported that both tests in
dropped-language-gap.test.tsfail onmain(commit c7e600a). I could not reproduce locally or via CI history:origin/main(a029d43): both tests pass.c7e600a(in a temporary worktree using the samenode_modules+ grammars): both tests pass.Engine paritymatrix on Linux/macOS/Windows.pipeline.tsdiff between c7e600a andorigin/mainis fix(builder): remove duplicate early-return in backfillNativeDroppedFiles #1148's removal of a duplicateif (missingAbs.length === 0) return;— pure dead-code removal, semantically identical, so it can't change test outcome.Rather than close the issue purely on "I can't reproduce", this PR adds an isolated guard so any future regression of the gap-repair path (#1083) — exactly the bug shape #1147 described, "node row never re-inserted" — surfaces under its own clear name and rules out test pollution from other files in the larger suite as a cause.
Test plan
npx vitest run tests/integration/dropped-language-gap.test.ts --reporter=verbosepasses locally withCODEGRAPH_PARITY=1(matches the new step exactly).python3 -c 'import yaml; yaml.safe_load(...)').Dropped-language gap regression guard (#1147)step shows up green on the parity matrix in this PR's CI.Refs #1147