hyperhive/hive-c0re/src/dashboard
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas f357f98867 c0re: serve the jobq graph generically at /api/jobq/graph
`graph_node` projects a `hive_jobq::Node` onto the wire type from the
parent commit: everything the crate records, with hive-c0re's own fields
(`agent`, `approval_id`, `inputs`, `build_log_id`) collected into the
opaque payload slot instead of standing as named columns. A node with
nothing domain-specific to say serialises no `data` key at all, so the
slot costs nothing when it is unused.

`graph_dep` turns a `DepWhen` into the set of outcomes that satisfy the
edge by asking it about each of the four terminal states, rather than
leaking the bitflags representation onto the wire.

`Resource::wire_name` gives the resource vocabulary a string form —
hive-jobq is generic over the resource type, so a viewer that renders any
graph cannot be handed this enum. The `agent:` prefix keeps per-agent
leases from colliding with a global resource sharing an agent's name.

`graph_snapshot` deliberately reuses `visible_dags` for retention: every
live group plus the newest terminal ones. Serving the raw graph would
grow without bound — evicted groups' nodes linger until bounded pruning
lands. Within a retained group nothing is filtered: group roots ride as
ordinary nodes, and `Done` nodes stay, which is the projection defect
behind the "rebuild shows a single node" report.

The endpoint lands in the same commit rather than after it. Without a
consumer the whole projection is dead code, and a wire type nobody
produces cannot be reviewed for whether it says the right things.

Its OpenAPI body is `serde_json::Value`, matching `api_state`: no type in
`hive-host-sock` derives `ToSchema`, and that crate stays dependency-lean
on purpose.
2026-08-03 00:39:14 +02:00
..
approvals.rs hive-c0re: drop redundant METHOD/path prefixes from OpenAPI summaries 2026-08-02 21:35:17 +02:00
build_logs.rs refactor(#2949): the build-log row carries its node id 2026-08-02 22:00:34 +02:00
extra_forges.rs hive-c0re: drop redundant METHOD/path prefixes from OpenAPI summaries 2026-08-02 21:35:17 +02:00
health.rs hive-c0re: drop redundant METHOD/path prefixes from OpenAPI summaries 2026-08-02 21:35:17 +02:00
infra_containers.rs hive-c0re: drop redundant METHOD/path prefixes from OpenAPI summaries 2026-08-02 21:35:17 +02:00
journal.rs hive-c0re: drop redundant METHOD/path prefixes from OpenAPI summaries 2026-08-02 21:35:17 +02:00
lifecycle_ops.rs hive-c0re: drop redundant METHOD/path prefixes from OpenAPI summaries 2026-08-02 21:35:17 +02:00
matrix_accounts.rs hive-c0re: drop redundant METHOD/path prefixes from OpenAPI summaries 2026-08-02 21:35:17 +02:00
meta_inputs.rs hive-c0re: split OpenAPI summary/description, move param docs to params 2026-08-02 21:35:17 +02:00
misc_api.rs hive-c0re: drop redundant METHOD/path prefixes from OpenAPI summaries 2026-08-02 21:35:17 +02:00
mod.rs c0re: serve the jobq graph generically at /api/jobq/graph 2026-08-03 00:39:14 +02:00
permissions.rs hive-c0re: drop redundant METHOD/path prefixes from OpenAPI summaries 2026-08-02 21:35:17 +02:00
questions.rs hive-c0re: drop redundant METHOD/path prefixes from OpenAPI summaries 2026-08-02 21:35:17 +02:00
schedules.rs hive-c0re: drop redundant METHOD/path prefixes from OpenAPI summaries 2026-08-02 21:35:17 +02:00
state_files.rs hive-c0re: drop redundant METHOD/path prefixes from OpenAPI summaries 2026-08-02 21:35:17 +02:00
state_snapshot.rs c0re: serve the jobq graph generically at /api/jobq/graph 2026-08-03 00:39:14 +02:00
tombstones.rs hive-c0re: drop redundant METHOD/path prefixes from OpenAPI summaries 2026-08-02 21:35:17 +02:00
topology.rs hive-c0re: drop redundant METHOD/path prefixes from OpenAPI summaries 2026-08-02 21:35:17 +02:00
webhook.rs hive-c0re: split OpenAPI summary/description, move param docs to params 2026-08-02 21:35:17 +02:00