Updates HANDOFF.md, CURRENT_TASK.md, and SESSION_LOG.md to reflect: - PR #150 now contains the AI-provider test mock + caching + maxfail. Backend CI should be fully green for the first time in months. - PR #151 stacked on #150: pytest-xdist with per-worker DBs. Local verification: 22m 27s → 4m 28s (5× speedup), 1076 passed both runs. - DoD is now: merge #150, then #151, then add CI / backend (pull_request) to required status checks on main. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
23 lines
1.4 KiB
Markdown
23 lines
1.4 KiB
Markdown
# CURRENT_TASK.md
|
|
|
|
**Task:** Land two stacked CI PRs and lock the backend gate on `main`.
|
|
|
|
**Status:** in-progress
|
|
|
|
**Definition of Done:**
|
|
- [ ] PR #150 (`fix/ci-workflow-config`) merged. Both `CI / backend (pull_request)` and `CI / frontend (pull_request)` show success on the merge commit.
|
|
- [ ] PR #151 (`fix/ci-pytest-xdist`) merged. Backend CI on the merge commit completes in <6 min (was ~22 min serial).
|
|
- [ ] `CI / backend (pull_request)` added to required status checks on `main` in Gitea branch protection (frontend is already required).
|
|
- [ ] Optional: `CI / e2e (pull_request)` confirmed clean and added to required checks.
|
|
|
|
**Assumptions:**
|
|
- The 8-core homelab Gitea Actions runner can support `-n auto` (8 xdist workers). If memory pressure shows up in CI, drop to `-n 4`.
|
|
- pytest-cov's xdist support continues to handle the coverage merge and `--cov-fail-under=50` check correctly.
|
|
- The per-worker DB creation in `conftest.py` is idempotent and racing workers on first import won't all try to CREATE DATABASE simultaneously — postgres serializes that, but if it surfaces issues, wrap with an advisory lock.
|
|
|
|
**Out of scope:**
|
|
- Frontend lint warnings (23 remain after #149).
|
|
- The 23 react-hooks/exhaustive-deps warnings.
|
|
- RLS test suite (gated behind `RUN_RLS_TESTS=1`; not in default CI).
|
|
- Per-test transactional rollback (would shave another 30-40% off backend time but is a much bigger refactor — capture in TODO if interested).
|