P1-1 regression introduced by layout.tsx RSC refactor: navigation.ts
exports `icon: LucideIcon` (function refs) which cannot cross the RSC
boundary from a Server Component to a Client Component.
Fix:
- Introduce ShellSidebar (Client Component) that owns the navigation
filtering + icon refs entirely on the client side.
- layout.tsx (RSC) now only passes serializable strings (`role` and
`permsBitmap`) to ShellSidebar; no function references cross the
boundary.
Error before fix:
Error: Functions cannot be passed directly to Client Components
unless you explicitly expose it by marking it with "use server".
{$$typeof: ..., render: function LayoutDashboard}
Refs: apps/portal-shell/ARCHITECTURE.md §7.2 AppFrame, §10 P1-1,
§11.7 red line #5 (fail-closed identity).