ci: pytest + tsc/vitest/eslint gate; eslint flat config (#162)#209
Conversation
|
Warning Review limit reached
More reviews will be available in 39 minutes and 32 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more credits in the billing tab to continue. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
frontend | ce9bbcc | Commit Preview URL Branch Preview URL |
Jun 12 2026, 03:12 AM |
e496b16 to
3db9e74
Compare
Closes the #162 gap (nothing ran the suites/typecheck/lint on PRs). Adds .github/workflows/ci.yml with a backend pytest job (py3.13) and a frontend job running eslint + tsc + vitest on every PR and push to main. Next 16 removed `next lint`, so linting now runs via the ESLint CLI against a new flat config (frontend/eslint.config.mjs) that spreads eslint-config-next 16's native flat-config arrays. Rules with pervasive pre-existing violations (react-hooks v6 strict set, no-explicit-any, etc.) are demoted to warnings so the gate is green today and blocks new error-level violations. Notes: - Frontend: setup-node's npm 10.8.2 is below the engines floor (>=10.9.0), so npm is pinned to 10.9.2 before `npm ci`. - Backend: the OCR integration tests (torch/docling/transformers) and the pre-existing non-hermetic tests (test_documents_routes module + one graph test, tracked in #210) are excluded so the gate is green for the ~580 tests that pass; #210 tracks making them hermetic and removing the quarantine.
3db9e74 to
ce9bbcc
Compare
What
Adds
.github/workflows/ci.ymlrunning on every PR + push to main:pyteston Python 3.13 (deps minus the multi-GB OCR stack; OCR integration tests stay under the manual evals workflow, dummy non-secret env so config/encryption import succeeds).eslint+tsc --noEmit+viteston Node 20 vianpm ci.Adds
frontend/eslint.config.mjs— Next 16 removednext lint, so lint now runs through the ESLint CLI against a flat config spreading eslint-config-next 16's native flat-config arrays.Why
#162: with no CI, the suites/typecheck/lint never ran on PRs — which is how a time-bomb test, dead links, and broken queries reached main unnoticed.
Lint ratchet
164 pre-existing eslint errors (mostly eslint-config-next 16's newly-strict react-hooks rules + existing
any) are demoted to warnings so the gate is green now and blocks new error-level violations. Re-promote per-rule as the design/a11y waves clean up.How verified
Locally:
npx eslint .→ 0 errors;tsc --noEmitclean;vitest run37/37. Backend pytest baseline established by this PR's own CI run.Closes #162