Explain this: ask the local model about a failure, verdict, log line or setting #18

Merged
jcoffey-dev merged 2 commits from feature/ai-explain into main 2026-09-26 08:30:46 +00:00
2 Commits
Author SHA1 Message Date
jcoffey-dev 3b85d1f984 Live tracing: read key-values as the stream sends them
ci / build (pull_request) Successful in 58s
ci / publish (pull_request) Skipped
The live stream sends each event's key-values as a JMAP map ({"0": …}),
not an array. The live page cast it straight to an array, so Explain
threw on every live event, and the timeline never showed an event's
details. Live events now go through the same normalizing as stored
traces, moved to features/tracing/normalize.ts.

Also adds the modification notice to four upstream files this branch
changed.
2026-09-26 01:09:49 -07:00
jcoffey-dev dfb5deeac2 Explain this: ask the local model about a failure, verdict, log line or setting
ci / build (pull_request) Successful in 1m15s
ci / publish (pull_request) Skipped
An Explain button sits beside four kinds of thing that are hard to read:
a queued message's failed recipients (in a small card above the queue
form), the Classify verdict on Actions, each Logs row and trace event
(stored and live), and each settings field. It opens a panel with the
local model's short reading, labeled as the model's and not as fact,
with copy, cancel and a clear message when the model is busy, paused
or over the hourly limit.

The button appears only when the session's aiExplain flag says the
server can answer: a superuser, a configured chat model, and
explanations switched on. The Local AI page gains an Explanations card
for that switch, the model to use, the hourly count per administrator
and the longest wait.

Needs a server with inbuxa:Explanation/set (sysAiExplain); on older
servers the flag is absent and nothing changes.
2026-09-26 00:53:41 -07:00