Compare commits

..

1 Commits

Author SHA1 Message Date
Renovate-Clanker b246b68924 fix(deps): update module charm.land/lipgloss/v2 to v2.0.1
Tests / Run Tests (pull_request) Successful in 2m6s
2026-03-09 11:06:09 +00:00
5 changed files with 13 additions and 63 deletions
+2 -2
View File
@@ -4,11 +4,11 @@ go 1.26.0
require ( require (
charm.land/bubbles/v2 v2.0.0 charm.land/bubbles/v2 v2.0.0
charm.land/bubbletea/v2 v2.0.2 charm.land/bubbletea/v2 v2.0.1
charm.land/lipgloss/v2 v2.0.1 charm.land/lipgloss/v2 v2.0.1
git.fossy.my.id/bagas/tunnel-please-grpc v1.5.0 git.fossy.my.id/bagas/tunnel-please-grpc v1.5.0
github.com/caddyserver/certmagic v0.25.2 github.com/caddyserver/certmagic v0.25.2
github.com/charmbracelet/colorprofile v0.4.3 github.com/charmbracelet/colorprofile v0.4.2
github.com/joho/godotenv v1.5.1 github.com/joho/godotenv v1.5.1
github.com/libdns/cloudflare v0.2.2 github.com/libdns/cloudflare v0.2.2
github.com/stretchr/testify v1.11.1 github.com/stretchr/testify v1.11.1
-4
View File
@@ -2,8 +2,6 @@ charm.land/bubbles/v2 v2.0.0 h1:tE3eK/pHjmtrDiRdoC9uGNLgpopOd8fjhEe31B/ai5s=
charm.land/bubbles/v2 v2.0.0/go.mod h1:rCHoleP2XhU8um45NTuOWBPNVHxnkXKTiZqcclL/qOI= charm.land/bubbles/v2 v2.0.0/go.mod h1:rCHoleP2XhU8um45NTuOWBPNVHxnkXKTiZqcclL/qOI=
charm.land/bubbletea/v2 v2.0.1 h1:B8e9zzK7x9JJ+XvHGF4xnYu9Xa0E0y0MyggY6dbaCfQ= charm.land/bubbletea/v2 v2.0.1 h1:B8e9zzK7x9JJ+XvHGF4xnYu9Xa0E0y0MyggY6dbaCfQ=
charm.land/bubbletea/v2 v2.0.1/go.mod h1:3LRff2U4WIYXy7MTxfbAQ+AdfM3D8Xuvz2wbsOD9OHQ= charm.land/bubbletea/v2 v2.0.1/go.mod h1:3LRff2U4WIYXy7MTxfbAQ+AdfM3D8Xuvz2wbsOD9OHQ=
charm.land/bubbletea/v2 v2.0.2 h1:4CRtRnuZOdFDTWSff9r8QFt/9+z6Emubz3aDMnf/dx0=
charm.land/bubbletea/v2 v2.0.2/go.mod h1:3LRff2U4WIYXy7MTxfbAQ+AdfM3D8Xuvz2wbsOD9OHQ=
charm.land/lipgloss/v2 v2.0.0 h1:sd8N/B3x892oiOjFfBQdXBQp3cAkvjGaU5TvVZC3ivo= charm.land/lipgloss/v2 v2.0.0 h1:sd8N/B3x892oiOjFfBQdXBQp3cAkvjGaU5TvVZC3ivo=
charm.land/lipgloss/v2 v2.0.0/go.mod h1:w6SnmsBFBmEFBodiEDurGS/sdUY/u1+v72DqUzc6J14= charm.land/lipgloss/v2 v2.0.0/go.mod h1:w6SnmsBFBmEFBodiEDurGS/sdUY/u1+v72DqUzc6J14=
charm.land/lipgloss/v2 v2.0.1 h1:6Xzrn49+Py1Um5q/wZG1gWgER2+7dUyZ9XMEufqPSys= charm.land/lipgloss/v2 v2.0.1 h1:6Xzrn49+Py1Um5q/wZG1gWgER2+7dUyZ9XMEufqPSys=
@@ -24,8 +22,6 @@ github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UF
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/charmbracelet/colorprofile v0.4.2 h1:BdSNuMjRbotnxHSfxy+PCSa4xAmz7szw70ktAtWRYrY= github.com/charmbracelet/colorprofile v0.4.2 h1:BdSNuMjRbotnxHSfxy+PCSa4xAmz7szw70ktAtWRYrY=
github.com/charmbracelet/colorprofile v0.4.2/go.mod h1:0rTi81QpwDElInthtrQ6Ni7cG0sDtwAd4C4le060fT8= github.com/charmbracelet/colorprofile v0.4.2/go.mod h1:0rTi81QpwDElInthtrQ6Ni7cG0sDtwAd4C4le060fT8=
github.com/charmbracelet/colorprofile v0.4.3 h1:QPa1IWkYI+AOB+fE+mg/5/4HRMZcaXex9t5KX76i20Q=
github.com/charmbracelet/colorprofile v0.4.3/go.mod h1:/zT4BhpD5aGFpqQQqw7a+VtHCzu+zrQtt1zhMt9mR4Q=
github.com/charmbracelet/ultraviolet v0.0.0-20260205113103-524a6607adb8 h1:eyFRbAmexyt43hVfeyBofiGSEmJ7krjLOYt/9CF5NKA= github.com/charmbracelet/ultraviolet v0.0.0-20260205113103-524a6607adb8 h1:eyFRbAmexyt43hVfeyBofiGSEmJ7krjLOYt/9CF5NKA=
github.com/charmbracelet/ultraviolet v0.0.0-20260205113103-524a6607adb8/go.mod h1:SQpCTRNBtzJkwku5ye4S3HEuthAlGy2n9VXZnWkEW98= github.com/charmbracelet/ultraviolet v0.0.0-20260205113103-524a6607adb8/go.mod h1:SQpCTRNBtzJkwku5ye4S3HEuthAlGy2n9VXZnWkEW98=
github.com/charmbracelet/x/ansi v0.11.6 h1:GhV21SiDz/45W9AnV2R61xZMRri5NlLnl6CVF7ihZW8= github.com/charmbracelet/x/ansi v0.11.6 h1:GhV21SiDz/45W9AnV2R61xZMRri5NlLnl6CVF7ihZW8=
+2 -3
View File
@@ -11,9 +11,8 @@
"digest" "digest"
], ],
"automerge": true, "automerge": true,
"groupName": "all-dependencies", "baseBranchPatterns": [
"matchPackageNames": [ "staging"
"*"
] ]
} }
] ]
+8 -32
View File
@@ -53,8 +53,6 @@ type interaction struct {
cancel context.CancelFunc cancel context.CancelFunc
mode types.InteractiveMode mode types.InteractiveMode
programMu sync.Mutex programMu sync.Mutex
width int
height int
} }
func (i *interaction) SetMode(m types.InteractiveMode) { func (i *interaction) SetMode(m types.InteractiveMode) {
@@ -73,14 +71,8 @@ func (i *interaction) Send(message string) error {
return nil return nil
} }
func (i *interaction) SetWH(w, h int) { func (i *interaction) SetWH(w, h int) {
i.programMu.Lock() if i.program != nil {
i.width = w i.program.Send(tea.WindowSizeMsg{
i.height = h
prog := i.program
i.programMu.Unlock()
if prog != nil {
prog.Send(tea.WindowSizeMsg{
Width: w, Width: w,
Height: h, Height: h,
}) })
@@ -166,13 +158,8 @@ func (m *model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
} }
func (i *interaction) Redraw() { func (i *interaction) Redraw() {
i.programMu.Lock() if i.program != nil {
prog := i.program i.program.Send(tea.WindowSizeMsg{})
w, h := i.width, i.height
i.programMu.Unlock()
if prog != nil {
prog.Send(tea.WindowSizeMsg{Width: w, Height: h})
} }
} }
@@ -259,29 +246,18 @@ func (i *interaction) Start() {
} }
i.programMu.Lock() i.programMu.Lock()
w, h := i.width, i.height i.program = tea.NewProgram(
i.programMu.Unlock() m,
opts := []tea.ProgramOption{
tea.WithInput(i.channel), tea.WithInput(i.channel),
tea.WithOutput(i.channel), tea.WithOutput(i.channel),
tea.WithColorProfile(colorprofile.TrueColor), tea.WithColorProfile(colorprofile.TrueColor),
tea.WithoutSignals(), tea.WithoutSignals(),
tea.WithoutSignalHandler(), tea.WithoutSignalHandler(),
tea.WithFPS(30), tea.WithFPS(30),
tea.WithEnvironment([]string{"TERM=xterm-256color", "COLORTERM=truecolor"}), )
}
if w > 0 && h > 0 {
opts = append(opts, tea.WithWindowSize(w, h))
}
prog := tea.NewProgram(m, opts...)
i.programMu.Lock()
i.program = prog
i.programMu.Unlock() i.programMu.Unlock()
_, err := prog.Run() _, err := i.program.Run()
if err != nil { if err != nil {
log.Printf("Cannot close tea: %s \n", err) log.Printf("Cannot close tea: %s \n", err)
} }
+1 -22
View File
@@ -232,34 +232,13 @@ func (s *session) handleWindowChange(req *ssh.Request) error {
return req.Reply(true, nil) return req.Reply(true, nil)
} }
func (s *session) handlePtyReq(req *ssh.Request) error {
var ptyPayload struct {
Term string
Width uint32
Height uint32
PxW uint32
PxH uint32
Modes string
}
if err := ssh.Unmarshal(req.Payload, &ptyPayload); err == nil {
if ptyPayload.Width > 0 && ptyPayload.Height > 0 {
s.interaction.SetWH(int(ptyPayload.Width), int(ptyPayload.Height))
}
}
return req.Reply(true, nil)
}
func (s *session) HandleGlobalRequest(GlobalRequest <-chan *ssh.Request) error { func (s *session) HandleGlobalRequest(GlobalRequest <-chan *ssh.Request) error {
for req := range GlobalRequest { for req := range GlobalRequest {
switch req.Type { switch req.Type {
case "shell": case "shell", "pty-req":
if err := req.Reply(true, nil); err != nil { if err := req.Reply(true, nil); err != nil {
return err return err
} }
case "pty-req":
if err := s.handlePtyReq(req); err != nil {
return err
}
case "window-change": case "window-change":
if err := s.handleWindowChange(req); err != nil { if err := s.handleWindowChange(req); err != nil {
return err return err