Hide raw Assistant tool-call output

This commit is contained in:
rcourtman
2026-06-05 14:05:38 +01:00
parent df203b0ce6
commit 05d00a65a6
15 changed files with 625 additions and 459 deletions
@@ -88,6 +88,15 @@ runtime cost control, and shared AI transport surfaces.
and render a neutral transcript marker rather than persisting synthetic
assistant answer text or surfacing the interruption as a retryable provider
failure.
Assistant output hygiene is part of the same boundary: provider reasoning
and raw serialized tool-call artifacts must never render as assistant
transcript prose. Reasoning/thinking deltas may update neutral progress
state, but visible answer blocks and copyable message text must exclude the
reasoning body. Pulse tool invocations must surface only through governed
`tool_start` / `tool_end`, approval, or question blocks; if a provider emits
`pulse_*` / `patrol_*` calls, DSML, XML/function-call envelopes, or JSON
tool-call shapes as text content, the chat runtime must strip them before
streaming, persistence, and frontend rendering.
4. Add or change Patrol, alert-analysis, or remediation transport through `internal/api/ai_handlers.go`, `internal/api/ai_intelligence_handlers.go`, and `frontend-modern/src/api/patrol.ts`
Provider preflight diagnostics returned from `internal/api/ai_handlers.go`
must reuse the Patrol runtime failure classifier in `internal/ai/` and