docs/agent.md: fix stale 3-flyout description; drop dead buildLooseEndsList
docs/web-ui/agent.md still described a "loose-ends" and "tasks" flyout that were superseded by the todos flyout when loose-ends-v2 landed — GET /api/loose-ends and GET /api/bash-tasks are both gone server-side. Replaced with an accurate description of the todos flyout (including the mark-done bulk action from #2919), and noted that the ask->operator inline-answer binding this doc also describes is currently non-functional (its data source was the same removed endpoint) — tracked separately as #2922, not fixed here. buildLooseEndsList in app.js rendered the old loose-ends flyout and had zero call sites left; removed it. buildAnswerForm stays — reconcileAskBinds still calls it, even though that path is currently dead per #2922. Fixes #2920
This commit is contained in:
parent
77e30dd1bc
commit
94fb42f2b6
2 changed files with 42 additions and 96 deletions
|
|
@ -147,34 +147,42 @@ newlines, Tab-completes slash commands (see "Terminal-embedded
|
|||
prompt" below).
|
||||
|
||||
**Side panel** (slide-in from right): singleton shared with the
|
||||
dashboard's side panel shape. Carries inbox and loose-ends flyouts
|
||||
(opened via the header pills) as well as long content (file previews,
|
||||
diffs, journald logs). Inbox flyout: unread messages addressed to
|
||||
this agent (`acked_at IS NULL`, newest-first, up to 30); reply
|
||||
messages indented with `↳ reply ·` in amber. A `✓ mark all read`
|
||||
button appears in the flyout header when the inbox is non-empty;
|
||||
clicking it confirms then POSTs cross-origin to the core
|
||||
dashboard's `POST /api/agent/{name}/mark-all-read` — all pending
|
||||
messages for this agent are acked, the harness won't receive
|
||||
wake-prompts for them. A `{ marked: N }` pill surfaces the count.
|
||||
After the drain the inbox list empties on reload (the filter is
|
||||
`acked_at IS NULL`, so drained messages disappear). Loose-ends flyout: questions,
|
||||
approvals, reminders, pending inbox messages, and unread matrix
|
||||
notifications pending against this agent (`GET /api/loose-ends`);
|
||||
question rows carry an inline answer form that POSTs cross-origin to
|
||||
the core dashboard's `POST /api/answer-question/{id}` so the operator answers
|
||||
*as operator* (see `docs/boundary.md`). Pending inbox messages (`✉ inbox
|
||||
— N pending message(s)`) and unread matrix rooms appear informational
|
||||
only (not cancellable from the flyout — drain with `recv` / `mark_read`
|
||||
in-turn). Tasks flyout: in-flight bash
|
||||
tasks (`GET /api/bash-tasks`); each row shows status (`▶ running` /
|
||||
`◷ queued`), the task id, elapsed time, and a truncated one-line
|
||||
command preview. Read-only — kill/inspect lives in the harness, not
|
||||
the page.
|
||||
dashboard's side panel shape. Carries inbox and todos flyouts (opened
|
||||
via the header pills) as well as long content (file previews, diffs,
|
||||
journald logs). Inbox flyout: unread messages addressed to this agent
|
||||
(`acked_at IS NULL`, newest-first, up to 30); reply messages indented
|
||||
with `↳ reply ·` in amber. A `✓ mark all read` button appears in the
|
||||
flyout header when the inbox is non-empty; clicking it confirms then
|
||||
POSTs cross-origin to the core dashboard's `POST
|
||||
/api/agent/{name}/mark-all-read` — all pending messages for this agent
|
||||
are acked, the harness won't receive wake-prompts for them. A `{
|
||||
marked: N }` pill surfaces the count. After the drain the inbox list
|
||||
empties on reload (the filter is `acked_at IS NULL`, so drained
|
||||
messages disappear). Todos flyout ("loose-ends v2"): the harness-local
|
||||
todos other subsystems (matrix, forge, bash) push at this agent
|
||||
(`GET /api/todos`) — each row shows the producing subsystem, an
|
||||
optional source label, a summary, and age. A checkbox per row plus a
|
||||
select-all / select-none / `✓ mark done` bulk row above the list POSTs
|
||||
the checked ids to `POST /api/todos/mark-done`, which dismisses them
|
||||
from the harness-local store (same effect as `cancel_loose_end(kind:
|
||||
"todo")`, just from the web UI instead of the agent's own tool calls).
|
||||
|
||||
**Ask → operator inline-answer binding.** When the agent emits
|
||||
`mcp__hyperhive__ask(to: "operator", ...)`, the tool_use renderer
|
||||
mounts an empty slot (`<div class="ask-answer-inline-slot">`)
|
||||
Older per-agent flyouts this doc used to describe (a "loose-ends"
|
||||
list of questions/approvals/reminders backed by a since-removed
|
||||
`GET /api/loose-ends`, and a read-only "tasks" list of in-flight bash
|
||||
tasks backed by a since-removed `GET /api/bash-tasks`) no longer
|
||||
exist — todos superseded both. One open gap from that migration:
|
||||
the "Ask → operator inline-answer binding" described below relies on
|
||||
that removed `/api/loose-ends` endpoint and is currently non-functional
|
||||
(hyperhive#2922) — the operator can still answer a pending question via
|
||||
the main dashboard's own question surfacing, just not inline in this
|
||||
agent's terminal.
|
||||
|
||||
**Ask → operator inline-answer binding** (currently non-functional,
|
||||
see the todos-flyout paragraph above + hyperhive#2922 — described here
|
||||
for the intended design, which is what a fix would restore). When the
|
||||
agent emits `mcp__hyperhive__ask(to: "operator", ...)`, the tool_use
|
||||
renderer mounts an empty slot (`<div class="ask-answer-inline-slot">`)
|
||||
right under the `↳ ask → operator` row in the terminal scrollback
|
||||
and pushes a reference into `pendingAskBinds`. The broker assigns
|
||||
the question id asynchronously, so the slot waits — and the next
|
||||
|
|
|
|||
Loading…
Reference in a new issue