web-ui: remove dead ask->operator inline-answer binding from the per-agent terminal
hyperhive#2922: the inline-answer slot (pendingAskBinds/reconcileAskBinds/ buildAnswerForm) depended on a since-removed /api/loose-ends endpoint and had been silently non-functional the whole time — nothing ever reassigned lastLooseEnds, so the reconciler always no-op'd. Per mara's call on the issue (ask/answer is deprecated per #2850, only the main dashboard UI needs to work, remove the broken per-agent inline view): ripped out the dead JS (binding + form + CSS) rather than restoring the endpoint. An ask tool call now renders like any other tool call, no inline answer affordance; the operator answers via the dashboard's own question surfacing. Also fixed adjacent doc staleness this same removal made newly contradictory (docs/web-ui/agent.md, docs/terminal-rendering.md): the doc already described the loose-ends/bash-tasks flyouts and the ask-binding as recently dead, but the endpoint reference table and a header-pills bullet list still described them as live.
This commit is contained in:
parent
98d895cf9e
commit
ecf9ff4d80
4 changed files with 37 additions and 288 deletions
|
|
@ -560,112 +560,11 @@ pre.diff {
|
|||
}
|
||||
.agent-inbox .inbox-reply-tag { color: var(--muted); font-size: 0.85em; }
|
||||
|
||||
.agent-inbox .answer-form {
|
||||
/* Block-level under the new layout — `grid-column: 1 / -1` was
|
||||
for the legacy grid; under block layout the form naturally
|
||||
starts on its own row. */
|
||||
display: flex;
|
||||
gap: 0.4em;
|
||||
align-items: flex-start;
|
||||
margin-top: 0.5em;
|
||||
padding-left: 0.8em;
|
||||
}
|
||||
.agent-inbox .answer-form textarea {
|
||||
flex: 1;
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
background: var(--bg);
|
||||
color: var(--fg);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 3px;
|
||||
padding: 0.3em;
|
||||
resize: vertical;
|
||||
}
|
||||
.agent-inbox .answer-form button {
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
background: var(--bg-elev);
|
||||
color: var(--fg);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 3px;
|
||||
padding: 0.3em 0.7em;
|
||||
cursor: pointer;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.agent-inbox .answer-form button:hover:not(:disabled) {
|
||||
border-color: var(--purple);
|
||||
color: var(--purple);
|
||||
}
|
||||
.agent-inbox .answer-form button:disabled { opacity: 0.5; cursor: default; }
|
||||
.agent-inbox .answer-status { color: var(--muted); align-self: center; }
|
||||
|
||||
/* Inline answer slot mounted under each `ask → operator` row in
|
||||
the live terminal stream. Mirrors the side-panel `.answer-form`
|
||||
look-and-feel — same textarea, same send button — so the operator
|
||||
doesn't have to context-switch between "answering in the panel"
|
||||
and "answering inline". Empty slot collapses to nothing (no
|
||||
margin) so pre-bind rows stay tidy; populated slot gets a thin
|
||||
top divider to separate the question body from the form. A
|
||||
`[resolved]` tag (neutral, covers answered / cancelled /
|
||||
TTL-expired uniformly) replaces the form once the question
|
||||
leaves the pending list. */
|
||||
.live .ask-answer-inline-slot:empty { display: none; }
|
||||
.live .ask-answer-inline-slot {
|
||||
margin-top: 0.5em;
|
||||
padding-top: 0.5em;
|
||||
border-top: 1px dashed var(--border);
|
||||
}
|
||||
.live .ask-answer-inline-slot .answer-form {
|
||||
display: flex;
|
||||
gap: 0.4em;
|
||||
align-items: flex-start;
|
||||
}
|
||||
.live .ask-answer-inline-slot .answer-form textarea {
|
||||
flex: 1;
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
background: var(--bg);
|
||||
color: var(--fg);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 3px;
|
||||
padding: 0.3em;
|
||||
resize: vertical;
|
||||
}
|
||||
.live .ask-answer-inline-slot .answer-form button {
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
background: var(--bg-elev);
|
||||
color: var(--fg);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 3px;
|
||||
padding: 0.3em 0.7em;
|
||||
cursor: pointer;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.live .ask-answer-inline-slot .answer-form button:hover:not(:disabled) {
|
||||
border-color: var(--purple);
|
||||
color: var(--purple);
|
||||
}
|
||||
.live .ask-answer-inline-slot .answer-form button:disabled {
|
||||
opacity: 0.5;
|
||||
cursor: default;
|
||||
}
|
||||
.live .ask-answer-inline-slot .answer-status {
|
||||
color: var(--muted);
|
||||
align-self: center;
|
||||
}
|
||||
.live .ask-answer-inline-slot .ask-resolved-tag {
|
||||
color: var(--muted);
|
||||
font-style: italic;
|
||||
text-decoration: line-through;
|
||||
text-decoration-color: var(--muted);
|
||||
}
|
||||
|
||||
/* Bulk-action header row: "mark all read" above the recent-messages
|
||||
list in the inbox flyout, and "select all / select none / mark
|
||||
done" above the list in the todos flyout — same classes, shared
|
||||
look (mauve hover, bg-elev background) so both read as part of
|
||||
the same affordance family as the answer-form button. */
|
||||
the same affordance family. */
|
||||
.agent-inbox .inbox-mark-all-row {
|
||||
display: flex;
|
||||
gap: 0.6em;
|
||||
|
|
|
|||
Loading…
Reference in a new issue