Wrap expanded builtin tool-result bodies using Pi's public ANSI-aware wrapTextWithAnsi, including code, diffs, errors, and grep fallback output.
Preserve compact clipping, logical line/file/match and hidden counts, deferred rendering, and the 210-column frame cap.
Retain a width guard for graphemes that cannot fit in a one-column viewport; narrow characters remain visible and oversized glyphs get a clipping marker.
Remove web-search error pre-wrapping now that the shared error frame handles it. Existing web-fetch/search answer wrapping keeps its current behavior.
Include patch changesets for tool-rendering and web-search-codex, plus a brief rendering-policy README note.
Validation
Full suite: 76 files / 1,450 tests passed.
Typecheck, lint, repository formatting, whitespace checks, and all nine extension builds passed.
Tests cover all seven builtin result renderers, bash success/partial/error states, code indentation/token spacing, full grep fallback text, Unicode/ANSI continuity, width-one fallback, blank lines, resizing/cache/210-column cap, expansion toggles, logical counts, and immutable results.
Existing web render tests protect full expanded answers and errors.
No live interactive-terminal validation or minimum-runtime-version test performed; validation used the installed Pi 1.5 SDK.
Reviews
Independent code, readability, and test reviews completed. Three targeted test gaps were fixed with explicit whitespace-sensitive code rows, a long unfamiliar grep fixture, and exact mixed-Unicode width-one expectations. Follow-up reviews are clear.
Output padding, redundant caching, and other audit cleanup remain separate work. Execution and model-facing truncation are unchanged.
## Summary
- Wrap expanded builtin tool-result bodies using Pi's public ANSI-aware `wrapTextWithAnsi`, including code, diffs, errors, and grep fallback output.
- Preserve compact clipping, logical line/file/match and hidden counts, deferred rendering, and the 210-column frame cap.
- Retain a width guard for graphemes that cannot fit in a one-column viewport; narrow characters remain visible and oversized glyphs get a clipping marker.
- Remove web-search error pre-wrapping now that the shared error frame handles it. Existing web-fetch/search answer wrapping keeps its current behavior.
- Include patch changesets for tool-rendering and web-search-codex, plus a brief rendering-policy README note.
## Validation
- Full suite: 76 files / 1,450 tests passed.
- Typecheck, lint, repository formatting, whitespace checks, and all nine extension builds passed.
- Tests cover all seven builtin result renderers, bash success/partial/error states, code indentation/token spacing, full grep fallback text, Unicode/ANSI continuity, width-one fallback, blank lines, resizing/cache/210-column cap, expansion toggles, logical counts, and immutable results.
- Existing web render tests protect full expanded answers and errors.
- No live interactive-terminal validation or minimum-runtime-version test performed; validation used the installed Pi 1.5 SDK.
## Reviews
Independent code, readability, and test reviews completed. Three targeted test gaps were fixed with explicit whitespace-sensitive code rows, a long unfamiliar grep fixture, and exact mixed-Unicode width-one expectations. Follow-up reviews are clear.
Output padding, redundant caching, and other audit cleanup remain separate work. Execution and model-facing truncation are unchanged.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
wrapTextWithAnsi, including code, diffs, errors, and grep fallback output.Validation
Reviews
Independent code, readability, and test reviews completed. Three targeted test gaps were fixed with explicit whitespace-sensitive code rows, a long unfamiliar grep fixture, and exact mixed-Unicode width-one expectations. Follow-up reviews are clear.
Output padding, redundant caching, and other audit cleanup remain separate work. Execution and model-facing truncation are unchanged.