feat(web): add state timeline and resource panels to live mesh dashboard

Two new panels below the existing peer graph + live stream grid:
- StateTimelinePanel: vertical timeline of audit events and presence
  status changes, auto-scrolling, sorted newest-first
- ResourcePanel: 2x2 card grid showing live peers, envelopes by
  priority, audit event breakdown, and session status

Both share the same TanStack Query cache key as the existing panels
(no extra API calls). Matches the --cm-* dark terminal aesthetic.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Alejandro Gutiérrez
2026-04-07 23:50:18 +01:00
parent b0dc538119
commit 7d432b3aaa
3 changed files with 502 additions and 0 deletions

View File

@@ -16,6 +16,8 @@ import {
} from "~/modules/common/layout/dashboard/header";
import { LiveStreamPanel } from "~/modules/mesh/live-stream-panel";
import { PeerGraphPanel } from "~/modules/mesh/peer-graph-panel";
import { ResourcePanel } from "~/modules/mesh/resource-panel";
import { StateTimelinePanel } from "~/modules/mesh/state-timeline-panel";
export const generateMetadata = getMetadata({
title: "Live mesh",
@@ -68,6 +70,10 @@ export default async function LiveMeshPage({
<PeerGraphPanel meshId={id} />
<LiveStreamPanel meshId={id} />
</div>
<div className="grid grid-cols-1 gap-4 lg:grid-cols-2">
<StateTimelinePanel meshId={id} />
<ResourcePanel meshId={id} />
</div>
</>
);
}