Watch
0
0
Fork
You've already forked hyperhive
0

Compare commits

...
5 changed files with 12 additions and 11 deletions

View file

@ -15,11 +15,12 @@ future reader won't think to look).
- **Pure fire-and-forget notification, no reply expected** - a
dashboard-visible one-way message is fine. Don't reach for a
conversational channel just to say something that needs no response.
- **A specific decision you need recorded, that threads an answer back
to you** - use a mechanism built for exactly that (queues cleanly,
the answer comes back attached to the question). This matters for
anything you'll need to point back to later - a gated approval, a
go/no-go call.
- **A specific decision you need recorded** (a gated approval, a
go/no-go call) - if it's issue-shaped, it's really the next bullet
(post it where the context lives and it stays that thread's own
back-and-forth); otherwise use a real conversational channel and
write the outcome down somewhere a future reader will actually find
it - no tool threads that bookkeeping back to you automatically.
- **An issue-shaped question or decision** - post it where the
surrounding context already lives (the tracked item itself), not in
a side channel. A future reader looking at that item should find the

View file

@ -391,8 +391,8 @@ impl AgentServer {
};
let kind_label = loose_end_kind_label(kind);
// Reminders are harness-local — dial the in-agent socket
// directly instead of the broker; every other kind
// (question/approval) still lives in c0re.
// directly instead of the broker; the other kind (approval)
// still lives in c0re.
if kind == hive_sh4re::inbox::CancelLooseEndKind::Reminder {
return match dial_agent_socket(&hive_agent_sock::Request::CancelReminder { id })
.await

View file

@ -26,8 +26,8 @@ pub const MESSAGE_MAX_BYTES: usize = 4096;
/// `Response::Err`) on failure.
///
/// `label` shows up in the error message verbatim — pass a short
/// noun like `"send"`, `"question"`, `"broadcast"` so the model can
/// tell which call got rejected.
/// noun like `"send"` or `"broadcast"` so the model can tell which
/// call got rejected.
pub fn check_size(label: &str, body: &str) -> Result<(), String> {
if body.len() > MESSAGE_MAX_BYTES {
Err(format!(

View file

@ -173,7 +173,7 @@ pub struct Coordinator {
/// Unified wire-facing event channel feeding the dashboard SSE
/// stream. Carries broker messages (mirrored from `broker.subscribe`
/// by the forwarder task in `main.rs`) and dashboard-only mutation
/// events (approval added/resolved, question added/answered, etc.).
/// events (approval added/resolved, etc.).
/// Snapshot endpoints capture `event_seq` before reading state so
/// the client can dedupe its buffered live traffic against the
/// snapshot.

View file

@ -86,7 +86,7 @@ pub struct PowerStore {
impl PowerStore {
/// Open (a connection to) the shared coordinator DB and ensure the
/// `agent_power` table exists. `db_path` is the same sqlite file
/// the broker / approvals / questions stores open.
/// the broker / approvals stores open.
pub fn open(db_path: &Path) -> Result<Self> {
let conn = crate::db::open(db_path, "agent_power")?;
conn.execute_batch(SCHEMA)