Severity: Low
Labels: tech-debt, frontend, P3
Location: frontend/src/app/ (no loading.tsx files)
Description
There are zero loading.tsx files. The (shell) layout is a client component and every page fetches client-side, so data-heavy routes (dashboard, gradebook, knowledge graph) show a blank <main> until client effects resolve, instead of an instant skeleton via the App Router's Suspense integration.
Suggested fix
Add loading.tsx to (shell)/ (reusing the existing Skeleton/ProfileSkeleton) and any server-rendered segment.
Acceptance criteria
- Navigating to shell routes paints a skeleton immediately rather than a blank panel.
Severity: Low
Labels: tech-debt, frontend, P3
Location:
frontend/src/app/(noloading.tsxfiles)Description
There are zero
loading.tsxfiles. The(shell)layout is a client component and every page fetches client-side, so data-heavy routes (dashboard, gradebook, knowledge graph) show a blank<main>until client effects resolve, instead of an instant skeleton via the App Router's Suspense integration.Suggested fix
Add
loading.tsxto(shell)/(reusing the existingSkeleton/ProfileSkeleton) and any server-rendered segment.Acceptance criteria