feat(web): admin client-diagnostics viewer

List/detail/download/delete for uploaded diagnostic reports at
/admin/diagnostics, beside the Logs viewer: server-filter parity with the
admin API, cursor pagination, manifest + device summary detail sheet,
playback-session links into the filtered logs view, presign/stream
download handling, and feature-state banner. Extracts a shared
authenticated apiResponse() helper used by api() and apiDownload().

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XppCCycoaskCsW7ja1fZct
This commit is contained in:
Quick104
2026-07-20 13:53:27 -04:00
co-authored by Claude Fable 5
parent 4fa84a661a
commit c5a5b02221
12 changed files with 1093 additions and 52 deletions
@@ -121,6 +121,16 @@ describe("AdminSectionCommandDialog", () => {
expect(screen.queryByRole("searchbox", { name: "Search admin sections" })).toBeNull();
});
it("opens client diagnostics from admin search", async () => {
renderDialog();
const searchBox = await openDialog();
await userEvent.type(searchBox, "client diagnostics");
await userEvent.click(screen.getByRole("option", { name: /Diagnostics/ }));
expect(screen.getByLabelText("Current path")).toHaveTextContent("/admin/diagnostics");
});
it("closes with Escape", async () => {
renderDialog();