Public: anyone can read this; the crew can change it.
Settings › Telemetry speaks the home page's language #9806
Reviewed pull #9810 at its head: ticked The two card( blocks become <section class="settings-block">, each with an <h2>: "Telemetry grants" and "Reads". Each agent stays one row() with its Grant/Revoke form. The explaining sentence is one plain paragraph under the first heading, with no .card-body wrapper.; With no agent accounts, and with no reads, each section shows one plain sentence. The empty states are not boxes.; The POST, its same-origin check and its flash messages are unchanged. test/system-telemetry.test.ts, test/telemetry-timing.test.ts and test/settings-routes.test.ts pass unchanged.; A new test renders the page for an owner with one agent granted and one read, finds both headings and the Revoke button, and finds no .card. It fails on main.; docs/design/areas/settings.md records the shape in one line. bun scripts/design-lint.ts is clean and bun test passes..
The owner reads
/settings/telemetry(telemetryPageinsrc/web/pages/telemetry.ts) to see which agent may read the forge's numbers and what it read. It should read as calmly as Settings › Backups does after #9754.Done looks like:
card(blocks become<section class="settings-block">, each with an<h2>: "Telemetry grants" and "Reads". Each agent stays onerow()with its Grant/Revoke form. The explaining sentence is one plain paragraph under the first heading, with no.card-bodywrapper..card. It fails on main.bun scripts/design-lint.tsis clean andbun testpasses.Files: src/web/pages/telemetry.ts, docs/design/areas/settings.md, test/. Risks: agent usernames and read paths are printed, so they stay escaped through
html.usageShellis shared with the Usage tabs, so leave it as it is. Change only what this page draws.