[RELEASE] Fix Guard panel rendering on top of every tab, stuck on Loading (0.12.806 regression) - #5476
Conversation
|
✅ Drift Bot (ClawMetry): no drift detectedDrift Bot analyzed the changed files against this project's blueprints and requirements and found no drift. |
Visual diffComparing 68 of 70 comparison(s) flagged (>1% pixel diff).
Folder: 7e9a4a290e13. Full PNGs also attached as a workflow artefact. Generated by visual-diff bot. Pixel diffs >1% flagged; eyeball the table before merging. This check is non-blocking — fail = bot bug, not a code problem. |
guard.html shipped in #5470 wrapped in <div id="guard" class="tab-content">. The switcher hides panels via .page / #page-<tab>; nothing hides tab-content, so the Guard cards drew above every tab, stuck on "Loading..." because loadGuardTab keyed on a #page-guard that did not exist. - guard.html is a normal .page panel with id page-guard - the 38 #guard-scoped CSS rules move to #page-guard - guard joins _CM_NODE_TABS so the nav item survives the runtime switcher - tests/test_tab_template_page_wrapper.py guards all three (red on the shipped template and on an orphaned CSS scope); added to the CI file list Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JqeUMB1GPqXU3AJgDmg3mW
Local Agent Observability gained a "Dashboard tab panel contract" section and the Guard Enforcement component block cites it for guard.html. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JqeUMB1GPqXU3AJgDmg3mW
8510cef to
7e9a4a2
Compare
✅ Drift Bot (ClawMetry): no drift detectedDrift Bot analyzed the changed files against this project's blueprints and requirements and found no drift. |
What broke
0.12.806 (#5470) shipped
guard.htmlwrapped in<div id="guard" class="tab-content">. The dashboard hides panels through.page/#page-<tab>and has no rule fortab-content, so the Guard cards rendered on top of Home, Agents, Activity, Sessions, Cost and every other tab, frozen on "Loading..." because the loader keyed on a#page-guardelement that did not exist. Selecting any runtime also hid the Guard nav item:guardwas in the per-runtime tab list but in no capability map and not marked node-wide.Fix
guard.htmlis a normal.pagepanel with idpage-guard.#page-guardinstead of the old id, so buttons, pills and tables style again.guardjoins_CM_NODE_TABS, next to Approvals and Alerts, so the nav item survives the runtime switcher.Verification
tests/test_tab_template_page_wrapper.py(added to the CI file list): fails on the shipped template and on an orphaned CSS scope, passes on the fix.ruffcount ondashboard.py clawmetry/unchanged fromorigin/main;node --checkpasses onapp.js.Not in this PR
Every store read on this machine currently takes about 27 s (the daemon query server is serialising a stream of
query_aggregatescalls from three dashboards against a 1.6 GB store). That is why the Home tab showed "Load failed, retrying" and why Guard took a minute to fill. It is unrelated to the template bug and is noted separately.Product record
🤖 Generated with Claude Code
https://claude.ai/code/session_01JqeUMB1GPqXU3AJgDmg3mW