- emit a non-blocking ai-bash-judge auto-allowed notify with the judge
reason whenever Enforce authority grants an ask without a dialog
- raise reason and focus caps from 180/120 to 600/240 code points so
ordinary model reasons wrap completely instead of ending mid-sentence
- treat the cap as a pathological-output guard, not a display budget
- cover sanitization, disabled paths, and completeness in tests
- replace render-time truncation with wrapTextWithAnsi so the full
reason stays visible on narrow terminals and CJK text
- cap content length only at the sanitize layer, never at render
- verify wrapping preserves reason content in tests
- delegate widget line truncation to pi-tui truncateToWidth so ANSI
styling and double-width CJK reasons count visible cells only
- replace the code-point clamp that crashed the TUI when a Chinese
reason rendered wider than the terminal
- add @earendil-works/pi-tui peer and dev dependencies
- cover CJK reasons at several terminal widths in tests
- add AdvicePresenter rendering a pi-native setWidget panel while a
permission dialog is up: judgment verdict with reason, high-risk skip
with category, or an unavailable cause
- highlight the decision-relevant command fragment via a focus cascade:
high-risk match, triggering unit, then executed unit
- clear the widget when permissions:decision resolves the same request
- add dialogAdvice config key (default true, invalid falls back with a
diagnostic) and cover formatting, lifecycle, and config in tests