dashboard: queued reminders surface
new 'qu3u3d r3m1nd3rs' section between approvals and operator
inbox. lists every pending reminder with agent, due-relative
timestamp, body, payload path (path-linkified), and a cancel
button. drives off a new /api/reminders endpoint and a
POST /cancel-reminder/{id} that hard-deletes the row.
failure surface (last_error / attempt_count + retry) deferred —
needs a sqlite migration; tracked in TODO.md.
This commit is contained in:
parent
cb71a07300
commit
1db6b8ffed
6 changed files with 183 additions and 4 deletions
|
|
@ -450,6 +450,27 @@ summary:hover { color: var(--purple); }
|
|||
0%, 100% { box-shadow: 0 0 12px -4px rgba(250, 179, 135, 0.55); }
|
||||
50% { box-shadow: 0 0 22px -2px rgba(250, 179, 135, 0.95); }
|
||||
}
|
||||
/* Reminders list — rendered from /api/reminders, separate from the
|
||||
main /api/state snapshot. Each row stacks identity, head meta,
|
||||
body, and a small cancel form. */
|
||||
.reminders {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
.reminder-row {
|
||||
padding: 0.4em 0;
|
||||
border-bottom: 1px solid var(--border);
|
||||
}
|
||||
.reminder-row:last-child { border-bottom: 0; }
|
||||
.reminder-head { font-size: 0.9em; }
|
||||
.reminder-body {
|
||||
color: var(--fg);
|
||||
white-space: pre-wrap;
|
||||
word-break: break-word;
|
||||
margin: 0.3em 0;
|
||||
}
|
||||
|
||||
/* Path linkification — agents drop pointer strings into messages
|
||||
constantly; clicking the anchor expands a sibling <details> that
|
||||
lazy-loads from /api/state-file. */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue