Request lifecycle
From middleware to use-case to streamed UI.
Happy path (admin page)
proxy.tsensures locale + authenticated admin- Layout renders shell (sidebar, header);
childrenremain RSC - Page starts data promises (use-cases) and wraps sections in
Suspense - Read checks its
PermissionviahasPermissionand loads cached data - Client islands (DataTable, tabs) hydrate; URL-driven tabs soft-navigate through the App Shell
Mutations
Client → server action (safe-action) → use-case → updateTag / auth API → UI refresh.