From a437f9ccd51eef77e232353e53ff5979c4a1b7ad Mon Sep 17 00:00:00 2001 From: atlas Date: Fri, 13 Nov 2026 03:25:41 +0100 Subject: [PATCH] drop hive and agent response fields the frontend never reads --- Cargo.lock | 2 - .../agent-state/persistence.md | 2 +- .../4-implementation/scheduler/coordinator.md | 2 +- .../turn-loop/claude-invocation.md | 4 +- docs/4-implementation/web-ui/agent-page.md | 7 +- docs/4-implementation/web-ui/dashboard.md | 16 +- docs/4-implementation/web-ui/shape.md | 7 +- docs/5-project/process/conventions.md | 4 +- frontend/packages/agent/src/types.ts | 2 - frontend/packages/dashboard/src/agents.js | 7 +- .../shared/src/jobq-graph/JobqGraph.tsx | 4 +- hive-agent/src/stats.rs | 34 ++- hive-agent/src/web_ui/actions.rs | 27 +-- hive-agent/src/web_ui/state.rs | 109 +++++---- hive-c0re/src/container_view.rs | 100 +++------ hive-c0re/src/coordinator.rs | 45 +--- hive-c0re/src/dashboard/rebuild_queue.rs | 23 +- hive-c0re/src/dashboard/state_snapshot.rs | 208 +++++------------- hive-c0re/src/dashboard/tombstones.rs | 1 - hive-c0re/src/dashboard_events.rs | 70 +++--- hive-c0re/src/forge/mod.rs | 13 -- hive-c0re/src/main.rs | 9 +- hive-c0re/src/stats/host_stats.rs | 3 - hive-c0re/src/stores/broker.rs | 4 +- hive-jobq-wire/Cargo.toml | 2 - hive-jobq-wire/src/lib.rs | 139 +++--------- hive-sh4re/src/container.rs | 58 +++-- hivectl/src/dag_progress.rs | 43 +--- 28 files changed, 347 insertions(+), 598 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0edb4a43f..39eff5466 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1939,8 +1939,6 @@ dependencies = [ name = "hive-jobq-wire" version = "0.1.0" dependencies = [ - "chrono", - "enumflags2", "hive-jobq", "serde", "serde_json", diff --git a/docs/4-implementation/agent-state/persistence.md b/docs/4-implementation/agent-state/persistence.md index 0f7b1f3e5..ecabda264 100644 --- a/docs/4-implementation/agent-state/persistence.md +++ b/docs/4-implementation/agent-state/persistence.md @@ -127,7 +127,7 @@ Shape: - `needs_login` — set when a turn hits 401 (expired OAuth credentials); cleared by `"online"` status (re-auth completed). Drives the `needs_login` flag alongside the `claude_has_session` check. -- `active_model` — the resolved Claude model for the dashboard badge. +- `active_model` — the resolved Claude model. The turn loop is the only writer today, but it still goes read-modify-write under a shared in-process lock and merges into the diff --git a/docs/4-implementation/scheduler/coordinator.md b/docs/4-implementation/scheduler/coordinator.md index 423c39d48..b8d62a81e 100644 --- a/docs/4-implementation/scheduler/coordinator.md +++ b/docs/4-implementation/scheduler/coordinator.md @@ -256,7 +256,7 @@ the dashboard renders one recent-builds list and one number bounds it. ### Wire shape -`RebuildQueueChanged { seq }` (event name kept) — **a bare trigger, no +`RebuildQueueChanged` (event name kept) — **a bare trigger, no payload.** It says _the queue changed_; a client that wants to know how re-fetches `GET /api/jobq/graph`. diff --git a/docs/4-implementation/turn-loop/claude-invocation.md b/docs/4-implementation/turn-loop/claude-invocation.md index 231968fc9..d28766955 100644 --- a/docs/4-implementation/turn-loop/claude-invocation.md +++ b/docs/4-implementation/turn-loop/claude-invocation.md @@ -73,9 +73,7 @@ match wins): Once a turn completes, the window the model reports (`modelUsage.*.contextWindow`) replaces this value. -The effective window drives watermarks; the harness exposes it at -runtime via `/api/state.context_window_tokens` so the UI can show a -percentage-of-window ctx badge. +The effective window drives watermarks; no web endpoint serves it. **Session identity — a constant title.** Every turn keys on one fixed, harness-owned session title (`turn::session_title()`, default diff --git a/docs/4-implementation/web-ui/agent-page.md b/docs/4-implementation/web-ui/agent-page.md index cf3b83252..68c415b6b 100644 --- a/docs/4-implementation/web-ui/agent-page.md +++ b/docs/4-implementation/web-ui/agent-page.md @@ -99,7 +99,7 @@ at a given viewport width. Two columns: Values throughout come from `GET /api/state`'s cold-load snapshot, kept in sync afterwards by the SSE stream (see Live view below) — -`context_window_tokens` for the ctx badge tooltip, `qualified_label` +`qualified_label` (the hive-qualified `name@domain` form, used for the browser tab title so two tabs from different hives are distinguishable; the header's own `◆