Nothing submits an approval since scheduled prompts left hive-c0re, so the
queue only acted on rows written before that.
- hive-c0re: the approvals store and its migrations, approve/deny/
resolve actions, the ResolveApproval tail node (and meta_update's
approval_id), POST /api/approve and /api/deny, the approval views on
/api/state, the approval_resolved dashboard event, the orphan GC,
destroy/purge failing pending rows, and the approval rows in
get_loose_ends. DestroyBookkeeping loses the purge flag, which only
worded the approval-failure note.
- The CancelLooseEnd request goes: its only hive-c0re arm was the
approval one. cancel_loose_end handles reminder and todo in the harness.
- Wire types: hive_sh4re::approvals (ReminderStats moves to inbox),
LooseEnd::Approval, CancelLooseEndKind, HelperEvent::ApprovalResolved,
ToolGroup::Approvals, HostRequest::{Pending,Approve,Deny} and
HostResponse.approvals. HOST_SOCK_VERSION goes to 2 for the removed
field.
- hivectl loses the approvals verbs; docs/tools/hivectl-cli.md is
regenerated.
- The system prompt drops approval_resolved.
- The approvals table stays in broker.sqlite, unread, the same way the
operator_questions table was left when its store was removed.
- An `approvals` entry still in tool-groups.json is skipped with a warning
by ToolGroup::parse_list, like any unknown group.
- docs/agent-lifecycle/approvals.md is renamed to config-changes.md so the
code's doc pointers resolve; its content follows in the docs commit.
32 lines
1.3 KiB
Markdown
32 lines
1.3 KiB
Markdown
# hive-sh4re
|
|
|
|
The **shared payload vocabulary** between `hive-c0re` and the in-container
|
|
harness — the common types (`Message`, `LooseEnd`, `HelperEvent`, …)
|
|
that the per-socket wire protocols are built from. The request/response
|
|
_envelopes_ themselves now live in the per-socket crates (below); this crate
|
|
holds the payloads they carry.
|
|
|
|
## Where it sits
|
|
|
|
This is the shared payload crate; the per-socket _protocol envelopes_ have been
|
|
split into their own smaller crates so specialised binaries don't have to pull
|
|
in all of `hive-sh4re`:
|
|
|
|
- `hive-host-sock` — host admin socket (`hivectl` ↔ `hive-c0re`)
|
|
- `hive-core-agent-sock` — per-agent/manager socket (`/run/hive/mcp.sock`)
|
|
- `hive-priv-sock` — the privileged-helper socket
|
|
|
|
Those crates re-export or reference the payload types that still live here
|
|
(`Message`, `LooseEnd`, …).
|
|
|
|
## Modules
|
|
|
|
- **`wire_time`** — the timestamp convention: wire fields are
|
|
`chrono::DateTime<Utc>` (serialized RFC 3339), while sqlite storage + input
|
|
args stay unix-epoch `i64`; this module owns the two boundary conversions.
|
|
- **`paths`** — well-known on-disk path helpers.
|
|
- **`assets`** — resolves bundled runtime asset paths (branding, prompts) under
|
|
`HIVE_ASSETS_DIR`.
|
|
|
|
Agent-name fields are typed as `hive_types::Ident` for serde-validated parsing at
|
|
the socket boundary.
|