Why: Some endpoints reject consecutive system messages or a run of the same role. The product already emits several system messages in one request. Evidence: go test is covered by PrepareMessages tests for merge, strict folding, and tool pairs. Empty MessageShape leaves the transcript unchanged. Impact: Callers opt in with StreamOptions.MessageShape. Tool calls and tool results are not merged. Refs: docs/records/2026-10-04-sillytavern-review.md