Watch
0
0
Fork
You've already forked hyperhive
0

docs: state current behaviour, drop change-log wording

Refs #3902
This commit is contained in:
atlas 2026-10-02 07:56:18 +02:00 • committed by mara
commit 578ee90096
2 changed files with 11 additions and 12 deletions

View file

@ -133,7 +133,7 @@ everything below applies only when it doesn't:
(inject a `from: <X>` message straight into the caller's own inbox) (inject a `from: <X>` message straight into the caller's own inbox)
is on this socket too but isn't privileged to either flavour; no is on this socket too but isn't privileged to either flavour; no
built-in in-container producer calls it today — matrix, bash and built-in in-container producer calls it today — matrix, bash and
forge notifications all moved to pushing a todo on the harness's forge notifications push a todo on the harness's
in-agent socket instead (see in-agent socket instead (see
[`docs/turn-loop/mcp.md`](../turn-loop/mcp.md#waking-the-agent-from-inside-the-container)). [`docs/turn-loop/mcp.md`](../turn-loop/mcp.md#waking-the-agent-from-inside-the-container)).
- **Storage/mounts** — only the manager container gets - **Storage/mounts** — only the manager container gets
@ -147,7 +147,7 @@ everything below applies only when it doesn't:
path writes `flake.lock` any more — `request_update_meta_inputs` was path writes `flake.lock` any more — `request_update_meta_inputs` was
removed, leaving the operator dashboard's `POST removed, leaving the operator dashboard's `POST
/api/meta-update` as the only entry point. /api/meta-update` as the only entry point.
- **Prompt** — _not_ treated differently in practice any more: `prompts/system.md` - **Prompt** — treated identically: `prompt::render` always filters for `agent`. `prompts/system.md`
still carries `<!-- role:agent -->` / `<!-- role:manager -->` marker still carries `<!-- role:agent -->` / `<!-- role:manager -->` marker
blocks, but `prompt::render` filters for `"agent"` unconditionally for blocks, but `prompt::render` filters for `"agent"` unconditionally for
every container, manager included ("always `agent` role — there is every container, manager included ("always `agent` role — there is

View file

@ -67,7 +67,7 @@ no call site today) as regular inbox messages (same `recv`
path; body is a JSON object with an `event` discriminant field). path; body is a JSON object with an `event` discriminant field).
`ApprovalResolved` goes to whichever agent actually submitted the `ApprovalResolved` goes to whichever agent actually submitted the
approval (`Coordinator::notify_submitter`, looked up from the approval (`Coordinator::notify_submitter`, looked up from the
authenticated socket caller at submit time; a legacy row with no authenticated socket caller at submit time; a row with no
recorded submitter falls back to the manager, `ruth`). recorded submitter falls back to the manager, `ruth`).
`ContainerCrash` always goes to `ruth` (`Coordinator::notify_manager`, `ContainerCrash` always goes to `ruth` (`Coordinator::notify_manager`,
hardcoded — `hive-c0re/src/workers/crash_watch.rs`). A `MergeConfigPr` hardcoded — `hive-c0re/src/workers/crash_watch.rs`). A `MergeConfigPr`
@ -78,11 +78,10 @@ outcomes](README.md#turn-outcomes)) via a generic "call
`get_loose_ends`" prompt rather than the event body itself. Lifecycle `get_loose_ends`" prompt rather than the event body itself. Lifecycle
transitions the job-queue scheduler or crash watcher drive directly — transitions the job-queue scheduler or crash watcher drive directly —
stop/kill, destroy, a flake-rev login or logout state change — reach stop/kill, destroy, a flake-rev login or logout state change — reach
no individual agent any more: they publish onto a swarm-wide NATS no individual agent: they publish onto a swarm-wide NATS
JetStream stream instead (`swarm_notices::notify`, JetStream stream (`swarm_notices::notify`,
`hive-c0re/src/swarm_notices.rs`), since every hive is swarm-controlled `hive-c0re/src/swarm_notices.rs`); every hive is swarm-controlled, so
now and there is no manager-agent fallback left to push an in-container there is no manager-agent fallback to push an in-container todo to.
todo to.
**Inbox** (`inbox` group): `get_loose_ends()`, **Inbox** (`inbox` group): `get_loose_ends()`,
`cancel_loose_end(kind, id)`, `remind(message, delay_seconds? | `cancel_loose_end(kind, id)`, `remind(message, delay_seconds? |
@ -178,12 +177,12 @@ hive_name?, swarm_name?, matrix_accounts? }`. `matrix_accounts` is a
## Waking the agent from inside the container ## Waking the agent from inside the container
The built-in producers (matrix, bash, forge) no longer dial a direct The built-in producers (matrix, bash, forge) upsert a todo on the
wake — all three now upsert a todo on the harness's in-agent socket harness's in-agent socket (`HIVE_AGENT_SOCKET`, `UpsertTodo` — see
(`HIVE_AGENT_SOCKET`, `UpsertTodo` — see
[`docs/tools/bash.md` § Completion as a todo [`docs/tools/bash.md` § Completion as a todo
(loose-ends v2)](../tools/bash.md#completion-as-a-todo-loose-ends-v2) (loose-ends v2)](../tools/bash.md#completion-as-a-todo-loose-ends-v2)
for the full upsert/signal/clear mechanism): a new or changed summary for the full upsert/signal/clear mechanism); none dials a direct
wake: a new or changed summary
makes the harness signal its own turn loop, with no hive-c0re makes the harness signal its own turn loop, with no hive-c0re
round-trip. An external MCP server (or any other in-container process) round-trip. An external MCP server (or any other in-container process)
can push its own todo the same way — `subsystem` is a plain string, can push its own todo the same way — `subsystem` is a plain string,