on main help sign in
chore: upgrade dependencies and fix related code (#1404)
commit87df66ddc0f9a21af2529738572dc9e73c73f66c authorAyman Bagabas <ayman.bagabas@gmail.com> dateFri 7 Nov 2025, 11:40 (1 year ago) parentb05e167
5 files changed+44−45
go.mod+7−9 go.sum+14−18 internal/tui/exp/list/list.go+2−1 internal/tui/page/chat/chat.go+2−1 internal/tui/tui.go+19−16
go.mod+7−9
@@ -4,9 +4,9 @@ go 1.25.0
44
55require (
66 charm.land/bubbles/v2 v2.0.0-beta.1.0.20251104200223-da0b892d1759
7− charm.land/bubbletea/v2 v2.0.0-rc.1.0.20251106164730-d9f7210a9efd
7+ charm.land/bubbletea/v2 v2.0.0-rc.1.0.20251106195925-579e174cd7fa
88 charm.land/fantasy v0.1.6
9− charm.land/lipgloss/v2 v2.0.0-beta.3.0.20251104200114-3aae28661422
9+ charm.land/lipgloss/v2 v2.0.0-beta.3.0.20251106193318-19329a3e8410
1010 github.com/JohannesKaufmann/html-to-markdown v1.6.0
1111 github.com/MakeNowJust/heredoc v1.0.0
1212 github.com/PuerkitoBio/goquery v1.10.3
@@ -17,11 +17,11 @@ require (
1717 github.com/charlievieth/fastwalk v1.0.14
1818 github.com/charmbracelet/catwalk v0.8.2
1919 github.com/charmbracelet/colorprofile v0.3.3
20− github.com/charmbracelet/fang v0.4.3
21− github.com/charmbracelet/glamour/v2 v2.0.0-20250811143442-a27abb32f018
22− github.com/charmbracelet/log/v2 v2.0.0-20250226163916-c379e29ff706
23− github.com/charmbracelet/ultraviolet v0.0.0-20251105181648-75d1e37ff1bb
24− github.com/charmbracelet/x/ansi v0.10.3
20+ github.com/charmbracelet/fang v0.4.4
21+ github.com/charmbracelet/glamour/v2 v2.0.0-20251106195642-800eb8175930
22+ github.com/charmbracelet/log/v2 v2.0.0-20251106192421-eb64aaa963a0
23+ github.com/charmbracelet/ultraviolet v0.0.0-20251106193841-7889546fc720
24+ github.com/charmbracelet/x/ansi v0.11.0
2525 github.com/charmbracelet/x/exp/charmtone v0.0.0-20250708181618-a60a724ba6c3
2626 github.com/charmbracelet/x/exp/golden v0.0.0-20250806222409-83e3a29d542f
2727 github.com/charmbracelet/x/exp/ordered v0.1.0
@@ -88,8 +88,6 @@ require (
8888 github.com/bahlo/generic-list-go v0.2.0 // indirect
8989 github.com/buger/jsonparser v1.1.1 // indirect
9090 github.com/charmbracelet/anthropic-sdk-go v0.0.0-20251024181547-21d6f3d9a904 // indirect
91− github.com/charmbracelet/lipgloss/v2 v2.0.0-beta.3.0.20251103214348-d3032608aa74 // indirect
92− github.com/charmbracelet/x/cellbuf v0.0.14-0.20250811133356-e0c5dbe5ea4a // indirect
9391 github.com/charmbracelet/x/json v0.2.0 // indirect
9492 github.com/charmbracelet/x/termios v0.1.1 // indirect
9593 github.com/charmbracelet/x/windows v0.2.2 // indirect
go.sum+14−18
@@ -1,11 +1,11 @@
11charm.land/bubbles/v2 v2.0.0-beta.1.0.20251104200223-da0b892d1759 h1:P1MxkVl8ZeI9tHmmrn9UzV/5Mz7heoiTgqECHRFsUcs=
22charm.land/bubbles/v2 v2.0.0-beta.1.0.20251104200223-da0b892d1759/go.mod h1:G7JWaj3kDT0BDB+h5BLDUhhBLpDoRLKrpOp5QrA2SQs=
3−charm.land/bubbletea/v2 v2.0.0-rc.1.0.20251106164730-d9f7210a9efd h1:eyiUO6fojEdTbEq70qd8S5NXiRzvvIt5YaZsEa/vsfE=
4−charm.land/bubbletea/v2 v2.0.0-rc.1.0.20251106164730-d9f7210a9efd/go.mod h1:oR2A+f83vzDY0hALwW4eh90fKXdranRWnH/vfwJL1lU=
3+charm.land/bubbletea/v2 v2.0.0-rc.1.0.20251106195925-579e174cd7fa h1:J30WneaxF2CV3f2ofamxlr+RwyF6LKSJ3UesrtHfU9I=
4+charm.land/bubbletea/v2 v2.0.0-rc.1.0.20251106195925-579e174cd7fa/go.mod h1:lUNldRH4wRBZ9SGFqlss1Pep7QXzgV/Fp+V9BsAhOPc=
55charm.land/fantasy v0.1.6 h1:laomMUqUaniQoLx7UOb+MLUpIGJPoNwsXvw1PbzgnB8=
66charm.land/fantasy v0.1.6/go.mod h1:JpFcJ5zs/1CjmYYGAZ7GaFmeBv0mPaTzEPRG6Eic5pc=
7−charm.land/lipgloss/v2 v2.0.0-beta.3.0.20251104200114-3aae28661422 h1:LcW3SSv1EZvlb9pfaVZIZyHrPVRJdb0adgX+tWPYl0k=
8−charm.land/lipgloss/v2 v2.0.0-beta.3.0.20251104200114-3aae28661422/go.mod h1:0EJAlA1PDGb+2RyyC02yDSPDwvpegDefu74HC9Blg5o=
7+charm.land/lipgloss/v2 v2.0.0-beta.3.0.20251106193318-19329a3e8410 h1:D9PbaszZYpB4nj+d6HTWr1onlmlyuGVNfL9gAi8iB3k=
8+charm.land/lipgloss/v2 v2.0.0-beta.3.0.20251106193318-19329a3e8410/go.mod h1:1qZyvvVCenJO2M1ac2mX0yyiIZJoZmDM4DG4s0udJkU=
99cloud.google.com/go v0.116.0 h1:B3fRrSDkLRt5qSHWe40ERJvhvnQwdZiHu0bJOpldweE=
1010cloud.google.com/go v0.116.0/go.mod h1:cEPSRWPzZEswwdr9BxE6ChEn01dWlTaF05LiC2Xs70U=
1111cloud.google.com/go/auth v0.17.0 h1:74yCm7hCj2rUyyAocqnFzsAYXgJhrG26XCFimrc/Kz4=
@@ -88,20 +88,16 @@ github.com/charmbracelet/catwalk v0.8.2 h1:J7xq/ft/ZByJCHl3JpgvxlCd59bzZPugy66Xu
8888github.com/charmbracelet/catwalk v0.8.2/go.mod h1:ReU4SdrLfe63jkEjWMdX2wlZMV3k9r11oQAmzN0m+KY=
8989github.com/charmbracelet/colorprofile v0.3.3 h1:DjJzJtLP6/NZ8p7Cgjno0CKGr7wwRJGxWUwh2IyhfAI=
9090github.com/charmbracelet/colorprofile v0.3.3/go.mod h1:nB1FugsAbzq284eJcjfah2nhdSLppN2NqvfotkfRYP4=
91−github.com/charmbracelet/fang v0.4.3 h1:qXeMxnL4H6mSKBUhDefHu8NfikFbP/MBNTfqTrXvzmY=
92−github.com/charmbracelet/fang v0.4.3/go.mod h1:wHJKQYO5ReYsxx+yZl+skDtrlKO/4LLEQ6EXsdHhRhg=
93−github.com/charmbracelet/glamour/v2 v2.0.0-20250811143442-a27abb32f018 h1:PU4Zvpagsk5sgaDxn5W4sxHuLp9QRMBZB3bFSk40A4w=
94−github.com/charmbracelet/glamour/v2 v2.0.0-20250811143442-a27abb32f018/go.mod h1:Z/GLmp9fzaqX4ze3nXG7StgWez5uBM5XtlLHK8V/qSk=
95−github.com/charmbracelet/lipgloss/v2 v2.0.0-beta.3.0.20251103214348-d3032608aa74 h1:2N+CxpUFM6Rrx+xT7XaqM9pp/psOFlxKWa5R7rP/lck=
96−github.com/charmbracelet/lipgloss/v2 v2.0.0-beta.3.0.20251103214348-d3032608aa74/go.mod h1:RfXmCdNs2F4MVJjBVQp5RZYXR05MiRAHN4GHwWmsNIA=
97−github.com/charmbracelet/log/v2 v2.0.0-20250226163916-c379e29ff706 h1:WkwO6Ks3mSIGnGuSdKl9qDSyfbYK50z2wc2gGMggegE=
98−github.com/charmbracelet/log/v2 v2.0.0-20250226163916-c379e29ff706/go.mod h1:mjJGp00cxcfvD5xdCa+bso251Jt4owrQvuimJtVmEmM=
99−github.com/charmbracelet/ultraviolet v0.0.0-20251105181648-75d1e37ff1bb h1:KZnKSrGjarKScpekDuPAVnlMSMtA7mdzmoUD0AhAZC0=
100−github.com/charmbracelet/ultraviolet v0.0.0-20251105181648-75d1e37ff1bb/go.mod h1:G7cNuWgmuugx6ApJv4kDGfnFanoDAz8AWazH9lSoWdw=
101−github.com/charmbracelet/x/ansi v0.10.3 h1:3WoV9XN8uMEnFRZZ+vBPRy59TaIWa+gJodS4Vg5Fut0=
102−github.com/charmbracelet/x/ansi v0.10.3/go.mod h1:uQt8bOrq/xgXjlGcFMc8U2WYbnxyjrKhnvTQluvfCaE=
103−github.com/charmbracelet/x/cellbuf v0.0.14-0.20250811133356-e0c5dbe5ea4a h1:zYSNtEJM9jwHbJts2k+Hroj+xQwsW1yxc4Wopdv7KaI=
104−github.com/charmbracelet/x/cellbuf v0.0.14-0.20250811133356-e0c5dbe5ea4a/go.mod h1:rc2bsPC6MWae3LdOxNO1mOb443NlMrrDL0xEya48NNc=
91+github.com/charmbracelet/fang v0.4.4 h1:G4qKxF6or/eTPgmAolwPuRNyuci3hTUGGX1rj1YkHJY=
92+github.com/charmbracelet/fang v0.4.4/go.mod h1:P5/DNb9DddQ0Z0dbc0P3ol4/ix5Po7Ofr2KMBfAqoCo=
93+github.com/charmbracelet/glamour/v2 v2.0.0-20251106195642-800eb8175930 h1:+47Z2jVAWPSLGjPRbfZizW3OpcAYsu7EUk2DR+66FyM=
94+github.com/charmbracelet/glamour/v2 v2.0.0-20251106195642-800eb8175930/go.mod h1:izs11tnkYaT3DTEH2E0V/lCb18VGZ7k9HLYEGuvgXGA=
95+github.com/charmbracelet/log/v2 v2.0.0-20251106192421-eb64aaa963a0 h1:lxHzxsHd4P7o7+5D5OcEItYkQ1xY3ovNg8Dc5ftd3rI=
96+github.com/charmbracelet/log/v2 v2.0.0-20251106192421-eb64aaa963a0/go.mod h1:Q7oMtlboDPnnrYiJDXNwdWmJblOmuOnycPKczlVju6I=
97+github.com/charmbracelet/ultraviolet v0.0.0-20251106193841-7889546fc720 h1:Pny/vp+ySKst82CWEME1oP6YEFs/17tlH+QOjqW7VUY=
98+github.com/charmbracelet/ultraviolet v0.0.0-20251106193841-7889546fc720/go.mod h1:Y8B4DzWeTb0ama8l3+KyopZtkE8fZjwRQ3aEAPEXHE0=
99+github.com/charmbracelet/x/ansi v0.11.0 h1:uuIVK7GIplwX6UBIz8S2TF8nkr7xRlygSsBRjSJqIvA=
100+github.com/charmbracelet/x/ansi v0.11.0/go.mod h1:uQt8bOrq/xgXjlGcFMc8U2WYbnxyjrKhnvTQluvfCaE=
105101github.com/charmbracelet/x/exp/charmtone v0.0.0-20250708181618-a60a724ba6c3 h1:1xwHZg6eMZ9Wv5TE1UGub6ARubyOd1Lo5kPUI/6VL50=
106102github.com/charmbracelet/x/exp/charmtone v0.0.0-20250708181618-a60a724ba6c3/go.mod h1:T9jr8CzFpjhFVHjNjKwbAD7KwBNyFnj2pntAO7F2zw0=
107103github.com/charmbracelet/x/exp/golden v0.0.0-20250806222409-83e3a29d542f h1:pk6gmGpCE7F3FcjaOEKYriCvpmIN4+6OS/RD0vm4uIA=
internal/tui/exp/list/list.go+2−1
@@ -475,7 +475,8 @@ func (l *list[T]) selectionView(view string, textOnly bool) string {
475475 ts := t.TextSelection
476476
477477 cell = cell.Clone()
478− cell.Style = cell.Style.Background(ts.GetBackground()).Foreground(ts.GetForeground())
478+ cell.Style.Bg = ts.GetBackground()
479+ cell.Style.Fg = ts.GetForeground()
479480 scr.SetCell(x, y, cell)
480481 }
481482 }
internal/tui/page/chat/chat.go+2−1
@@ -946,7 +946,8 @@ func (p *chatPage) Help() help.KeyMap {
946946 key.WithKeys("ctrl+m", "ctrl+l"),
947947 key.WithHelp("ctrl+l", "models"),
948948 )
949− if p.keyboardEnhancements.SupportsKeyDisambiguation() {
949+ if p.keyboardEnhancements.Flags > 0 {
950+ // non-zero flags mean we have at least key disambiguation
950951 modelsBinding.SetHelp("ctrl+m", "models")
951952 }
952953 helpBinding := key.NewBinding(
internal/tui/tui.go+19−16
@@ -127,7 +127,8 @@ func (a *appModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
127127 }
128128 return a, nil
129129 case tea.KeyboardEnhancementsMsg:
130− if msg.SupportsKeyDisambiguation() {
130+ // A non-zero value means we have key disambiguation support.
131+ if msg.Flags > 0 {
131132 a.keyMap.Models.SetHelp("ctrl+m", "models")
132133 }
133134 for id, page := range a.pages {
@@ -558,22 +559,25 @@ func (a *appModel) moveToPage(pageID page.PageID) tea.Cmd {
558559// View renders the complete application interface including pages, dialogs, and overlays.
559560func (a *appModel) View() tea.View {
560561 var view tea.View
561− view.AltScreen = true
562562 t := styles.CurrentTheme()
563+ view.AltScreen = true
564+ view.MouseMode = tea.MouseModeCellMotion
563565 view.BackgroundColor = t.BgBase
564566 if a.wWidth < 25 || a.wHeight < 15 {
565− view.Layer = lipgloss.NewCanvas(
566− lipgloss.NewLayer(
567− t.S().Base.Width(a.wWidth).Height(a.wHeight).
568− Align(lipgloss.Center, lipgloss.Center).
569− Render(
570− t.S().Base.
571− Padding(1, 4).
572− Foreground(t.White).
573− BorderStyle(lipgloss.RoundedBorder()).
574− BorderForeground(t.Primary).
575− Render("Window too small!"),
576− ),
567+ view.SetContent(
568+ lipgloss.NewCanvas(
569+ lipgloss.NewLayer(
570+ t.S().Base.Width(a.wWidth).Height(a.wHeight).
571+ Align(lipgloss.Center, lipgloss.Center).
572+ Render(
573+ t.S().Base.
574+ Padding(1, 4).
575+ Foreground(t.White).
576+ BorderStyle(lipgloss.RoundedBorder()).
577+ BorderForeground(t.Primary).
578+ Render("Window too small!"),
579+ ),
580+ ),
577581 ),
578582 )
579583 return view
@@ -630,9 +634,8 @@ func (a *appModel) View() tea.View {
630634 layers...,
631635 )
632636
633− view.Layer = canvas
637+ view.Content = canvas
634638 view.Cursor = cursor
635− view.MouseMode = tea.MouseModeCellMotion
636639
637640 if a.sendProgressBar && a.app != nil && a.app.AgentCoordinator != nil && a.app.AgentCoordinator.IsBusy() {
638641 // HACK: use a random percentage to prevent ghostty from hiding it