kanban-dev-webapp/PHASE-8-PROGRESS.md

2.5 KiB

Phase 8 — progress log

Canonical record for Phase 8 (8a public route, 8b PWA shell, 8c markdown context). Mirrored to the Apple Notes note titled "Phase 8 — Public intake + PWA + project context". Workflow: a task moves pending → in_progress → done as I work it; TDD red/green noted where applicable.

How to read

  • [ ] pending
  • [~] in progress
  • [x] done — TDD green + commit landed
  • [!] blocked, needs decision

  • Task 1: Schema — c99be4d. Bridge: plan assumed getOrCreateCollection extended existing select values; it doesn't, so added ensureCardsCreatedByRoleValues and extended ensureActivityActionValues. Tests: 446 pass.
  • Task 2: Token generator — 36572d9. 24 bytes CSPRNG → base64url → 32 chars. isIntakeToken matches.
  • Task 3: Best-effort client IP — f608931. x-forwarded-for → x-real-ip → "unknown".
  • Task 4: Rate limiter — 70ce019. 60 req / 5 min per opaque key, in-memory, lossy on restart. 4 unit tests.
  • Task 5: Token resolver and daily counter — 3ece6cb. resolveIntakeLink, isLinkUsable with lazy date-reset, validateIntakeLinkForStep returns 3-valued LinkState.
  • Task 6: Middleware carve-out — 65b0cf4. /intake/:path* short-circuits before cookie check.
  • Task 7: Public Server Action — 9081659. token-shape → rate-limit → daily-cap → nextStep. Same InterviewStep shape as signed-in.
  • Task 8: The public submission route
  • Task 9: Minimal intake layout
  • Task 10: The public intake page
  • Task 11: The public wizard
  • Task 12: The "thanks" page
  • Task 13: Card submitted-by badge
  • Task 14: Owner actions for intake links
  • Task 15: The intake links panel
  • Task 16: Wire the panel into the admin page
  • Task 17: Integration tests — the public route
  • Task 18: Integration tests — the owner UI actions
  • Task 19: Full verification

Plan 8b — PWA shell

  • Task 1: The source SVG
  • Task 2: The icon build script
  • Task 3: The manifest
  • Task 4: The service worker
  • Task 5: The manifest link in the intake layout
  • Task 6: Manual install verification
  • Task 7: Final test run

Plan 8c — Per-project markdown context

  • Task 1: Schema
  • Task 2: The intake context extension
  • Task 3: The prompt modules
  • Task 4: The prompt tests
  • Task 5: The owner editor
  • Task 6: Wire the editor into the admin page
  • Task 7: Full verification