fix: footer overflow crash on narrow terminals

Footer stats line now truncates gracefully when terminal width is too
narrow to fit all stats, instead of overflowing and crashing the TUI.
This commit is contained in:
Mario Zechner 2025-12-05 12:17:56 +01:00
parent 9375384371
commit ef333af3d1
2 changed files with 11 additions and 2 deletions

View file

@ -196,7 +196,7 @@ export class FooterComponent implements Component {
}
statsParts.push(contextPercentStr);
const statsLeft = statsParts.join(" ");
let statsLeft = statsParts.join(" ");
// Add model name on the right side, plus thinking level if model supports it
const modelName = this.state.model?.id || "no-model";
@ -210,9 +210,17 @@ export class FooterComponent implements Component {
}
}
const statsLeftWidth = visibleWidth(statsLeft);
let statsLeftWidth = visibleWidth(statsLeft);
const rightSideWidth = visibleWidth(rightSide);
// If statsLeft is too wide, truncate it
if (statsLeftWidth > width) {
// Truncate statsLeft to fit width (no room for right side)
const plainStatsLeft = statsLeft.replace(/\x1b\[[0-9;]*m/g, "");
statsLeft = plainStatsLeft.substring(0, width - 3) + "...";
statsLeftWidth = visibleWidth(statsLeft);
}
// Calculate available space for padding (minimum 2 spaces between stats and model)
const minPadding = 2;
const totalNeeded = statsLeftWidth + minPadding + rightSideWidth;