2.8 KiB
HANDOFF.md
Last updated: 2026-04-25 16:41 EDT
Active task: Land PR #150 (the consolidated CI-recovery PR), then enable backend and eventually e2e gates on main. See CURRENT_TASK.md.
Branch: fix/ci-workflow-config -> PR #150. PRs #151 and #152 were closed and consolidated into this branch.
Current resume point
Latest PR #150 CI had backend and frontend green, but CI / e2e (pull_request) failed on the resume smoke test.
The failure was not product behavior. Playwright was using:
page.locator('.bg-card').filter({ hasText: tree.name }).first()
On the session history page this matched the tree filter <select> first because the select options contain the same flow name, then the test waited forever for a Resume button inside the select.
This session fixed that properly by adding stable test IDs to repeated cards and moving e2e tests off .bg-card selectors:
flow-session-cardinSessionHistoryPage.tsxtree-cardinTreeGridView.tsxandTreeListView.tsxshare-cardinMySharesPage.tsx
The workflow was also hardened:
- Postgres service healthchecks now run
pg_isready -U postgresinstead of checking asroot. - The e2e frontend build now bakes
VITE_API_URL="${PLAYWRIGHT_API_ORIGIN}", matching the Playwright backend origin.
Verification completed
git diff --check- Confirmed no remaining
.bg-cardselectors infrontend/e2e/*.ts. docker exec -w /app resolutionflow_frontend npm run build- Ran migrations and test-user seed in the dev backend container.
- Focused Playwright verification in an Actions-like Ubuntu container:
- First
e2e/resume.spec.tspassed. - Then
e2e/history.spec.ts e2e/library.spec.ts e2e/library-start.spec.ts e2e/resume.spec.ts e2e/shares.spec.ts --project=chromium --workers=1passed:6 passed (1.3m).
- First
Immediate next steps
- Push the WIP commit from this session to PR #150.
- Watch PR #150 CI on the new SHA. Expected result: backend, frontend, and e2e all green.
- Merge PR #150 when green.
- Enable
CI / backend (pull_request)as a required status check onmain. - After at least one reliable green PR run, consider adding
CI / e2e (pull_request)as required too.
Branch protection on main (current)
- PR-only merges
CI / frontend (pull_request)required- Force-push blocked
- No review required (solo)
Useful breadcrumbs
.gitea/workflows/ci.ymlcontains the parallel backend/frontend/e2e workflow.backend/scripts/seed_phase9_qa_fixtures.pypre-bakes Phase 9 QA fixtures..gstack/qa-reports/phase9-20260424-232700/REPORT.mdhas the FlowPilot QA report.- Per-worker test DBs accumulate on the Postgres service. Cheap to leave around; cleanup if needed.