docs: move the disk-watch auto-created-todo detail out of turn-loop/README.md

The disk_watch todo producer isn't turn-loop-shaped -- it's disk-space
state tracked in persistence.md's State dirs (per agent) section, right
next to hyperhive-todos.sqlite's own description. Leave a lean pointer
in the boot-wiring narrative instead of duplicating the detail.

Fixes #2727
This commit is contained in:
iris 2026-08-03 22:30:38 +02:00
commit 5837bcc870
2 changed files with 17 additions and 8 deletions

View file

@ -297,6 +297,17 @@ Under `/var/lib/hyperhive/agents/<name>/`:
(`HIVE_AGENT_SOCKET`); the harness merges them into `get_loose_ends`
output and clears a row on `mark_todo_done`. Replaced the old
file-based `mcp-loose-ends/` scanner.
The harness itself is also a producer, not just the socket server:
boot wiring's `spawn_todo_socket` starts `todo_server::run` (the
socket the out-of-process daemons above dial) alongside
`disk_watch::run` — an *in-process* todo producer that shares the
store + wake `Notify` directly rather than dialling its own socket.
`disk_watch` raises a keyed `disk` todo when the filesystem backing
this agent's state gets tight, naming the agent's own biggest
directories; the summary is bucketed and carries no raw byte
counts, so an unchanged situation re-upserts as `changed == false`
and never re-wakes.
- `hyperhive-events.sqlite` — turn-loop event log.
- `hyperhive-turn-stats.sqlite` — per-turn timing stats.
- `hyperhive-model` — single-line model name override file.

View file

@ -101,14 +101,12 @@ the login flow first (`NeedsLogin`). (The forge notification poller
used to be spawned here too; it is its own process now —
`hive-forge-notify`, see [`forge.md`](../forge.md).)
`spawn_todo_socket` opens the todos store and, alongside
`todo_server::run` (the socket the out-of-process producers dial),
spawns `disk_watch::run` — an *in-process* todo producer, so it shares
the store + wake `Notify` directly rather than dialling its own socket.
It raises a keyed `disk` todo when the filesystem backing the agent's
state gets tight, naming the agent's own biggest directories; the
summary is bucketed and carries no raw byte counts, so an unchanged
situation re-upserts as `changed == false` and never re-wakes.
`spawn_todo_socket` opens the todos store, the socket the in-container
producers dial (matrix / bash / forge-notify daemons), and an
in-process `disk_watch` todo producer for low state-disk space. See
[`docs/persistence.md`](../persistence.md#state-dirs-per-agent) for
what each todo producer watches and how the store + `get_loose_ends`
merge work.
Plugin install failures are not fatal: each entry comes back as a
human-readable failure string that gets routed via