swarm-ui: add a jobs tab, and type JobqGraph as real TypeScript

New /jobs route in swarm-ui, reusing the shared JobqGraph component
against swarm-controller's own GET /api/jobq/graph (same wire shape
hive-c0re's dashboard already consumes, different endpoint, no fork).

Converted JobqGraph.jsx to JobqGraph.tsx with real prop/wire types
(mirrors hive_jobq_wire's GraphNode/GraphDep/State by hand) instead of
a hand-maintained ambient .d.ts at the swarm-ui consumer side — the
.d.ts would duplicate the prop list and drift from the source the
moment the component's signature changes without the declaration being
touched. Both dashboard (untyped consumer, esbuild strips types) and
swarm-ui (tsc --noEmit) build/typecheck clean off the one file.
This commit is contained in:
iris 2026-08-16 17:09:09 +02:00 committed by mara
commit 527ed8f3e2
6 changed files with 134 additions and 31 deletions

View file

@ -19,6 +19,7 @@ import './Shell.css';
const NAV_ITEMS: { href: string; label: string }[] = [
{ href: '/', label: 'overview' },
{ href: '/jobs', label: 'jobs' },
{ href: '/components', label: 'components' },
];