This repository was archived by the owner on Apr 13, 2026. It is now read-only.
feat: migrate from tuikit-go to blitui/blit#17
Merged
moneycaringcoder merged 16 commits intomainfrom Apr 10, 2026
Merged
Conversation
Replace github.com/moneycaringcoder/tuikit-go v0.7.1 with github.com/blitui/blit v0.1.0. This updates all import paths, the package alias (tuikit -> blit), the tuitest -> btest subpackage, and the Component.Update signature to include the new blit.Context parameter.
Add Body field to PullRequest, Issue, and Release structs so the GitHub API response populates them. Use blit.Markdown() to render body content with themed formatting in the detail overlay.
Add Theme field to Config for persisting theme selection. On startup, resolve the configured theme from blit.Presets() or fall back to DefaultTheme. Register a Picker overlay on ctrl+t that lists all available themes and saves the selection to config.
Replace status bar closures with blit.NewSignal[string] and WithStatusBarSignal for dirty-bit coalescing. Keybind handlers update the right signal after sort/filter/pause state changes.
…mands Register blit.CommandBar as inline overlay on ':' key. Commands: add, remove/rm, sort, filter (repo:/type:), clear, theme, quit/q. Also add SetTypeFilter() public method to EventStream for direct type filter assignment from command bar and future tabs.
Wrap the EventStream in a Tabs component with All, Pushes, PRs, Issues, and Local tabs. Each tab sets the type filter via OnChange callback, sharing a single EventStream instance.
Signal.Set() called from keybind handlers triggers bus.schedule() which calls tea.Program.Send() on an unbuffered channel from within the Update handler — the UI goroutine deadlocks trying to send to itself. WithStatusBar(func() string) closures run during View() instead, avoiding the channel entirely. Also removes 1-9 repo filter keybinds that conflicted with Tabs tab-switching keys. Repo filtering remains available via :filter command bar.
Signal.Set() from keybind handlers triggers bus.schedule() → p.Send() on bubbletea's unbuffered channel, deadlocking the UI goroutine. Wrapping Set() in a goroutine lets the send happen off the UI thread. WithStatusBarSignal is restored (WithStatusBar closures didn't render content — likely upstream bug). The 1-9 repo filter keybinds remain removed to let Tabs own those keys for tab switching.
All 5 tab items shared the same stream pointer. Tabs.SetFocused iterates all items setting Content.SetFocused — the last non-active tab always wins with SetFocused(false), so the stream was permanently unfocused. Keys never reached the table (arrow keys, enter, etc). Fix: assign stream as Content only to the active tab. OnChange moves it into the new slot and nils the rest, so SetFocused only touches the stream once with the correct value.
EventStream, StatusPanel, and DebugOverlay did not implement blit.Themed, so the App's theme never propagated through Tabs to the Table, ListView, or LogViewer. The Table rendered its cursor with a zero-valued Theme (empty colors), making the row selector invisible.
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
github.com/moneycaringcoder/tuikit-go v0.7.1togithub.com/blitui/blit v0.1.0across all 9 source files and 3 test filesUpstream issues filed
┼renders poorly on Windows TerminalWithStatusBarclosures don't render contentTest plan
go build ./...passesgo test ./...passes (ui + updatewire)