This repository was archived by the owner on Apr 13, 2026. It is now read-only.
feat: theme-driven UI, blit API adoption, and toast feedback#18
Merged
moneycaringcoder merged 14 commits intomainfrom Apr 10, 2026
Merged
feat: theme-driven UI, blit API adoption, and toast feedback#18moneycaringcoder merged 14 commits intomainfrom
moneycaringcoder merged 14 commits intomainfrom
Conversation
- Bump github.com/blitui/blit v0.1.0 → v0.1.1 - Replace config I/O with blit.LoadYAML/SaveYAML (atomic writes) - Use ToastInfo/ToastWarn/ToastSuccess convenience functions - Add EmptyText to StatusPanel ListView for empty state - Separate Validate from Set on ConfigEditor fields - Add y keybind to copy event URL to clipboard via OSC 52
Replace ~30 hardcoded hex color vars in styles.go with a Styles struct built from blit.Theme. EventColor/LabelColor now accept a theme param and resolve via theme.Color() Extra tokens with semantic fallbacks. All components (EventStream, StatusPanel, DebugOverlay) store the theme and rebuild styles on SetTheme, enabling full runtime theme switching. Also removes dead renderEventLine function.
- Remove duplicate LogLevel enum and LogEntry struct; use blit.LogLevel directly. Drop the entries circular buffer since blit.LogViewer handles storage. - Replace health dots with blit.Badge in stream header and debug overlay. - Use blit.Divider for debug overlay title line. - Add blit.EnsureConfigDir call in AddRepo for first-run safety. - Delete dead renderEventLine function.
- Enable WithDevConsole() and WithAnimations(true) in app setup. - Rate limit warning toast now includes a "Pause" action button using blit.ToastAction. - Event detail overlay shows a Breadcrumbs trail at the top: gitstream > repo > event type.
Use blit/charts Gauge for a visual rate limit meter with threshold coloring (green > 50%, yellow > 20%, red below). Add horizontal Bar chart showing per-repo health status.
Showcase btest APIs: - Harness fluent API tests for render, navigation, and resize - Golden snapshot for initial event stream layout - Session recording for sort toggle flow
DebugOverlay now implements blit.FloatingOverlay, compositing as a right-side drawer (40% width) over the main content instead of replacing it. This lets users see the event stream while monitoring API stats and logs.
- resolveTheme() now populates Extra event tokens on DefaultTheme so event colors work without selecting a named preset. - Add 2 golden snapshot tests (empty_stream, resized_stream) for stable time-independent snapshots.
- Drop 7 unused Styles fields (Time, Repo, Actor, StatusBar, PanelBorder, PanelTitle, PanelDivider, Divider). - Remove double-styling on debug divider (Divider already themes itself). - Replace manual byte scan for '/' with strings.LastIndex in debug bar chart.
- Replace FloatingOverlay side-drawer with regular Overlay modal - Sort repo map keys for deterministic render order (no flickering) - Dynamic height: measure stats lines, give remainder to log viewer - Pre-truncate content before lipgloss render to prevent overflow - Hard-clamp output to terminal dimensions with ansi.Truncate - Pad output to exact terminal height to prevent push-down - Cap chart widths to 60 cols max for cleaner layout
…sions The existing snapshots tested EventStream directly without the Tabs wrapper, so the barH 3→2 fix was invisible to tests. This snapshot mirrors the real app layout (Tabs + DualPane + StatusBar) so any future tab bar height change will break the golden file.
Replace manual app construction with testFullApp() helper and use the new btest.SnapshotApp one-liner for the tabs snapshot. Add an AppResize test using NewAppHarness to verify the full layout at multiple sizes.
- Switch all 5 overlays from WithOverlay to WithSlotOverlay (named slots)
- Add toast notifications on pause, refresh, sort, filter, and clear actions
- Use app.Send(ToastMsg{}) pattern from void Handler closures
- Reduce tick interval from 1s to 200ms for smoother updates
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
blit.Themetokens, removing hardcoded colorsLogLeveltype, deadrenderEventLine, andDebugLog.entriesbufferblit.Divider,blit.Badge,blit.Breadcrumbs,blit.MarkdownthroughoutWithSlotOverlayAPI (named slots)WithDevConsole,WithAnimations,WithMouseSupportTest plan
go test ./...passes