Files
resolutionflow/.ai/HANDOFF.md
Michael Chihlas f1be3abcc5
Some checks failed
CI / e2e (push) Has been cancelled
CI / frontend (push) Has been cancelled
CI / backend (push) Has been cancelled
Mirror to GitHub / mirror (push) Has been cancelled
feat: self-serve signup Phase 2 (frontend cutover) (#162)
Co-authored-by: Michael Chihlas <michael@resolutionflow.com>
Co-committed-by: Michael Chihlas <michael@resolutionflow.com>
2026-05-07 18:42:20 +00:00

3.1 KiB

HANDOFF.md

Last updated: 2026-05-07 (PR #162 CI investigation/fixes)

Active task: PR #162 (feat/self-serve-signup-phase-2) is open in Gitea. Current session is resolving its failing checks.

Where this session ended

PR #162 originally failed quickly in Gitea CI. Public Gitea status metadata was available, but job logs redirected to login and no GITEA_TOKEN was present. The branch was pushed over SSH.

Fixed environment drift first:

  • Standardized backend native/dev/CI Python on 3.12.13 to match Docker.
  • Added .python-version.
  • Rebuilt backend/venv from pyenv Python 3.12.13 and verified native pytest --version / alembic --version with explicit local env.
  • Updated Gitea CI backend/e2e Python setup to 3.12.

Fixed Gitea runner assumptions next:

  • Added actions/setup-node@v4 with Node 20 to Gitea frontend and e2e jobs.
  • Pushed fix(ci): set up node in gitea workflow.

Local frontend validation then exposed real lint failures in Phase 2 React code under the current lint stack. The current WIP fixes:

  • react-refresh/only-export-components for exported pure helpers used by tests/shared invite OAuth code.
  • react-hooks/set-state-in-effect warnings where local state intentionally mirrors route/config/cache state.
  • react-hooks/purity warnings from Date.now() during render.
  • Redundant loading-state write in pricing page.

Validation after those frontend changes:

  • docker exec -w /app resolutionflow_frontend npm run lint passed.
  • docker exec -w /app resolutionflow_frontend npm run test:coverage passed (198 tests).
  • docker exec -w /app -e NODE_OPTIONS=--max-old-space-size=4096 resolutionflow_frontend npm run build passed.

Known local noise:

  • React act(...) warnings appeared in existing tests during coverage but did not fail the suite.
  • Vite emitted large chunk warnings during build.
  • Unrelated dirty/untracked files remain and should not be staged unless explicitly requested: docker-compose.dev.yml, .env.example, abc-feat-self-serve-signup-phase-2-design-20260507-112020.md, core.*, docs/architecture/, docs/tutorials/.

Resume point

  1. Commit the frontend lint fixes and .ai/ handoff updates with the required Codex trailer.
  2. Push feat/self-serve-signup-phase-2.
  3. Poll Gitea PR #162 statuses for the new head SHA: curl -fsSL https://gitea.resolutionflow.com/api/v1/repos/chihlasm/resolutionflow/statuses/<sha> | python -m json.tool
  4. If statuses are still pending, report that local frontend CI is green and Gitea runner work is queued/running. If a check fails, public statuses may show only the context/description; logs require authenticated Gitea access.

Carry-forward

  • Phase O manual ops remain pending after PR review/merge: Stripe live setup, internal validation, feature-flag flip.
  • Backend env: SALES_LEAD_RECIPIENT_EMAIL.
  • Frontend env: VITE_SELF_SERVE_ENABLED, VITE_GOOGLE_CLIENT_ID, VITE_MS_CLIENT_ID, VITE_OAUTH_REDIRECT_BASE, VITE_CALENDLY_URL.
  • Single alembic head remains c6cbfc534fad; Phase 2 added no migrations.