BC
Brad CodyAdministrator
Current productAccess and application shell
Reverse spec drafted

Forgot and reset password

Password recovery request, secure reset link and password replacement flow.

Observed route/forgot-passwordFuture Spec 17
Current maturityRequired flow; current implementation unverified
Evidence confidencePartially verified
Last reviewedAugust 4, 2026
Visual evidenceDeferred during UI updates

Current-state summary

Password recovery is part of the defined authentication experience, but the request, email delivery, reset landing page and post-reset session behavior have not been exercised against the live product. The current profile therefore records the required surface and explicit verification gaps rather than presenting the flow as complete.

Interface inventory

Anatomy and verified behavior

Verification states separate observed behavior from requirements or assumptions.

ElementCurrent behaviorVerification
Recovery email fieldAccepts the email to which recovery instructions may be sent.Required behavior; live field unverified
Send instructions actionRequests Supabase password recovery and returns a neutral confirmation.Required behavior; end-to-end delivery unverified
Neutral confirmationShould state that instructions were sent if an account exists.Approved requirement; current copy unverified
Reset-password formExpected to accept and confirm a new password after a valid recovery link is opened.Required behavior; live form unverified
Return to sign inExpected to provide a clear route back to authentication.Required behavior; live link unverified

User journeys

Current flows

01

Request recovery

  1. Open Forgot password
  2. Enter email
  3. Submit request
  4. Receive neutral confirmation
  5. Supabase sends a recovery message when eligible
Observed result

Not yet verified end to end.

02

Set a new password

  1. Open a valid expiring link
  2. Establish recovery context
  3. Enter and confirm a compliant password
  4. Save
  5. Revoke or invalidate affected password sessions
  6. Return to a clear destination
Observed result

Required future-safe behavior; current implementation unverified.

State model

Current and expected states

Request idle

Email input is available.

Request submitted

Neutral confirmation should appear regardless of account existence.

Valid reset context

New password form should become available.

Expired, invalid or reused link

Should explain that a new request is required without exposing token detail.

Reset complete

Should confirm success and offer sign in or safe continuation.

Product rules

Non-negotiable boundaries

  • Recovery responses are non-enumerating.
  • Reset links are single-use and expiring.
  • Tokens must not be placed in analytics, logs or Activity.
  • Successful password changes produce a security event and appropriate notification.
  • Password policy must be shown before final failure where possible.
Dependencies
Supabase Auth recoveryTransactional email deliveryAuthorized redirect URLPassword policySession revocation policySecurity notification template

Known current limitations · 4 mapped

What is missing, broken or unverified

Future Spec 17 owns closure →
  1. No live end-to-end recovery test has been recorded.
  2. Email sender, template, domain and delivery status are unverified.
  3. Expired-link and reused-link behavior are unverified.
  4. Post-reset session revocation is unverified.

Future alignment

Required evolution

  • 01Implement and test recovery per environment.
  • 02Connect recovery delivery to the canonical notification and security event model.
  • 03Add safe expired-link recovery and resend behavior.
  • 04Document password policy and session revocation in Spec 17.

Current baseline

Acceptance record

  • The current profile does not claim recovery is working without an end-to-end test.
  • The intended neutral-response rule is recorded.
  • Token, expiry and session-security gaps are visible.

Reverse-spec completeness

Documentation coverage

The interface is still changing, so visual evidence and repository tracing remain intentionally incomplete.

Purpose and user outcome

Documented

Roles and access

Documented

Routes and entry points

Documented

Page and component anatomy

Documented

Fields and displayed data

Documented

Primary actions

Documented

Forms and validation

Documented

States and transitions

Documented

Empty, loading and error states

Documented

Responsive behavior

Partial

Accessibility behavior

Partial

Activity and audit events

Partial

Data sources and persistence

Documented

Notifications and automation

Partial

Known defects and limitations

Documented

Reusable component dependencies

Documented

Future-spec conflicts

Partial

Visual and repository evidence

Deferred

Acceptance of current baseline

Documented