TODO.md: Promote pytest-xdist to ✅ (PR #151 carries it). Adds three new backlog items: - data-testid hardening for e2e-critical interactive elements (sparked by PR #152's selector drift work) - per-test transactional rollback (next big speedup if needed) - pytest-testmon for PR-time test selection HANDOFF.md: Three open PRs now (#150, #151, #152), all independent. Three Gitea runner agents now registered, so jobs run in parallel. Combined with #151's xdist, the prior 1h 14m wall-clock should drop to ~6-10 min. Updated merge order: #152 first (smallest), #150 next, #151 last. After all three land, enable CI / backend then CI / e2e as required status checks. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2.4 KiB
2.4 KiB
TODO.md
Backlog of work NOT currently active. Read only when
CURRENT_TASK.mdstatus iscomplete. Format:- [ ] short description — optional link to issue/PR
Up next
- Parallelize backend pytest with pytest-xdist. ✅ landing as PR #151. Verified locally: backend suite 22 min → 4m 28s with
-n autoon the 8-core homelab runner. Per-worker DB isolation viaPYTEST_XDIST_WORKERin conftest.py.
Backlog
- Frontend lint warnings cleanup. 23
react-hooks/exhaustive-depswarnings remain after PR #149 (mostly missing-deps in useEffect). Either fix them or audit them for known-safe ones and add eslint-disable comments. Not blocking CI today. - Audit
filterwarningsignores added inwip(handoff): restore backend suite to green. Codex added narrowResourceWarningfilters for unclosed socket/transport/event-loop noise from pytest-asyncio teardown. Worth periodically reviewing whether those are still needed (e.g. when bumping pytest-asyncio) — if a real warning appears in those forms it would be silenced. - Add
data-testidattributes to e2e-critical interactive elements. PR #152 fixed five Playwright tests by chasing UI-text changes (Sessions→Session History,Account Settings→Account Management,/assistant→/pilot, "Flow Sessions" tab, Resume button on session cards). Each was a one-line selector update, but every UI churn re-breaks them. Adding stabledata-testidattributes on the targeted elements (page heading wrappers, tab nav, primary action buttons) and switching tests togetByTestIdwould make these immune to copy/route renames. Scope it small — start withSessionHistoryPageheading, the AI/Flow Sessions tab buttons, the per-sessionResumebutton, and the command-palette FlowPilot option. - Per-test transactional rollback in
test_dbfixture. Bigger engineering than xdist (which we already shipped). Instead ofDROP SCHEMA public CASCADEper test, wrap each test in a savepoint and rollback at teardown. ~30-40% additional speedup on top of xdist for test-DB-heavy tests. Real refactor; only worth it if the suite gets significantly larger or runs more frequently. - Consider
pytest-testmonfor PR-time test selection. Tracks which tests touched which source files and only re-runs affected ones. Best for small PRs touching ~few files. Adds cache-invalidation complexity; only worth it if the suite stays painfully long even after xdist.