Test / test (push) Successful in 25s
validate_questions now rejects content where a record_as bucket is read by nothing: every bucket must be listed by some Kv resource in the same repo (a desk) or carry aggregates.yaml's new attended_by annotation naming the automation that consumes it - no publicly collected answer may land where nothing reads. Separately, all server-fn resources (question/user/nav) move to a PortalShell above the routes, created once and provided via context. Per-page Resources broke on the first client-side navigation: the remounted component's fresh Resource consumed a stale SSR hydration buffer - the nav list [[id, name], ..] deserialized as a Page (serde fills structs from sequences in field order), so uhhm.no's landing question rendered chain-gated behind its own nav entry instead of the /develop/proposal form. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>