From 3a82172dd5804e765dbfbfcdabc0b81119165506 Mon Sep 17 00:00:00 2001
From: Teknium <127238744+teknium1@users.noreply.github.com>
Date: Thu, 7 May 2026 05:15:57 -0700
Subject: [PATCH] feat(tui): surface compression count in Ink status bar
Parity with the classic CLI status bar (PR #18579). The Python backend
already exposes 'compressions' on SessionUsageResponse; this wires it
through the Ink Usage type and renders 'cmp N' next to the duration
segment of StatusRule.
- types.ts Usage: add optional compressions field
- appChrome.tsx StatusRule: render 'cmp N' when > 0, color-tiered by
pressure (muted <5, warn 5-9, error 10+)
- Plain text 'cmp' token (no emoji) matches PR #18579's original author
rationale and avoids Ink layout drift from VS16 emoji width
---
ui-tui/src/components/appChrome.tsx | 8 ++++++++
ui-tui/src/types.ts | 1 +
2 files changed, 9 insertions(+)
diff --git a/ui-tui/src/components/appChrome.tsx b/ui-tui/src/components/appChrome.tsx
index c2e08b3698..e5724c99ba 100644
--- a/ui-tui/src/components/appChrome.tsx
+++ b/ui-tui/src/components/appChrome.tsx
@@ -325,6 +325,14 @@ export function StatusRule({
) : null}
+ {typeof usage.compressions === 'number' && usage.compressions > 0 ? (
+
+ {' │ '}
+ = 10 ? t.color.error : usage.compressions >= 5 ? t.color.warn : t.color.muted}>
+ cmp {usage.compressions}
+
+
+ ) : null}
{voiceLabel ? (