Skip to content

feat(admin): /dispatch graph, the topology as text (issue #54) - #168

Merged
edgehero merged 1 commit into
mainfrom
feat/dispatch-graph-command
Aug 11, 2026
Merged

feat(admin): /dispatch graph, the topology as text (issue #54)#168
edgehero merged 1 commit into
mainfrom
feat/dispatch-graph-command

Conversation

@edgehero

Copy link
Copy Markdown
Owner

Fourth slice of issue #54: the graph's first consumer. Stacked on #167 (merged).

What

  • renderGraph (pure, render.mjs): folder groups, triggers with run stats and dangling badges, skills with reachability badges, and edges labelled by their evidence class — then the honesty counters and the caps line, which renders always: edges without their bounds invite the reader to extrapolate an unbounded chain fabric out of a depth-1, width-2 reality.
  • assembleGraph (index.ts, the assembleCosts twin): triggers read fresh every call (OQ-008: a cached topology is a stale topology), resident schedulers, one bounded record scan, the enumerations through collectGraphInputs, then the pure fold. All I/O stays in the read-model.
  • case "graph" in the subcommand switch, KNOWN_SUBCOMMANDS + USAGE + completions. Deliberately not an LLM-callable tool (the enumeration spawns git per folder; DES-CLI-SURFACE's operator-typed ungated tier; the registered-tool count pin stands).
  • readTriggers now also returns the raw entries count — the attribution range guard must accept an index pointing at an unusable-but-present row.
  • New wiring pin: USAGE and KNOWN_SUBCOMMANDS agree member-for-member — two copies of one list that nothing pinned together until this amendment widened both.

Specs (same PR)

NEW REQ-TOPOLOGY-GRAPH: the honesty rules as requirements, on the REQ-COST-ANALYTICS precedent (the estimate-never-mislabeled-as-truth discipline applied to topology: a mention must never read like history, a stale index must never land on today's row, a capped scan must never read as complete coverage). REQ-ADMIN-VIA-PI-EXTENSION and DES-ADMIN-VIA-PI-EXTENSION AMENDED (command list). REQ-COST-ANALYTICS UNCHANGED, checked.

Docs

New docs/graph.md (edge/badge reference with the honesty rules in operator words), README and docs/workflows.md cross-links (no dashes as punctuation).

Tests

Canned-model render block (header anchored, exact-equality empty render, truncation/dropped-edge surfacing, negative claims: a potential line never borrows observed's vocabulary, no matched-label text anywhere); the offline-deterministic channel wiring test (unparseable VALKEY_URL degrades synchronously — a dead port would leak a stray async error event into the runner, which is exactly why this suite never opens real connections); the agreement pin; completion coverage. Suite in the CI posture: 2120 pass, 0 skipped; admin bundle builds.

The graph's first consumer: renderGraph (pure, render.mjs) formats the
assembled model as folder groups, triggers with run stats and dangling
badges, skills with reachability badges, and edges labelled by their
evidence class, then the counters and the caps line, which renders
ALWAYS: edges without their bounds invite the reader to extrapolate an
unbounded chain fabric out of a depth-1, width-2 reality.

assembleGraph (index.ts, the assembleCosts twin) reads triggers FRESH
every call (OQ-008: a cached topology is a stale topology), the
resident schedulers, one bounded record scan, and the enumerations
through collectGraphInputs. Deliberately NOT an LLM-callable tool: the
enumeration spawns git per folder, and the topology is for the
operator's eyes (DES-CLI-SURFACE ungated tier; tool-count pin stands).

readTriggers now also returns the RAW entries count, because the
attribution range guard must accept an index pointing at an
unusable-but-present row.

New wiring pin: USAGE and KNOWN_SUBCOMMANDS agree member-for-member
(two copies of one list that nothing pinned together until this
amendment widened both).

Specs: NEW REQ-TOPOLOGY-GRAPH (honesty rules as requirements, the
REQ-COST-ANALYTICS discipline applied to topology).
REQ-ADMIN-VIA-PI-EXTENSION and DES-ADMIN-VIA-PI-EXTENSION AMENDED
(command list). REQ-COST-ANALYTICS UNCHANGED, checked. Docs:
docs/graph.md, README and workflows.md cross-links.

Suite in the CI posture: 2120 pass, 0 skipped; admin bundle builds.

Signed-off-by: Rob Boerman <robboerman@live.nl>
@edgehero
edgehero merged commit d348d32 into main Aug 11, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant