From 1e8cfa909219a19ba491be2e388166e7ae904fdd Mon Sep 17 00:00:00 2001 From: Brooklyn Nicholson Date: Wed, 22 Apr 2026 14:43:25 -0500 Subject: [PATCH] fix(tui): idle good-vibes heart no longer blanks the input's last cell The heart was rendered as a literal space when inactive. Because it's absolutely positioned at right:0 inside the composer row, that blank still overpainted the rightmost input cell. On wrapped 2-line drafts, editing near the boundary made the final visible character appear to jump in/out as it crossed the overpainted column. When inactive, render nothing; only mount the heart while it's actually animating. --- ui-tui/src/components/appChrome.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ui-tui/src/components/appChrome.tsx b/ui-tui/src/components/appChrome.tsx index bffcd6c5152..439afd96243 100644 --- a/ui-tui/src/components/appChrome.tsx +++ b/ui-tui/src/components/appChrome.tsx @@ -156,7 +156,11 @@ export function GoodVibesHeart({ tick, t }: { tick: number; t: Theme }) { return () => clearTimeout(id) }, [t.color.amber, tick]) - return {active ? '♥' : ' '} + if (!active) { + return null + } + + return } export function StatusRule({