fix(webui): pending reply notice until the seat answers, relative Age (#1507)

Dewey's return-flow candidate on the #1512 R1 baseline. The inspector used to
show the previous answer while a seat worked on a reply, which looked like the
reply; it now shows a pending notice that clears on the new final answer.
Age shows a relative time beside the ISO time. Filbert approved R2, source
only; the patch reproduces the pinned hashes (app.js d1a51646,
return-flow.test.mjs a598c0d4). webui tests 9/9, all eight suites green.
Known limits are in agents/dewey/work/return-flow-age/NOTES.md. Not pushed.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
2026-09-26 15:00:59 -05:00
co-authored by Claude Opus 5.5
parent 0f5b7cb9be
commit 42c08d5285
14 changed files with 460 additions and 5 deletions
+27
View File
@@ -2872,3 +2872,30 @@ files lose HEAD lines only where a row was deliberately edited.
Evidence: all eight suites green on the working tree (config 24, task 90,
foundation 43, conductor 17, release 14, auth 15, discord 63,
extension-package 18). Not pushed.
## 2026-09-26: WebUI return flow and Age (#1507, Console change)
Before: after a reply from the WebUI the inspector kept a pending notice even
once the seat had answered, and the Age column read from the wrong field.
After: the pending notice clears once the seat's next answer arrives and stays
cleared, and Age follows the session's last activity. Dewey authored it on
the #1512 R1 baseline (`app.js` ce7d79a4). Filbert asked for revisions in R1
(wrong failing assertion named in NOTES, no test that the notice stays
cleared) and approved R2, source only, after a mutation check that deletes the
clearing loop fails the new test.
Evidence: `candidate.patch` applied to HEAD reproduces the pins (`app.js`
d1a51646, `tests/return-flow.test.mjs` a598c0d4); webui tests 9/9; eight
suites green. Record: `agents/dewey/work/return-flow-age/`. Limits are listed
in its NOTES.md: a send made while the seat is still working can be cleared by
the previous answer, and the card and table still show the old preview. The
fixture reproduces the misleading pending display, not Jason's live report of
no return at all. Not pushed; the live WebUI reads the file from disk.
Correction (Sage, same day): the Before and After lines above misdescribe the
change. On the baseline the inspector showed no pending notice at all; while
the seat worked on a reply it showed the previous answer as "Last assistant
text", which looked like the reply. Age showed only the ISO time. The
candidate adds a pending notice that appears after a send and clears once the
new final answer arrives, and Age shows a relative time ("1m ago") beside the
ISO time. Source: `agents/dewey/work/return-flow-age/NOTES.md`.