ask: rename ask_operator → ask + optional 'to' for agent-to-agent Q&A
This commit is contained in:
parent
87f8f8a123
commit
82b0877c47
21 changed files with 640 additions and 266 deletions
30
CLAUDE.md
30
CLAUDE.md
|
|
@ -22,7 +22,10 @@ hive-c0re/ host daemon + CLI (one binary, subcommand-dispatched)
|
|||
src/broker.rs sqlite Message store + broadcast channel for SSE +
|
||||
hourly vacuum of delivered>30d
|
||||
src/approvals.rs sqlite Approval queue + kinds
|
||||
src/operator_questions.rs sqlite question queue backing `ask_operator`
|
||||
src/operator_questions.rs sqlite question queue backing `ask` /
|
||||
`answer` (both operator + agent-to-agent)
|
||||
src/questions.rs shared dispatch for `Ask` / `Answer` —
|
||||
used by both agent + manager surfaces
|
||||
src/reminder_scheduler.rs 5s poll loop: drains due reminders,
|
||||
resolves file_path container→host, persists
|
||||
payload + delivers pointer string
|
||||
|
|
@ -31,8 +34,9 @@ hive-c0re/ host daemon + CLI (one binary, subcommand-dispatched)
|
|||
src/crash_watch.rs poll every 10s; fire HelperEvent::ContainerCrash
|
||||
when a previously-running container disappears
|
||||
without an operator-initiated transient
|
||||
src/coordinator.rs shared state (broker/approvals/questions/transient/
|
||||
sockets) + tombstone enumeration + kick_agent
|
||||
src/coordinator.rs shared state (broker/approvals/operator_questions/
|
||||
transient/sockets) + tombstone enumeration +
|
||||
kick_agent + notify_agent (helper-event push)
|
||||
src/actions.rs approve/deny/destroy (transient-aware)
|
||||
src/auto_update.rs startup rebuild scan + ensure_manager +
|
||||
meta::lock_update_hyperhive bump
|
||||
|
|
@ -161,11 +165,21 @@ Prune freely.
|
|||
domain tooling — the agent flake's `inputs` block pulls
|
||||
the external flake, `agent.nix` references it via
|
||||
`flakeInputs.<name>.packages.${pkgs.system}.default`.
|
||||
- **Just landed:** `mcp__hyperhive__ask_operator` is now on
|
||||
the sub-agent surface too (not just the manager). Answer
|
||||
routes back to whichever agent asked via
|
||||
`coord.notify_agent`; the dashboard already shows the
|
||||
asker on each question row.
|
||||
- **Just landed:** `ask_operator` → `ask` rename + optional
|
||||
`to: <agent>` param for agent-to-agent structured Q&A.
|
||||
Recipient defaults to the operator (dashboard); peer
|
||||
questions land in the target's inbox as `QuestionAsked`
|
||||
events and the recipient replies via new `answer(id,
|
||||
answer)` tool. Answer always flows back as
|
||||
`QuestionAnswered { id, question, answer, answerer }`
|
||||
(renamed from `OperatorAnswered`; `answerer` distinguishes
|
||||
operator vs peer vs `ttl-watchdog`). Authorisation:
|
||||
operator-targeted questions can only be answered by the
|
||||
operator; agent-targeted by the named target (or the
|
||||
operator as override). Self-ask rejected. Shared dispatch
|
||||
lives in `hive-c0re/src/questions.rs`. Dashboard's
|
||||
`pending()` filters on `target IS NULL` so peer questions
|
||||
never leak into the operator's queue.
|
||||
- **Just landed:** dashboard now has a terminal-style
|
||||
compose textbox under the message-flow stream — `@name`
|
||||
picks the recipient (sticky in localStorage, auto-
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue