diff options
| author | Agando <roduccomm@gmail.com> | 2026-10-26 13:58:12 +0100 |
|---|---|---|
| committer | Agando <roduccomm@gmail.com> | 2026-10-26 13:58:12 +0100 |
| commit | 6cd0b839a94324c22a17b9fa027ae9dbf3720cb3 (patch) | |
| tree | 86a9fd784d59ca240e1dc9ff3e6d7876f7f18d87 /scripts/test-fs-commands.mjs | |
| parent | 392b69283692f161dc97ff52d071b20c6d92bea5 (diff) | |
feat(feedback): preview a plan or report in a modal before deciding
The cards only carried a title, a path and buttons — approving blind was the only option.
The page cannot read .hermes/plans/*.md itself (600 darkbot, php-fpm is www-data), so the
collector — already running as darkbot every 10 minutes — now embeds what a decision needs:
plans -> excerpt (first 60 lines, 2.4 KB cap), task headings, status/implementation lines
reports -> body, page url, newOS4 version, user agent, first 3 error strings
Modal: click a card title (or, on a report, read it in place) -> title, meta line with
path/size/modified/task count/decision, the text in a scrollable monospace block, and the
same Approve / Reject / Noise / Resolve actions. Esc, backdrop and the X close it; on a
phone it is full-screen. Cards and modal share one actButtons() helper instead of
duplicating markup.
Also fixes a bug I introduced earlier: recent_apply() referenced APPLIED, which was never
defined — the NameError was swallowed by the function's own except, so the "last decision
applied" line could never render. It now shows, e.g. "last decision applied 2026-10-26
12:47:03 UTC (plan:…mobile-download-share.md → approve)".
Verified: node --check on the inline script; browser harness against the real snapshot
(plan modal shows Goal + 9 tasks + status, report modal shows message/errors/page/ua,
Esc closes); verify-mobile 390/360 x light/dark ALL VIEWPORTS OK with the modal open;
collector py_compile + run (recent_apply 8 rows).
Diffstat (limited to 'scripts/test-fs-commands.mjs')
0 files changed, 0 insertions, 0 deletions