Skip to content

feat(tui): collapsible reasoning, randomized banner, tool label improvements - #8

Merged
buchenberg merged 4 commits into
mainfrom
feature/collapsible-reasoning
Jul 17, 2026
Merged

feat(tui): collapsible reasoning, randomized banner, tool label improvements#8
buchenberg merged 4 commits into
mainfrom
feature/collapsible-reasoning

Conversation

@buchenberg

Copy link
Copy Markdown
Owner

Summary

Collapsible Reasoning (TUI)

  • Reasoning text (from models like DeepSeek) persists after streaming and collapses to a \▶ Reasoning...\ toggle
  • Toggle appears chronologically before tool calls and assistant responses
  • \ctrl+r\ toggles expand/collapse to review reasoning
  • Cleared automatically on next user prompt

Tool Label Improvements

  • \⏳ web_fetch → URL\ shows the URL being fetched
  • Tool label renders above tool results instead of below
  • Reasoning committed as standalone message before tool call starts (corrects chronological ordering)

Randomized Banner

  • 20 curated figlet fonts picked randomly on each launch
  • 20 taglines picked randomly
  • Goat easter egg ASCII art gets lolcat rainbow coloring via new \�anner.Lolcat()\ helper

Files Changed

  • \internal/tui/tui.go\ — Reasoning field on Message, collapse state, Flush/Done handlers, renderMessages ordering, \ctrl+r\ binding
  • \internal/tui/tui_test.go\ — 12 new tests for reasoning lifecycle and rendering
  • \internal/banner/banner.go\ — Random font/tagline, \Lolcat()\ helper, refactored \Generate()\
  • \cmd/yaah/goat.go\ — Goat art now uses \�anner.Lolcat()\ for rainbow coloring

Gregory Buchenberger added 4 commits July 16, 2026 14:58
…vements

- Reasoning text persists after streaming and collapses to a toggle
  (▶/▼ Reasoning...) that appears chronologically before tool calls
- ctrl+r toggles expand/collapse on reasoning
- Tool call label shows URL for webfetch and renders above results
- Random figlet font (20 curated) and tagline (20 options) on launch
- Goat easter egg ASCII art gets lolcat rainbow coloring
- Extracted Lolcat() helper from banner.Generate() for reuse
The test checked for '_' in figlet output, but random fonts
may not produce underscore characters (e.g. standard font on
Linux uses '+', '-', '|'). Replace with a minimum-length check
that works with any font.
@buchenberg
buchenberg merged commit 57b1b12 into main Jul 17, 2026
8 checks passed
@buchenberg
buchenberg deleted the feature/collapsible-reasoning branch July 17, 2026 14:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant