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. |
||
|---|---|---|
| .. | ||
| testdata/sandbox | ||
| code.go | ||
| detach.go | ||
| execute_test.go | ||
| flock.go | ||
| pipe.go | ||
| server.go | ||
| tier.go | ||
| tier_test.go | ||
| tool.go | ||