docs: update documentation to OKF v0.1 format

This commit is contained in:
OpenVelo Agent
2026-07-23 03:47:06 +00:00
parent 54f72f88dc
commit 4fd5c37d27
6 changed files with 236 additions and 17 deletions
+11 -5
View File
@@ -30,9 +30,11 @@ This change adds a same-browser **cross-tab session-invalidation channel**:
`sessionStorage` state **without** rebroadcasting, then notifies
subscribers.
4. `HomeComponent` subscribes to the new peer-invalidation event, resets
`UserStore`, closes any open change-password / user-menu overlays, and
navigates to `/login`. A re-entrancy flag prevents duplicate navigations
when the originating tab already navigated.
both `UserStore` and `ChallengesStore` (so the per-user board cache is
never leaked to the next signed-in user), closes any open
change-password / user-menu overlays, and navigates to `/login`. A
re-entrancy flag prevents duplicate navigations when the originating
tab already navigated.
5. `AuthenticatedEventSourceService` was extended to dispatch a new
`'unauthorized'` event when the SSE fetch returns `401` or `403`. Generic
network failures still dispatch `'error'` and do **not** invalidate.
@@ -182,8 +184,10 @@ unhandled by the store; the SPA does not navigate on transport failure.
* `ngOnDestroy()` calls `eventStatus.stop()` and unsubscribes from
`onPeerInvalidation`.
* `handleSessionInvalidated(reason)`:
* Calls `userStore.reset()` and closes `changePasswordOpen` /
`userMenuOpen` modal signals.
* Calls `userStore.reset()` and `challengesStore.reset()` and closes
`changePasswordOpen` / `userMenuOpen` modal signals. The challenges
reset guarantees the next signed-in user does not briefly see the
previous user's `solvedByMe` flags on `/challenges`.
* Guards re-entry with `navigatingToLogin` and short-circuits when the
router is already on `/login`.
* Otherwise awaits `router.navigateByUrl('/login')`.
@@ -199,6 +203,8 @@ unhandled by the store; the SPA does not navigate on transport failure.
- [Authenticated Shell](/guides/authenticated-shell.md)
- [Session Restoration on Reload](/guides/session-restoration.md)
- [Challenges Board](/guides/challenges-board.md)
- [Per-User `solvedByMe` Across the Session Boundary](/guides/challenges-per-user-state.md)
- [Frontend Structure](/architecture/frontend-structure.md)
- [REST API Overview](/api/rest-overview.md)
- [Auth Endpoints](/api/auth.md)