parent
ac35f0f2cf
commit
578ee90096
2 changed files with 11 additions and 12 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue