Planning material — fictional examples, no production behavior

Client Portal Readiness Checkpoint — 2026-07-22

Status

Working checkpoint — point-in-time assessment, not a production-readiness claim. This document records the client portal work completed on 2026-07-22 and the recommended place to resume on 2026-07-23. It follows the 2026-07-21 readiness checkpoint and supplements the revised plan.

The portal remains suitable for local development and architecture exploration. This checkpoint does not approve hosted deployment, real client data, or public release.

Accomplishments

The testing-foundation outcome identified in the previous checkpoint was decomposed into bounded issues, implemented locally, verified, reviewed through draft pull requests, and merged.

Governed issue decomposition

Deterministic Supabase test foundation

PostgreSQL tenant-isolation coverage

Authenticated JSON:API coverage

Supabase integration checks in CI

Conditional Supabase CI execution

Validation completed

The merged work was exercised locally with:

The final workflow pull request also passed its GitHub Actions fast validation and relevant-path detection. Because it changed the workflow and filter configuration, the detector correctly treated it as Supabase-relevant and ran the full integration job.

Current assessment

Area Assessment
Deterministic local integration fixtures Established
Cross-tenant PostgreSQL RLS coverage Established for current engagement paths
Authenticated engagements API coverage Established for the current endpoint
Isolated Supabase checks in CI Established
CI runtime control Established through relevant-path detection
Shared application-service boundary Not yet implemented
Invitation-only onboarding Not yet designed
Hosted staging Not yet ready
Real client data Not ready
Public MVP release Not ready

The primary testing-foundation gap from the 2026-07-21 checkpoint is closed for the current schema and engagements endpoint. Coverage must continue to grow with new data paths and client workflows.

Resume with the next architecture item from the prior checkpoint:

Introduce a shared engagement application service used by both the server-rendered workspace and the engagements JSON:API handler, with consistent authorization and error behavior while keeping JSON:API serialization at the transport boundary.

Create one planning issue for this outcome before implementation. During planning, identify the duplicated query and authorization behavior in the current page and route handler, define the service’s inputs and typed outcomes, and specify how existing integration tests will prove there is no tenant-access regression.

The intended boundary remains:

Server-rendered page ─┐
                      ├→ Engagement application service → Supabase
JSON:API handler ─────┘

The Server Component should call the shared service directly rather than make an HTTP request to its own API. JSON:API document construction should remain in the route layer.

Resume here on 2026-07-23

  1. Confirm the default branch is green after the merged CI workflow changes.
  2. Create a bounded engineering issue for the shared engagement application service.
  3. Let the planning workflow inspect the existing page, API route, Supabase clients, authorization assumptions, and integration tests.
  4. Review the proposed service contract and error model before applying approved-for-build.
  5. Implement only after human approval, then require the existing fast and Supabase integration checks before merge.

After the shared service is stable, the next likely foundation item is environment validation and a single documented local verification entry point. Invitation-only onboarding and broader client-facing features should remain behind those architecture improvements.