Apply public context.outputPad to shared self-shell tool frames via native Text.setPaddingX.
Match native narrow-terminal padding clamping before measuring/wrapping, retaining the 210-column content cap with margins outside it.
Invalidate layout when padding changes, including rows whose capped paint width is unchanged; preserve stable redraw caches.
Reuse the existing clipping-marker fallback when a raw painter (such as bash command chrome) contains wide glyphs in a one-column content area.
Include patch changesets for tool-rendering, web-fetch, and web-search-codex; document the shared frame contract.
Validation
Full suite: 76 files / 1,458 tests passed.
Typecheck, lint, repository formatting, whitespace checks, and all nine extension builds passed.
Shared tests cover 0/1 margins, painter widths, resize, cache invalidation, Unicode, narrow terminals, and the content cap.
Real SDK ToolExecutionComponent tests exercise default padding and live 1→0→1 changes across all seven built-ins, including errors.
Web-fetch, batch, and search tests cover headers, compact/expanded results, search errors, content-width alignment, bounds, and immutable results.
Validation used installed Pi 1.5; minimum Pi runtime compatibility and live terminal interaction were not exercised.
Reviews
Independent code, readability, and test reviews are clear. Readability suggestions were applied by extracting the SDK padding matrix into a file-local helper and naming configuration decisions before construction. Final checks passed after those changes.
The user-approved simplification of extensions/tool-rendering/README.md is included as a separate docs-only commit; README formatting and staged whitespace checks passed. No extension-specific padding setting, execution change, or unrelated cache cleanup is included.
## Summary
- Apply public `context.outputPad` to shared self-shell tool frames via native `Text.setPaddingX`.
- Match native narrow-terminal padding clamping before measuring/wrapping, retaining the 210-column content cap with margins outside it.
- Invalidate layout when padding changes, including rows whose capped paint width is unchanged; preserve stable redraw caches.
- Reuse the existing clipping-marker fallback when a raw painter (such as bash command chrome) contains wide glyphs in a one-column content area.
- Include patch changesets for tool-rendering, web-fetch, and web-search-codex; document the shared frame contract.
## Validation
- Full suite: 76 files / 1,458 tests passed.
- Typecheck, lint, repository formatting, whitespace checks, and all nine extension builds passed.
- Shared tests cover 0/1 margins, painter widths, resize, cache invalidation, Unicode, narrow terminals, and the content cap.
- Real SDK `ToolExecutionComponent` tests exercise default padding and live 1→0→1 changes across all seven built-ins, including errors.
- Web-fetch, batch, and search tests cover headers, compact/expanded results, search errors, content-width alignment, bounds, and immutable results.
- Validation used installed Pi 1.5; minimum Pi runtime compatibility and live terminal interaction were not exercised.
## Reviews
Independent code, readability, and test reviews are clear. Readability suggestions were applied by extracting the SDK padding matrix into a file-local helper and naming configuration decisions before construction. Final checks passed after those changes.
The user-approved simplification of `extensions/tool-rendering/README.md` is included as a separate docs-only commit; README formatting and staged whitespace checks passed. No extension-specific padding setting, execution change, or unrelated cache cleanup is included.
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
context.outputPadto shared self-shell tool frames via nativeText.setPaddingX.Validation
ToolExecutionComponenttests exercise default padding and live 1→0→1 changes across all seven built-ins, including errors.Reviews
Independent code, readability, and test reviews are clear. Readability suggestions were applied by extracting the SDK padding matrix into a file-local helper and naming configuration decisions before construction. Final checks passed after those changes.
The user-approved simplification of
extensions/tool-rendering/README.mdis included as a separate docs-only commit; README formatting and staged whitespace checks passed. No extension-specific padding setting, execution change, or unrelated cache cleanup is included.