Files
resolutionflow/.ai/HANDOFF.md
Michael Chihlas 1e3a6cfa01
All checks were successful
Mirror to GitHub / mirror (push) Successful in 12s
CI / frontend (pull_request) Successful in 5m43s
CI / backend (pull_request) Successful in 10m21s
CI / e2e (pull_request) Successful in 11m23s
fix(e2e): harden card selectors for session resume
Co-Authored-By: Codex <noreply@openai.com>
2026-04-25 16:42:33 -04:00

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-card in SessionHistoryPage.tsx
  • tree-card in TreeGridView.tsx and TreeListView.tsx
  • share-card in MySharesPage.tsx

The workflow was also hardened:

  • Postgres service healthchecks now run pg_isready -U postgres instead of checking as root.
  • 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-card selectors in frontend/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.ts passed.
    • 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=1 passed: 6 passed (1.3m).

Immediate next steps

  1. Push the WIP commit from this session to PR #150.
  2. Watch PR #150 CI on the new SHA. Expected result: backend, frontend, and e2e all green.
  3. Merge PR #150 when green.
  4. Enable CI / backend (pull_request) as a required status check on main.
  5. 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.yml contains the parallel backend/frontend/e2e workflow.
  • backend/scripts/seed_phase9_qa_fixtures.py pre-bakes Phase 9 QA fixtures.
  • .gstack/qa-reports/phase9-20260424-232700/REPORT.md has the FlowPilot QA report.
  • Per-worker test DBs accumulate on the Postgres service. Cheap to leave around; cleanup if needed.