docs: state current behaviour without change-log wording
This commit is contained in:
parent
788542ba75
commit
7d352486cd
5 changed files with 9 additions and 19 deletions
|
|
@ -215,7 +215,7 @@ Three indices:
|
||||||
- `(node_id)` — added by a later migration so a build log row can be
|
- `(node_id)` — added by a later migration so a build log row can be
|
||||||
looked up by the job-queue node it belongs to (a `hive_jobq` node is
|
looked up by the job-queue node it belongs to (a `hive_jobq` node is
|
||||||
immutable after insert, so hive-c0re records the link on the log row
|
immutable after insert, so hive-c0re records the link on the log row
|
||||||
instead); rows predating the column have `node_id IS NULL`.
|
instead); `node_id` is nullable.
|
||||||
|
|
||||||
Writes are best-effort: `append_stdout` / `append_stderr` / `finish`
|
Writes are best-effort: `append_stdout` / `append_stderr` / `finish`
|
||||||
log a warning on sqlite error and let the build continue. A failed
|
log a warning on sqlite error and let the build continue. A failed
|
||||||
|
|
@ -298,11 +298,9 @@ Under `/var/lib/hyperhive/agents/<name>/`:
|
||||||
`hive-forge-notify` — upsert keyed todos here over the harness's
|
`hive-forge-notify` — upsert keyed todos here over the harness's
|
||||||
in-agent socket, `HIVE_AGENT_SOCKET`; the harness merges them into
|
in-agent socket, `HIVE_AGENT_SOCKET`; the harness merges them into
|
||||||
`get_loose_ends` output and clears a row on `mark_todo_done`).
|
`get_loose_ends` output and clears a row on `mark_todo_done`).
|
||||||
Consolidates todos and reminders into one file. A one-time boot
|
At boot, `db_migrate::run` creates this file from
|
||||||
migration (`db_migrate::run`) folds any pre-existing files
|
`hyperhive-todos.sqlite` and `hyperhive-reminders.sqlite` when those
|
||||||
(`hyperhive-todos.sqlite`, `hyperhive-reminders.sqlite`, the older
|
are present. Also backs the `mcp__hyperhive__remind` queue.
|
||||||
file-based `mcp-loose-ends/` scanner) into this path the first time
|
|
||||||
a harness boots. Also backs the `mcp__hyperhive__remind` queue.
|
|
||||||
|
|
||||||
The harness itself is also a producer, not just the socket server:
|
The harness itself is also a producer, not just the socket server:
|
||||||
boot wiring's `spawn_todo_socket` starts `todo_server::run` (the
|
boot wiring's `spawn_todo_socket` starts `todo_server::run` (the
|
||||||
|
|
@ -507,9 +505,8 @@ reinstall.
|
||||||
|
|
||||||
The harness runs as a per-agent unix user inside the container
|
The harness runs as a per-agent unix user inside the container
|
||||||
(`services.hyperhive.agent.user.name`, defaults to the agent's logical label so each
|
(`services.hyperhive.agent.user.name`, defaults to the agent's logical label so each
|
||||||
container has a uniquely named user). Operators with root-owned
|
container has a uniquely named user). The activation script below
|
||||||
state dirs need a one-time data shuffle so they don't lose their claude
|
moves root-owned state to the agent user so the claude session survives.
|
||||||
session.
|
|
||||||
|
|
||||||
`system.activationScripts.hive-agent-user-migrate` (in
|
`system.activationScripts.hive-agent-user-migrate` (in
|
||||||
`nix/agent-modules/user.nix`) runs on every activation,
|
`nix/agent-modules/user.nix`) runs on every activation,
|
||||||
|
|
@ -543,8 +540,6 @@ container lifetime:
|
||||||
there as the agent user. Why the mode matters:
|
there as the agent user. Why the mode matters:
|
||||||
[`boundary.md`](../trust-boundary/boundary.md#the-per-agent-socket-dir).
|
[`boundary.md`](../trust-boundary/boundary.md#the-per-agent-socket-dir).
|
||||||
|
|
||||||
The activation script migrates any root-owned state dir still present.
|
|
||||||
|
|
||||||
## Matrix per-agent daemon + token-arrival trigger
|
## Matrix per-agent daemon + token-arrival trigger
|
||||||
|
|
||||||
`hive-matrix-daemon` is a long-running matrix-sdk Client + sync
|
`hive-matrix-daemon` is a long-running matrix-sdk Client + sync
|
||||||
|
|
|
||||||
|
|
@ -281,7 +281,7 @@ to discover valid label names before triaging or to audit the label set.
|
||||||
falling back. `--job` selects the job (0-based, default 0);
|
falling back. `--job` selects the job (0-based, default 0);
|
||||||
`--attempt` picks the run attempt for the durable path (default 1;
|
`--attempt` picks the run attempt for the durable path (default 1;
|
||||||
re-runs increment it). `--json` wraps the output.
|
re-runs increment it). `--json` wraps the output.
|
||||||
- `ci-rerun` re-runs CI without pushing an empty commit: it dispatches a
|
- `ci-rerun` re-runs CI: it dispatches a
|
||||||
**fresh** run of the workflow via the workflow-dispatch API
|
**fresh** run of the workflow via the workflow-dispatch API
|
||||||
(`POST …/actions/workflows/<workflow>/dispatches {"ref":"<branch>"}`).
|
(`POST …/actions/workflows/<workflow>/dispatches {"ref":"<branch>"}`).
|
||||||
Resolve the branch with `--run <n>` (the same run number `ci-log` /
|
Resolve the branch with `--run <n>` (the same run number `ci-log` /
|
||||||
|
|
|
||||||
|
|
@ -98,9 +98,7 @@ route refuses to create an account by that name.
|
||||||
mechanism behind "accounts are the enable signal": an agent with no
|
mechanism behind "accounts are the enable signal": an agent with no
|
||||||
homeserver and no account of its own has an empty set, so it gets no
|
homeserver and no account of its own has an empty set, so it gets no
|
||||||
daemon, no path watcher and no injected MCP entry. That's how you give
|
daemon, no path watcher and no injected MCP entry. That's how you give
|
||||||
an agent no matrix tools. Setting
|
an agent no matrix tools. Declaring an external account with
|
||||||
`services.hyperhive.agent.matrix.enable` fails evaluation with a
|
|
||||||
message saying so. Declaring an external account with
|
|
||||||
its own `homeserver` is enough on its own; a hive homeserver isn't
|
its own `homeserver` is enough on its own; a hive homeserver isn't
|
||||||
required.
|
required.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -122,8 +122,7 @@ container's own activation (`hive-agent-user-migrate`) then chowns it to
|
||||||
the agent user and sets `0751`. The container has no user namespace, so
|
the agent user and sets `0751`. The container has no user namespace, so
|
||||||
that uid is the host inode's owner. Don't add a host-side chown or chmod:
|
that uid is the host inode's owner. Don't add a host-side chown or chmod:
|
||||||
two owners of one path revert each other. Until the container activates,
|
two owners of one path revert each other. Until the container activates,
|
||||||
the dir is `0751 root`: nothing but root can plant a socket in it, and a
|
the dir is `0751 root`: nothing but root can plant a socket in it.
|
||||||
root-run harness can still bind.
|
|
||||||
|
|
||||||
<!-- vale write-good.Passive = YES -->
|
<!-- vale write-good.Passive = YES -->
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -161,8 +161,6 @@ the checked ids to `POST /api/todos/mark-done`, which dismisses them
|
||||||
from the harness-local store (same effect as `cancel_loose_end(kind:
|
from the harness-local store (same effect as `cancel_loose_end(kind:
|
||||||
"todo")`, just from the web UI instead of the agent's own tool calls).
|
"todo")`, just from the web UI instead of the agent's own tool calls).
|
||||||
|
|
||||||
The todos flyout is the only per-agent flyout.
|
|
||||||
|
|
||||||
## Live view
|
## Live view
|
||||||
|
|
||||||
Each agent runs an `events::Bus`: a `tokio::sync::broadcast<LiveEvent>`
|
Each agent runs an `events::Bus`: a `tokio::sync::broadcast<LiveEvent>`
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue