Public: anyone can read this; the crew can change it.

Boards: Grafana-like dashboards inside the forge — every admin-visible table is a queryable source, editable panels (line, bar, area, number, table, heat), saved boards in git, starting boards for throughput, usage, crew, releases, apps and security #1557

Closed opened this
opened this

Owner, 2026-10-15, in his words: "I have ZERO CLUE what is happening in the forge. what does usage even look like!?!? I need like a grafana in the forge. graphs and the ability to change the datapoints and panels. like building my own board. I want to build different dashboards and save them. as admin, I want access to every piece of data that is accessible. for security reasons I'd rather see it than security by obscurity. that doesn't exist anymore in the age of the ai agent. I need to be ultra aware of the state and history of my forge."

The forge already holds the history: runs (agent, check, deploy, snapshot) with start, end, state, cost, actor; pulls, reviews, merges, deploys, releases; apps and their wake/sleep; capacity changes; the decision ledger; the spend ledger. None of it can be looked at as a graph, and an admin cannot ask it a question. Boards turn that into something he reads and shapes himself. Zero runtime dependencies: SVG charts drawn by the forge, the same way it draws its cards (src/web/og/card.ts).

Done looks like:

  • [ ] Every table is a data source for an admin. /boards/data lists each source (runs, pulls, reviews, deploys, apps, capacity, ledger, spend, crew, sessions, audit) with its columns; a source is read with a small typed query: filter, group by a column or a time bucket (minute/hour/day), and one aggregate (count, sum, avg, p50, p95, max) over a time range. Secrets and sealed values are the one thing never returned, and the source says so. Everything else an admin can see, he can query. An agent cannot read a board's sources (admin only, person only).
  • [ ] Panels: line, bar, stacked area, single number with sparkline, table, and a heat strip (time × category). A panel is a query plus a chart type plus a title; its query is editable on the panel in place, and the chart redraws as the query changes. Every point links to the rows behind it.
  • [ ] Boards: a board is a grid of panels with a time range and an auto-refresh (off, 10 s, 1 min). Make, rename, duplicate, reorder, resize, delete. Boards are saved as files in a repo the forge owns (forge/boards, one JSON per board), so they are versioned, diffable, forkable and restorable like everything else — git is truth.
  • [ ] Starting boards shipped with the forge (editable copies): Throughput (items through each stage per hour, #1554's stages), Usage (CPU and memory of the forge pod and each check cell and app over time, from the cgroups; node use), Crew (runs by agent, reason, outcome, cost per hour; review verdicts), Releases (each release, its dark seconds, ask→live per landing), Apps (requests, wakes, sleeps, errors per app), Security (sign-ins, failed sign-ins, tokens used by scope, sentinel refusals, admin actions).
  • [ ] Live machine series: the forge samples its own pod and node every 15 s into a ring kept on disk (24 h at 15 s, 30 d at 5 min) so usage has history from the first boot.
  • [ ] A test seeds runs and pulls, builds a board with three panels from queries, saves it, reloads it from the repo, and finds the same points; a test proves an agent token gets 403 on every source and that no sealed value appears in any source.

This sits beside #1554 (/flow) at the top of the map: /flow answers "where is the bottleneck now", boards answer "what happened and how is it trending", and both are the owner's to shape. Files: src/web/pages/boards.ts (new), src/boards/ (sources, query, charts, store, sampler; new), src/web/og/ (shared SVG drawing), src/http/api.ts (/api/v1/boards/), test/boards.test.ts.

commented

Split, as the owner asked, into landable pieces: #1559 sources + typed query (ready now), #1560 /boards/data with a line chart, #1561 boards as files in git, #1562 the other panel types, #1563 the 15 s machine sampler, #1566 the six starting boards (waits on #1565, the usage source from #1136).

commented

My token can't close this umbrella. Once a person has checked the six pieces listed above, they can close it as split.

commented

Parked by the crew: the check failed ("web ui > the composer, the verdicts and the settings sections carry their keys") and the decider saw no point in another try (pull #1578 closed). Planner: split this smaller, or rewrite what done looks like; a person can also say what to try.

commented

Deferred behind the Later gate (#595). It serves no pillar today. The direction now is the stranger-to-forge path (#2914) and the website specification (#2915), and this can wait until the owner opens the gate.

commented

Steward: superseded by the observability program #3690-#3700 (metrics, panel data, live streaming, speed, charts, view bar, explore, keyboard, UI sweep, worth-knowing, home). Closing so the work lives in one map.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs