deps: upgrade bubbletea/bubbles/lipgloss/wish to v2 #2

Merged
arne merged 2 commits from feat/bubbletea-v2-upgrade into main 2026-04-11 07:45:20 +02:00
Owner

Moves the project from charm v1 to v2:

  • github.com/charmbracelet/bubbleteacharm.land/bubbletea/v2 v2.0.2
  • github.com/charmbracelet/bubblescharm.land/bubbles/v2 v2.1.0
  • github.com/charmbracelet/lipglosscharm.land/lipgloss/v2 v2.0.2
  • github.com/charmbracelet/wishcharm.land/wish/v2 v2.0.0
  • github.com/charmbracelet/ssh is unchanged — wish v2 still depends on it

API surface changes handled:

  • tea.Model.View() now returns tea.View (struct). Existing string-building logic moved to viewString(); the public View() wraps it as tea.View{Content: ..., AltScreen: true}.
  • tea.KeyMsg is now an interface (matching both press and release events). The Update switch and all six updateX helpers now take tea.KeyPressMsg so release events don't double-fire keypresses.
  • tea.WithAltScreen() removed — alt-screen is now per-view via the AltScreen field on tea.View.
  • lipgloss.Renderer and bubbletea.MakeRenderer removed — newStyles/newModel/NewModel lose their renderer arg, and the wish handler in ssh.go no longer constructs one.
  • Test helpers rewritten: key(s) builds tea.KeyPressMsg{Code, Text}, keyCode(code) replaces the old keyType. TestTUI_Colors no longer plumbs a lipgloss.NewRenderer/termenv.TrueColor since v2 Style.Render() always emits ANSI.

Also updates the stale go-version note in CLAUDE.md to reflect 1.26.1.

Test plan

  • go build ./... clean
  • go test -race ./... — all packages pass (store, tui, sshserver including the real SSH server integration tests)
  • go build -o /tmp/keys-upgraded . produces a runnable binary
  • No github.com/charmbracelet/(bubbletea|bubbles|lipgloss|wish) references remain in *.go/go.mod/go.sum
Moves the project from charm v1 to v2: - `github.com/charmbracelet/bubbletea` → `charm.land/bubbletea/v2 v2.0.2` - `github.com/charmbracelet/bubbles` → `charm.land/bubbles/v2 v2.1.0` - `github.com/charmbracelet/lipgloss` → `charm.land/lipgloss/v2 v2.0.2` - `github.com/charmbracelet/wish` → `charm.land/wish/v2 v2.0.0` - `github.com/charmbracelet/ssh` is unchanged — wish v2 still depends on it API surface changes handled: - `tea.Model.View()` now returns `tea.View` (struct). Existing string-building logic moved to `viewString()`; the public `View()` wraps it as `tea.View{Content: ..., AltScreen: true}`. - `tea.KeyMsg` is now an interface (matching both press and release events). The `Update` switch and all six `updateX` helpers now take `tea.KeyPressMsg` so release events don't double-fire keypresses. - `tea.WithAltScreen()` removed — alt-screen is now per-view via the `AltScreen` field on `tea.View`. - `lipgloss.Renderer` and `bubbletea.MakeRenderer` removed — `newStyles`/`newModel`/`NewModel` lose their renderer arg, and the wish handler in `ssh.go` no longer constructs one. - Test helpers rewritten: `key(s)` builds `tea.KeyPressMsg{Code, Text}`, `keyCode(code)` replaces the old `keyType`. `TestTUI_Colors` no longer plumbs a `lipgloss.NewRenderer`/`termenv.TrueColor` since v2 `Style.Render()` always emits ANSI. Also updates the stale go-version note in `CLAUDE.md` to reflect 1.26.1. ## Test plan - [x] `go build ./...` clean - [x] `go test -race ./...` — all packages pass (store, tui, sshserver including the real SSH server integration tests) - [x] `go build -o /tmp/keys-upgraded .` produces a runnable binary - [x] No `github.com/charmbracelet/(bubbletea|bubbles|lipgloss|wish)` references remain in `*.go`/`go.mod`/`go.sum`
Moves charm.land/... v2 modules in place of the old
github.com/charmbracelet/... v1 paths. Alt-screen is now set
per-view; tea.KeyMsg is an interface so handlers switch on
tea.KeyPressMsg; lipgloss no longer has per-session renderers
so NewModel drops its renderer parameter.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
arne merged commit 3ad12263cd into main 2026-04-11 07:45:20 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
arne/keys!2
No description provided.