The tool result truncation had two bypasses: 1. Error results were exempt (!isErr condition) — a command returning output in its error message could flood the context with megabytes of untruncated data. 2. The streaming callback emitted chunks to the event handler (and thus D-Bus signals) with no size check, flooding the bus even when the final stored result would be truncated. Fix: - Remove the configurable ToolResultMaxBytes field; use the constant defaultToolResultMaxBytes (128KB) unconditionally for all results regardless of success/error status. - Cap the streaming callback at 128KB so chunks stop being emitted once the ceiling is reached. - Cap output embedded in execute server error messages to 8KB as defense in depth. |
||
|---|---|---|
| .. | ||
| execute | ||
| stream.go | ||
| tools.go | ||
| tools_test.go | ||