docs: turn_stats sink + event-driven agent badges + dashboard event vocabulary
This commit is contained in:
parent
e772182724
commit
d890509be3
3 changed files with 171 additions and 30 deletions
|
|
@ -41,17 +41,36 @@ One table:
|
|||
harness emits during turn loop execution.
|
||||
|
||||
The harness writes; the host vacuums. `hive-c0re::events_vacuum`
|
||||
runs hourly and sweeps every existing agent state dir, applying the
|
||||
same two-stage delete to each file: drop rows older than 7 days,
|
||||
then trim to the 2000 most-recent. Centralising retention on the
|
||||
host means a misbehaving harness can't disable its own vacuum and
|
||||
agents don't need any cleanup wiring of their own.
|
||||
runs hourly and sweeps every existing agent state dir, deleting
|
||||
rows older than 7 days. Age-only — no row cap — so a chatty turn
|
||||
doesn't lose history sooner than a quiet one; disk pressure on a
|
||||
sustained burst is the cheaper problem to have. Centralising
|
||||
retention on the host means a misbehaving harness can't disable
|
||||
its own vacuum and agents don't need any cleanup wiring of their
|
||||
own.
|
||||
|
||||
Path overridable via `HYPERHIVE_EVENTS_DB` (for dev / no-`/state`
|
||||
setups). On open failure the `Bus` falls back to no-store mode
|
||||
rather than crashing the harness — events still broadcast over SSE,
|
||||
just nothing persisted.
|
||||
|
||||
### `/state/hyperhive-turn-stats.sqlite` (per agent)
|
||||
|
||||
Per-turn analytics sink. One row per claude turn captures
|
||||
identity (`model`, `wake_from`, `result_kind`), timing
|
||||
(`started_at`, `ended_at`, `duration_ms`), cost (input / output /
|
||||
cache_read / cache_creation token counts), behaviour
|
||||
(`tool_call_count` + `tool_call_breakdown_json`), and post-turn
|
||||
snapshot metrics (`open_threads_count`,
|
||||
`open_reminders_count` — fetched via the same socket the harness
|
||||
already uses for `GetOpenThreads` + `CountPendingReminders`).
|
||||
Bin-loop helpers `build_row` + `record` land each row at
|
||||
`turn_end`; writes are best-effort, a sqlite hiccup logs + lets
|
||||
the turn loop continue.
|
||||
|
||||
No host-side vacuum yet — tracked in `TODO.md` under Telemetry
|
||||
(target retention ~90 days, age-only sweep like events_vacuum).
|
||||
|
||||
### `/state/hyperhive-model` (per agent)
|
||||
|
||||
Single-line text file holding the claude model name currently
|
||||
|
|
@ -68,8 +87,10 @@ Under `/var/lib/hyperhive/agents/<name>/`:
|
|||
- `config/` — the proposed nix repo (manager-editable).
|
||||
- `claude/` — claude OAuth credentials, bind-mounted RW to
|
||||
`/root/.claude` inside the container.
|
||||
- `state/` — durable notes + the events.sqlite db, bind-mounted
|
||||
to `/state` inside the container.
|
||||
- `state/` — durable notes, the events.sqlite db, and the
|
||||
turn-stats sqlite db. Bind-mounted to `/agents/<name>/state`
|
||||
inside the container (the manager still uses the legacy
|
||||
`/state` mount point — same host path either way).
|
||||
|
||||
Under `/var/lib/hyperhive/applied/<name>/` — the hive-c0re-only
|
||||
applied repo. Tracks `flake.nix` (module-only boilerplate; never
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue