fix(widgets): add max line limit and document multi-hook behavior

- Limit total widget lines to 10 to prevent viewport overflow/flicker
- Show '... (widget truncated)' when limit exceeded
- Document that multiple hooks stack widgets vertically
- Add caution about keeping widgets small
This commit is contained in:
Helmut Januschka 2026-01-03 21:43:35 +01:00 committed by Mario Zechner
parent f6b728a6e5
commit 9b53b89bd5
2 changed files with 14 additions and 2 deletions

View file

@ -633,6 +633,9 @@ export class InteractiveMode {
this.renderWidgets();
}
// Maximum total widget lines to prevent viewport overflow
private static readonly MAX_WIDGET_LINES = 10;
/**
* Render all hook widgets to the widget container.
*/
@ -645,10 +648,18 @@ export class InteractiveMode {
return;
}
// Render each widget
// Render each widget, respecting max lines to prevent viewport overflow
let totalLines = 0;
for (const [_key, lines] of this.hookWidgets) {
for (const line of lines) {
if (totalLines >= InteractiveMode.MAX_WIDGET_LINES) {
// Add truncation indicator and stop
this.widgetContainer.addChild(new Text(theme.fg("muted", "... (widget truncated)"), 1, 0));
this.ui.requestRender();
return;
}
this.widgetContainer.addChild(new Text(line, 1, 0));
totalLines++;
}
}