From 18f52d240b75aca9f13f6c81fbd438fcd48a8eb6 Mon Sep 17 00:00:00 2001 From: John O'Keefe Date: Mon, 19 Oct 2026 12:40:02 -0400 Subject: [PATCH] docs(agents): record the dashboard sections rendering exception MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit renderDashboardCollections/renderSectionHTML re-render dashboard sections from /api/dashboard/sections JSON on library switch, settings save, and refresh — deliberately kept in TypeScript to preserve the switch fade on the app's most interactive page. First-paint section markup remains templ (Dashboard handler in internal/router/frontend.go). Recorded in the Rendering ownership section as a sanctioned exception so it is not silently 'fixed' without restoring a templ-partial fade path, and so the pattern is not cloned to new pages. (User-directed: the dashboard keeps its fade; every other page stays templ-rendered.) --- AGENTS.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index 36850511..b3e33df1 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -32,6 +32,15 @@ stats, toasts, password validation. Anything else that renders app UI in TypeScript is a defect; if a templ twin of it exists, one of the two must be deleted. +**Documented exception — dashboard sections**: `renderDashboardCollections` +/ `renderSectionHTML` in `web/src/dashboard.ts` re-render dashboard +sections from `/api/dashboard/sections` JSON (library switch, settings +save, refresh button) to preserve the switch fade/transition on a page +with heavy interactivity. First-paint section markup is still templ +(Dashboard handler in `internal/router/frontend.go`). This exception is +deliberate; do not clone it to new pages, and do not "fix" the dashboard +without restoring a templ-partial fade path first. + ## Library visibility (family-lens rule) — ALWAYS apply Per-user library visibility (`library_visibility` table, default-ALLOW: