build / build (push) Successful in 5m38s
'Social' in the app menu opens /app: a TemplateResponse whose content area is one full-bleed same-origin iframe onto /client/ (frame-src 'self'). The SPA keeps its own document and CSP carve-out; Nextcloud keeps its chrome — the standard wrap for an SPA that must not inherit the shell's DOM/CSP. Also canonicalizes /client -> /client/ (trailing slash): entered without it, Sapper's router sees an empty path and relative resolution escapes into the app. Brock's direction: it must feel like a normal NC app. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>