docs(turn-loop): fix wrong HelperEvent lifecycle-event list
Verified against hive-sh4re/src/manager.rs and docs/approvals.md: only ApprovalResolved/ContainerCrash/NeedsUpdate/QuestionAsked/QuestionAnswered are HelperEvents delivered as inbox messages. spawned/rebuilt/killed/ destroyed/needs_login/logged_in/config_ready aren't HelperEvent variants at all — they deliver via Coordinator::push_todo/push_todo_submitter (the in-container todo socket), not the broker inbox.
This commit is contained in:
parent
efc30a0bcf
commit
637d36a11f
1 changed files with 14 additions and 7 deletions
|
|
@ -63,16 +63,23 @@ ttl_seconds?, to?)`, `answer(id, answer)`, `ack_until(up_to)`.
|
||||||
`ack_until(N)` to prevent re-pop. Acked rows never redeliver.
|
`ack_until(N)` to prevent re-pop. Acked rows never redeliver.
|
||||||
Transient pings (sentinel id 0) have nothing to ack and show no marker.
|
Transient pings (sentinel id 0) have nothing to ack and show no marker.
|
||||||
|
|
||||||
**System messages** (from sender `system`): lifecycle and Q&A events
|
**System messages** (from sender `system`): the higher-urgency
|
||||||
|
lifecycle + Q&A events (`hive_sh4re::manager::HelperEvent`) are
|
||||||
delivered as regular inbox messages (same `recv` path; body is a JSON
|
delivered as regular inbox messages (same `recv` path; body is a JSON
|
||||||
object with an `event` discriminant field). The **submitting agent**
|
object with an `event` discriminant field). The **submitting agent**
|
||||||
(the root agent for top-level containers; an agent with the `approvals`
|
(the root agent for top-level containers; an agent with the `approvals`
|
||||||
tool group for its own subtree) receives lifecycle events (`spawned`,
|
tool group for its own subtree) receives `container_crash`,
|
||||||
`rebuilt`, `killed`, `destroyed`, `container_crash`, `needs_login`,
|
`needs_update`, and `approval_resolved` this way. Any agent receives
|
||||||
`logged_in`, `config_ready`, `needs_update`, `approval_resolved`). Any
|
Q&A events when it is the declared target (`question_asked`) or the
|
||||||
agent receives Q&A events when it is the declared target
|
asker (`question_answered`). The remaining, lower-urgency lifecycle
|
||||||
(`question_asked`) or the asker (`question_answered`). Full payload
|
notices — `spawned`, `rebuilt`, `killed`, `destroyed`, `needs_login`,
|
||||||
shapes and routing logic in
|
`logged_in`, `config_ready` — skip the inbox entirely: they land as
|
||||||
|
todos on the submitting agent's in-container todo socket instead
|
||||||
|
(`Coordinator::push_todo`/`push_todo_submitter`, `subsystem = "core"`),
|
||||||
|
which still wakes a turn (the todo-wake path — see [Turn
|
||||||
|
outcomes](README.md#turn-outcomes)) but via a generic "call
|
||||||
|
`get_loose_ends`" prompt rather than the event body itself. Full
|
||||||
|
payload shapes and routing logic in
|
||||||
[`docs/approvals.md` § Helper events](../approvals.md#helper-events-to-the-submitting-agent).
|
[`docs/approvals.md` § Helper events](../approvals.md#helper-events-to-the-submitting-agent).
|
||||||
|
|
||||||
**Inbox** (`inbox` group): `get_loose_ends(agent?)`,
|
**Inbox** (`inbox` group): `get_loose_ends(agent?)`,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue