Repository source: docs/plans/archive/forte_session_recovery_routes_step3_development_plan.md
Forte Session-Recovery Routes: Step 3 Development Plan
Stage 1
Goal: Recognize the complete Forte URL space during members-only access checks.
Dependencies: Approved Step 2 and the existing authentication-resume gate.
Expected changes: Add a Forte route classifier, conceptually
isForteApplicationRoute(string $path): bool, that accepts/forteand its descendants plus the existing Forte API naming space; use it from the canonical application-route classifier.Verification approach: Exercise expired-session Forte HTML and API requests through the application, confirming they no longer reach the false 404 branch.
Risks or open questions:
Per approved Option C, an invalid Forte descendant may authenticate before normal dispatch returns 404.
Canonical components/API contracts touched:
Application::isApplicationRoute(), members-only access gate, existing Forte API access outcome.
Stage 2
Goal: Lock the recovery behavior against regressions without changing authenticated Forte routing.
Dependencies: Stage 1.
Expected changes: Add local smoke coverage for the Forte board, users, activity, profile, username, and Forte API URL families with no session; cover a valid authenticated route and an invalid Forte route.
Verification approach: Run the focused Forte/session smoke tests and the relevant authentication regression suites.
Risks or open questions:
Existing client-side Forte API callers must continue handling their established authorization response.
Canonical components/API contracts touched: Forte HTML handlers,
/api/forte_*and/api/get_forte_*routes, authentication-resume page contract.