Description
The Status tab in the hookwise TUI always displays hardcoded placeholder text from SEGMENT_PLACEHOLDERS instead of rendering real data from the cache (~/.hookwise/state/status-line-cache.json).
Root Cause
tui/hookwise_tui/tabs/status.py:_render_segment() (lines 298-312) looks up segment names like insights_friction directly in the cache dict. But the cache stores raw insights data — there's no code to transform it into the three insights sub-segments. The method falls through to SEGMENT_PLACEHOLDERS.get(seg) every time.
Affected segments (at minimum):
insights_friction — no rendering logic, always shows "✅ No friction detected"
insights_pace — always shows "📊 12 msgs/day | 2.1k+ lines"
insights_trend — always shows "🔧 Top: Bash, Read | Peak: afternoon"
- Other segments (
pulse, news, memories, streak) may also lack proper rendering
The TypeScript CLI (src/core/status-line/segments.ts) has full rendering functions for all these segments. The Python TUI needs equivalent logic.
Expected Behavior
The preview should render live data from the cache, matching the TypeScript CLI output. Placeholders should only appear when cache data is genuinely missing or stale.
Steps to Reproduce
- Run
hookwise status-line — see live output with real data
- Open TUI → Status tab
- Toggle any insights segment ON
- Preview shows hardcoded dummy text, not the real cached data
Description
The Status tab in the hookwise TUI always displays hardcoded placeholder text from
SEGMENT_PLACEHOLDERSinstead of rendering real data from the cache (~/.hookwise/state/status-line-cache.json).Root Cause
tui/hookwise_tui/tabs/status.py:_render_segment()(lines 298-312) looks up segment names likeinsights_frictiondirectly in the cache dict. But the cache stores rawinsightsdata — there's no code to transform it into the three insights sub-segments. The method falls through toSEGMENT_PLACEHOLDERS.get(seg)every time.Affected segments (at minimum):
insights_friction— no rendering logic, always shows "✅ No friction detected"insights_pace— always shows "📊 12 msgs/day | 2.1k+ lines"insights_trend— always shows "🔧 Top: Bash, Read | Peak: afternoon"pulse,news,memories,streak) may also lack proper renderingThe TypeScript CLI (
src/core/status-line/segments.ts) has full rendering functions for all these segments. The Python TUI needs equivalent logic.Expected Behavior
The preview should render live data from the cache, matching the TypeScript CLI output. Placeholders should only appear when cache data is genuinely missing or stale.
Steps to Reproduce
hookwise status-line— see live output with real data