detached 998b312

Merge pull request 'chore(deps): update Go dependencies and templ to v0.3.1070' (#6) from chore/deps-update-2026-10 into main

commit
998b3121ae5ce44025bd23168ddc1d84c51248c1
author
bnema · · 2026-10-14 09:31 UTC
merge of
1983990 + 031f2c5 · diff against the first parent
signature
SSH UnverifiedSHA256:VOCA5lYARHcbKDZ7GhTV45VmcjWnJ6ZQIBazj17LivA The key is unknown
9 files · +271 -297
M go.mod +19 -21
@@ -3,8 +3,8 @@ module github.com/bnema/dumber
33 go 1.27
44
55 require (
6- github.com/a-h/templ v0.3.1020
7- github.com/andybalholm/brotli v1.2.5
6+ github.com/a-h/templ v0.3.1070
7+ github.com/andybalholm/brotli v1.2.6
88 github.com/bnema/purego v0.13.0-bnema.1
99 github.com/bnema/purego-cef v0.14.4
1010 github.com/bnema/purego-cef2gtk v0.11.4
@@ -16,17 +16,17 @@ require (
1616 github.com/charmbracelet/bubbletea v1.3.10
1717 github.com/charmbracelet/lipgloss v1.1.0
1818 github.com/fsnotify/fsnotify v1.10.1
19- github.com/godbus/dbus/v5 v5.2.2
19+ github.com/godbus/dbus/v5 v5.2.4
2020 github.com/pelletier/go-toml/v2 v2.4.3
21- github.com/pressly/goose/v3 v3.28.0
21+ github.com/pressly/goose/v3 v3.29.0
2222 github.com/rs/zerolog v1.35.1
2323 github.com/spf13/cobra v1.10.2
2424 github.com/spf13/pflag v1.0.10
2525 github.com/spf13/viper v1.21.0
2626 github.com/stretchr/testify v1.12.1
27- golang.org/x/image v0.46.0
28- golang.org/x/net v0.59.0
29- golang.org/x/sys v0.48.0
27+ golang.org/x/image v0.47.0
28+ golang.org/x/net v0.61.0
29+ golang.org/x/sys v0.49.0
3030 gopkg.in/yaml.v3 v3.0.1
3131 )
3232
@@ -36,7 +36,7 @@ require (
3636 github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
3737 github.com/cenkalti/backoff/v4 v4.3.0 // indirect
3838 github.com/charmbracelet/colorprofile v0.4.3 // indirect
39- github.com/charmbracelet/x/ansi v0.11.7 // indirect
39+ github.com/charmbracelet/x/ansi v0.11.9 // indirect
4040 github.com/charmbracelet/x/cellbuf v0.0.15 // indirect
4141 github.com/charmbracelet/x/exp/golden v0.0.0-20260511125431-fe5d686e0c99 // indirect
4242 github.com/charmbracelet/x/term v0.2.2 // indirect
@@ -47,13 +47,12 @@ require (
4747 github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
4848 github.com/fatih/color v1.19.0 // indirect
4949 github.com/go-viper/mapstructure/v2 v2.5.0 // indirect
50- github.com/google/go-cmp v0.7.0 // indirect
5150 github.com/inconshreveable/mousetrap v1.1.0 // indirect
52- github.com/lucasb-eyer/go-colorful v1.4.0 // indirect
53- github.com/mattn/go-colorable v0.1.14 // indirect
51+ github.com/lucasb-eyer/go-colorful v1.4.1 // indirect
52+ github.com/mattn/go-colorable v0.1.16 // indirect
5453 github.com/mattn/go-isatty v0.0.24 // indirect
5554 github.com/mattn/go-localereader v0.0.1 // indirect
56- github.com/mattn/go-runewidth v0.0.23 // indirect
55+ github.com/mattn/go-runewidth v0.0.31 // indirect
5756 github.com/mfridman/interpolate v0.0.2 // indirect
5857 github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
5958 github.com/muesli/cancelreader v0.2.2 // indirect
@@ -63,22 +62,21 @@ require (
6362 github.com/rogpeppe/go-internal v1.14.1 // indirect
6463 github.com/russross/blackfriday/v2 v2.1.0 // indirect
6564 github.com/sagikazarmark/locafero v0.12.0 // indirect
66- github.com/sahilm/fuzzy v0.1.2 // indirect
67- github.com/sethvargo/go-retry v0.4.0 // indirect
65+ github.com/sahilm/fuzzy v0.1.3 // indirect
66+ github.com/sethvargo/go-retry v0.5.0 // indirect
6867 github.com/spf13/afero v1.15.0 // indirect
6968 github.com/spf13/cast v1.10.0 // indirect
70- github.com/stretchr/objx v0.5.3 // indirect
69+ github.com/stretchr/objx v0.7.0 // indirect
7170 github.com/subosito/gotenv v1.6.0 // indirect
72- github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
71+ github.com/xo/terminfo v1.2.0 // indirect
7372 github.com/xyproto/randomstring v1.2.0 // indirect
7473 go.uber.org/multierr v1.11.0 // indirect
7574 go.yaml.in/yaml/v3 v3.0.5 // indirect
76- golang.org/x/mod v0.41.0 // indirect
77- golang.org/x/sync v0.23.0 // indirect
78- golang.org/x/text v0.42.0 // indirect
79- golang.org/x/tools v0.49.0 // indirect
75+ golang.org/x/mod v0.42.0 // indirect
76+ golang.org/x/sync v0.24.0 // indirect
77+ golang.org/x/text v0.43.0 // indirect
78+ golang.org/x/tools v0.52.0 // indirect
8079 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
81- mvdan.cc/gofumpt v0.9.2 // indirect
8280 )
8381
8482 tool github.com/a-h/templ/cmd/templ
@@ -3,8 +3,8 @@ module github.com/bnema/dumber
3 go 1.273 go 1.27
4 4
5 require (5 require (
6- github.com/a-h/templ v0.3.10206+ github.com/a-h/templ v0.3.1070
7- github.com/andybalholm/brotli v1.2.57+ github.com/andybalholm/brotli v1.2.6
8 github.com/bnema/purego v0.13.0-bnema.18 github.com/bnema/purego v0.13.0-bnema.1
9 github.com/bnema/purego-cef v0.14.49 github.com/bnema/purego-cef v0.14.4
10 github.com/bnema/purego-cef2gtk v0.11.410 github.com/bnema/purego-cef2gtk v0.11.4
@@ -16,17 +16,17 @@ require (
16 github.com/charmbracelet/bubbletea v1.3.1016 github.com/charmbracelet/bubbletea v1.3.10
17 github.com/charmbracelet/lipgloss v1.1.017 github.com/charmbracelet/lipgloss v1.1.0
18 github.com/fsnotify/fsnotify v1.10.118 github.com/fsnotify/fsnotify v1.10.1
19- github.com/godbus/dbus/v5 v5.2.219+ github.com/godbus/dbus/v5 v5.2.4
20 github.com/pelletier/go-toml/v2 v2.4.320 github.com/pelletier/go-toml/v2 v2.4.3
21- github.com/pressly/goose/v3 v3.28.021+ github.com/pressly/goose/v3 v3.29.0
22 github.com/rs/zerolog v1.35.122 github.com/rs/zerolog v1.35.1
23 github.com/spf13/cobra v1.10.223 github.com/spf13/cobra v1.10.2
24 github.com/spf13/pflag v1.0.1024 github.com/spf13/pflag v1.0.10
25 github.com/spf13/viper v1.21.025 github.com/spf13/viper v1.21.0
26 github.com/stretchr/testify v1.12.126 github.com/stretchr/testify v1.12.1
27- golang.org/x/image v0.46.027+ golang.org/x/image v0.47.0
28- golang.org/x/net v0.59.028+ golang.org/x/net v0.61.0
29- golang.org/x/sys v0.48.029+ golang.org/x/sys v0.49.0
30 gopkg.in/yaml.v3 v3.0.130 gopkg.in/yaml.v3 v3.0.1
31 )31 )
32 32
@@ -36,7 +36,7 @@ require (
36 github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect36 github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
37 github.com/cenkalti/backoff/v4 v4.3.0 // indirect37 github.com/cenkalti/backoff/v4 v4.3.0 // indirect
38 github.com/charmbracelet/colorprofile v0.4.3 // indirect38 github.com/charmbracelet/colorprofile v0.4.3 // indirect
39- github.com/charmbracelet/x/ansi v0.11.7 // indirect39+ github.com/charmbracelet/x/ansi v0.11.9 // indirect
40 github.com/charmbracelet/x/cellbuf v0.0.15 // indirect40 github.com/charmbracelet/x/cellbuf v0.0.15 // indirect
41 github.com/charmbracelet/x/exp/golden v0.0.0-20260511125431-fe5d686e0c99 // indirect41 github.com/charmbracelet/x/exp/golden v0.0.0-20260511125431-fe5d686e0c99 // indirect
42 github.com/charmbracelet/x/term v0.2.2 // indirect42 github.com/charmbracelet/x/term v0.2.2 // indirect
@@ -47,13 +47,12 @@ require (
47 github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect47 github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
48 github.com/fatih/color v1.19.0 // indirect48 github.com/fatih/color v1.19.0 // indirect
49 github.com/go-viper/mapstructure/v2 v2.5.0 // indirect49 github.com/go-viper/mapstructure/v2 v2.5.0 // indirect
50- github.com/google/go-cmp v0.7.0 // indirect
51 github.com/inconshreveable/mousetrap v1.1.0 // indirect50 github.com/inconshreveable/mousetrap v1.1.0 // indirect
52- github.com/lucasb-eyer/go-colorful v1.4.0 // indirect51+ github.com/lucasb-eyer/go-colorful v1.4.1 // indirect
53- github.com/mattn/go-colorable v0.1.14 // indirect52+ github.com/mattn/go-colorable v0.1.16 // indirect
54 github.com/mattn/go-isatty v0.0.24 // indirect53 github.com/mattn/go-isatty v0.0.24 // indirect
55 github.com/mattn/go-localereader v0.0.1 // indirect54 github.com/mattn/go-localereader v0.0.1 // indirect
56- github.com/mattn/go-runewidth v0.0.23 // indirect55+ github.com/mattn/go-runewidth v0.0.31 // indirect
57 github.com/mfridman/interpolate v0.0.2 // indirect56 github.com/mfridman/interpolate v0.0.2 // indirect
58 github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect57 github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
59 github.com/muesli/cancelreader v0.2.2 // indirect58 github.com/muesli/cancelreader v0.2.2 // indirect
@@ -63,22 +62,21 @@ require (
63 github.com/rogpeppe/go-internal v1.14.1 // indirect62 github.com/rogpeppe/go-internal v1.14.1 // indirect
64 github.com/russross/blackfriday/v2 v2.1.0 // indirect63 github.com/russross/blackfriday/v2 v2.1.0 // indirect
65 github.com/sagikazarmark/locafero v0.12.0 // indirect64 github.com/sagikazarmark/locafero v0.12.0 // indirect
66- github.com/sahilm/fuzzy v0.1.2 // indirect65+ github.com/sahilm/fuzzy v0.1.3 // indirect
67- github.com/sethvargo/go-retry v0.4.0 // indirect66+ github.com/sethvargo/go-retry v0.5.0 // indirect
68 github.com/spf13/afero v1.15.0 // indirect67 github.com/spf13/afero v1.15.0 // indirect
69 github.com/spf13/cast v1.10.0 // indirect68 github.com/spf13/cast v1.10.0 // indirect
70- github.com/stretchr/objx v0.5.3 // indirect69+ github.com/stretchr/objx v0.7.0 // indirect
71 github.com/subosito/gotenv v1.6.0 // indirect70 github.com/subosito/gotenv v1.6.0 // indirect
72- github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect71+ github.com/xo/terminfo v1.2.0 // indirect
73 github.com/xyproto/randomstring v1.2.0 // indirect72 github.com/xyproto/randomstring v1.2.0 // indirect
74 go.uber.org/multierr v1.11.0 // indirect73 go.uber.org/multierr v1.11.0 // indirect
75 go.yaml.in/yaml/v3 v3.0.5 // indirect74 go.yaml.in/yaml/v3 v3.0.5 // indirect
76- golang.org/x/mod v0.41.0 // indirect75+ golang.org/x/mod v0.42.0 // indirect
77- golang.org/x/sync v0.23.0 // indirect76+ golang.org/x/sync v0.24.0 // indirect
78- golang.org/x/text v0.42.0 // indirect77+ golang.org/x/text v0.43.0 // indirect
79- golang.org/x/tools v0.49.0 // indirect78+ golang.org/x/tools v0.52.0 // indirect
80 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect79 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
81- mvdan.cc/gofumpt v0.9.2 // indirect
82 )80 )
83 81
84 tool github.com/a-h/templ/cmd/templ82 tool github.com/a-h/templ/cmd/templ
M go.sum +46 -54 generated file: collapsed
M internal/application/usecase/favicon_refresh.go +2 -2
@@ -136,8 +136,8 @@ type refreshCoordinator struct {
136136 // Adds happen under mu before the goroutine starts; Done runs when the
137137 // executor finishes. Sealed admission (closed) guarantees no Add can
138138 // race a completed Wait.
139- wg sync.WaitGroup
140- epoch uint64
139+ wg sync.WaitGroup
140+ epoch uint64
141141 // closed seals admission: set by Close before cancel/drain, so no
142142 // refresh can start after the drain observes zero active operations.
143143 closed bool
@@ -136,8 +136,8 @@ type refreshCoordinator struct {
136 // Adds happen under mu before the goroutine starts; Done runs when the136 // Adds happen under mu before the goroutine starts; Done runs when the
137 // executor finishes. Sealed admission (closed) guarantees no Add can137 // executor finishes. Sealed admission (closed) guarantees no Add can
138 // race a completed Wait.138 // race a completed Wait.
139- wg sync.WaitGroup139+ wg sync.WaitGroup
140- epoch uint64140+ epoch uint64
141 // closed seals admission: set by Close before cancel/drain, so no141 // closed seals admission: set by Close before cancel/drain, so no
142 // refresh can start after the drain observes zero active operations.142 // refresh can start after the drain observes zero active operations.
143 closed bool143 closed bool
M internal/infrastructure/cef/systemview_asset_cache.go +9 -9
@@ -192,22 +192,22 @@ func readBoundedAsset(assetsFS fs.FS, name string, maxBytes int) ([]byte, error)
192192 // waiters share the same decoded bytes unaffected. A versioned request pins
193193 // exact bytes: only output hashing to wantDigest earns immutable headers.
194194 type systemviewWASMResourceHandler struct {
195- cancel context.CancelFunc
196- cancelOnce sync.Once
195+ cancel context.CancelFunc
196+ cancelOnce sync.Once
197197 // ctx scopes the request to the handler lifetime: engine shutdown
198198 // cancels it, letting completion suppress the native continuation.
199199 // It is released after the continuation decision, never by load
200200 // itself, so shutdown stays observable at that point.
201- ctx context.Context
202- bundle *systemviewAssetBundle
203- versioned bool
204- wantDigest string
205- once sync.Once
201+ ctx context.Context
202+ bundle *systemviewAssetBundle
203+ versioned bool
204+ wantDigest string
205+ once sync.Once
206206 // settleMu arbitrates the continuation race: exactly one of
207207 // request completion or cancellation wins, so a canceled waiter
208208 // never resumes CEF while a completed load always does.
209- settleMu sync.Mutex
210- settled bool
209+ settleMu sync.Mutex
210+ settled bool
211211 done chan struct{}
212212 data []byte
213213 contentType string
@@ -192,22 +192,22 @@ func readBoundedAsset(assetsFS fs.FS, name string, maxBytes int) ([]byte, error)
192 // waiters share the same decoded bytes unaffected. A versioned request pins192 // waiters share the same decoded bytes unaffected. A versioned request pins
193 // exact bytes: only output hashing to wantDigest earns immutable headers.193 // exact bytes: only output hashing to wantDigest earns immutable headers.
194 type systemviewWASMResourceHandler struct {194 type systemviewWASMResourceHandler struct {
195- cancel context.CancelFunc195+ cancel context.CancelFunc
196- cancelOnce sync.Once196+ cancelOnce sync.Once
197 // ctx scopes the request to the handler lifetime: engine shutdown197 // ctx scopes the request to the handler lifetime: engine shutdown
198 // cancels it, letting completion suppress the native continuation.198 // cancels it, letting completion suppress the native continuation.
199 // It is released after the continuation decision, never by load199 // It is released after the continuation decision, never by load
200 // itself, so shutdown stays observable at that point.200 // itself, so shutdown stays observable at that point.
201- ctx context.Context201+ ctx context.Context
202- bundle *systemviewAssetBundle202+ bundle *systemviewAssetBundle
203- versioned bool203+ versioned bool
204- wantDigest string204+ wantDigest string
205- once sync.Once205+ once sync.Once
206 // settleMu arbitrates the continuation race: exactly one of206 // settleMu arbitrates the continuation race: exactly one of
207 // request completion or cancellation wins, so a canceled waiter207 // request completion or cancellation wins, so a canceled waiter
208 // never resumes CEF while a completed load always does.208 // never resumes CEF while a completed load always does.
209- settleMu sync.Mutex209+ settleMu sync.Mutex
210- settled bool210+ settled bool
211 done chan struct{}211 done chan struct{}
212 data []byte212 data []byte
213 contentType string213 contentType string
M internal/infrastructure/cef/webview_scroll_cancel_test.go +11 -11
@@ -120,13 +120,13 @@ func TestNavCommandOffThreadDispatchCompletes(t *testing.T) {
120120 browser.EXPECT().GoBack().Return().Once()
121121
122122 wv := &WebView{
123- ctx: context.Background(),
124- engine: &Engine{},
125- browser: browser,
123+ ctx: context.Background(),
124+ engine: &Engine{},
125+ browser: browser,
126126 scrollCancelSeam: fake,
127- gtkSyncIsOwner: func() bool { return false },
128- gtkSyncDispatch: func(fn func()) { go fn() },
129- gtkSyncTimeout: 2 * time.Second,
127+ gtkSyncIsOwner: func() bool { return false },
128+ gtkSyncDispatch: func(fn func()) { go fn() },
129+ gtkSyncTimeout: 2 * time.Second,
130130 }
131131
132132 require.NoError(t, wv.GoBack(context.Background()))
@@ -141,12 +141,12 @@ func TestNavCommandDispatchTimeoutSkipsNavigation(t *testing.T) {
141141 fake.startGesture()
142142
143143 wv := &WebView{
144- ctx: context.Background(),
145- engine: &Engine{},
144+ ctx: context.Background(),
145+ engine: &Engine{},
146146 scrollCancelSeam: fake,
147- gtkSyncIsOwner: func() bool { return false },
148- gtkSyncDispatch: func(func()) {},
149- gtkSyncTimeout: 20 * time.Millisecond,
147+ gtkSyncIsOwner: func() bool { return false },
148+ gtkSyncDispatch: func(func()) {},
149+ gtkSyncTimeout: 20 * time.Millisecond,
150150 }
151151
152152 err := wv.LoadURI(context.Background(), "https://example.com/")
@@ -120,13 +120,13 @@ func TestNavCommandOffThreadDispatchCompletes(t *testing.T) {
120 browser.EXPECT().GoBack().Return().Once()120 browser.EXPECT().GoBack().Return().Once()
121 121
122 wv := &WebView{122 wv := &WebView{
123- ctx: context.Background(),123+ ctx: context.Background(),
124- engine: &Engine{},124+ engine: &Engine{},
125- browser: browser,125+ browser: browser,
126 scrollCancelSeam: fake,126 scrollCancelSeam: fake,
127- gtkSyncIsOwner: func() bool { return false },127+ gtkSyncIsOwner: func() bool { return false },
128- gtkSyncDispatch: func(fn func()) { go fn() },128+ gtkSyncDispatch: func(fn func()) { go fn() },
129- gtkSyncTimeout: 2 * time.Second,129+ gtkSyncTimeout: 2 * time.Second,
130 }130 }
131 131
132 require.NoError(t, wv.GoBack(context.Background()))132 require.NoError(t, wv.GoBack(context.Background()))
@@ -141,12 +141,12 @@ func TestNavCommandDispatchTimeoutSkipsNavigation(t *testing.T) {
141 fake.startGesture()141 fake.startGesture()
142 142
143 wv := &WebView{143 wv := &WebView{
144- ctx: context.Background(),144+ ctx: context.Background(),
145- engine: &Engine{},145+ engine: &Engine{},
146 scrollCancelSeam: fake,146 scrollCancelSeam: fake,
147- gtkSyncIsOwner: func() bool { return false },147+ gtkSyncIsOwner: func() bool { return false },
148- gtkSyncDispatch: func(func()) {},148+ gtkSyncDispatch: func(func()) {},
149- gtkSyncTimeout: 20 * time.Millisecond,149+ gtkSyncTimeout: 20 * time.Millisecond,
150 }150 }
151 151
152 err := wv.LoadURI(context.Background(), "https://example.com/")152 err := wv.LoadURI(context.Background(), "https://example.com/")
M internal/infrastructure/config/engine.go +2 -2
@@ -130,8 +130,8 @@ type CEFInputConfig struct {
130130 ScrollHorizontalMultiplier float64 `mapstructure:"scroll_horizontal_multiplier" toml:"scroll_horizontal_multiplier" yaml:"scroll_horizontal_multiplier"` //nolint:lll // struct tags exceed lll limit
131131 ScrollVerticalMultiplier float64 `mapstructure:"scroll_vertical_multiplier" toml:"scroll_vertical_multiplier" yaml:"scroll_vertical_multiplier"` //nolint:lll // struct tags exceed lll limit
132132 ScrollMaxDelta int32 `mapstructure:"scroll_max_delta" toml:"scroll_max_delta" yaml:"scroll_max_delta"` //nolint:lll // struct tags exceed lll limit
133- ScrollTouchpadInertia bool `mapstructure:"scroll_touchpad_inertia" toml:"scroll_touchpad_inertia" yaml:"scroll_touchpad_inertia"` //nolint:lll // struct tags exceed lll limit
134- ScrollWheelSmoothing bool `mapstructure:"scroll_wheel_smoothing" toml:"scroll_wheel_smoothing" yaml:"scroll_wheel_smoothing"` //nolint:lll // struct tags exceed lll limit
133+ ScrollTouchpadInertia bool `mapstructure:"scroll_touchpad_inertia" toml:"scroll_touchpad_inertia" yaml:"scroll_touchpad_inertia"` //nolint:lll // struct tags exceed lll limit
134+ ScrollWheelSmoothing bool `mapstructure:"scroll_wheel_smoothing" toml:"scroll_wheel_smoothing" yaml:"scroll_wheel_smoothing"` //nolint:lll // struct tags exceed lll limit
135135 TouchpadNavigationEnabled bool `mapstructure:"touchpad_navigation_enabled" toml:"touchpad_navigation_enabled" yaml:"touchpad_navigation_enabled"` //nolint:lll // struct tags exceed lll limit
136136 TouchpadNavigationMinDelta float64 `mapstructure:"touchpad_navigation_min_delta" toml:"touchpad_navigation_min_delta" yaml:"touchpad_navigation_min_delta"` //nolint:lll // struct tags exceed lll limit
137137 TouchpadNavigationMaxVerticalRatio float64 `mapstructure:"touchpad_navigation_max_vertical_ratio" toml:"touchpad_navigation_max_vertical_ratio" yaml:"touchpad_navigation_max_vertical_ratio"` //nolint:lll // struct tags exceed lll limit
@@ -130,8 +130,8 @@ type CEFInputConfig struct {
130 ScrollHorizontalMultiplier float64 `mapstructure:"scroll_horizontal_multiplier" toml:"scroll_horizontal_multiplier" yaml:"scroll_horizontal_multiplier"` //nolint:lll // struct tags exceed lll limit130 ScrollHorizontalMultiplier float64 `mapstructure:"scroll_horizontal_multiplier" toml:"scroll_horizontal_multiplier" yaml:"scroll_horizontal_multiplier"` //nolint:lll // struct tags exceed lll limit
131 ScrollVerticalMultiplier float64 `mapstructure:"scroll_vertical_multiplier" toml:"scroll_vertical_multiplier" yaml:"scroll_vertical_multiplier"` //nolint:lll // struct tags exceed lll limit131 ScrollVerticalMultiplier float64 `mapstructure:"scroll_vertical_multiplier" toml:"scroll_vertical_multiplier" yaml:"scroll_vertical_multiplier"` //nolint:lll // struct tags exceed lll limit
132 ScrollMaxDelta int32 `mapstructure:"scroll_max_delta" toml:"scroll_max_delta" yaml:"scroll_max_delta"` //nolint:lll // struct tags exceed lll limit132 ScrollMaxDelta int32 `mapstructure:"scroll_max_delta" toml:"scroll_max_delta" yaml:"scroll_max_delta"` //nolint:lll // struct tags exceed lll limit
133- ScrollTouchpadInertia bool `mapstructure:"scroll_touchpad_inertia" toml:"scroll_touchpad_inertia" yaml:"scroll_touchpad_inertia"` //nolint:lll // struct tags exceed lll limit133+ ScrollTouchpadInertia bool `mapstructure:"scroll_touchpad_inertia" toml:"scroll_touchpad_inertia" yaml:"scroll_touchpad_inertia"` //nolint:lll // struct tags exceed lll limit
134- ScrollWheelSmoothing bool `mapstructure:"scroll_wheel_smoothing" toml:"scroll_wheel_smoothing" yaml:"scroll_wheel_smoothing"` //nolint:lll // struct tags exceed lll limit134+ ScrollWheelSmoothing bool `mapstructure:"scroll_wheel_smoothing" toml:"scroll_wheel_smoothing" yaml:"scroll_wheel_smoothing"` //nolint:lll // struct tags exceed lll limit
135 TouchpadNavigationEnabled bool `mapstructure:"touchpad_navigation_enabled" toml:"touchpad_navigation_enabled" yaml:"touchpad_navigation_enabled"` //nolint:lll // struct tags exceed lll limit135 TouchpadNavigationEnabled bool `mapstructure:"touchpad_navigation_enabled" toml:"touchpad_navigation_enabled" yaml:"touchpad_navigation_enabled"` //nolint:lll // struct tags exceed lll limit
136 TouchpadNavigationMinDelta float64 `mapstructure:"touchpad_navigation_min_delta" toml:"touchpad_navigation_min_delta" yaml:"touchpad_navigation_min_delta"` //nolint:lll // struct tags exceed lll limit136 TouchpadNavigationMinDelta float64 `mapstructure:"touchpad_navigation_min_delta" toml:"touchpad_navigation_min_delta" yaml:"touchpad_navigation_min_delta"` //nolint:lll // struct tags exceed lll limit
137 TouchpadNavigationMaxVerticalRatio float64 `mapstructure:"touchpad_navigation_max_vertical_ratio" toml:"touchpad_navigation_max_vertical_ratio" yaml:"touchpad_navigation_max_vertical_ratio"` //nolint:lll // struct tags exceed lll limit137 TouchpadNavigationMaxVerticalRatio float64 `mapstructure:"touchpad_navigation_max_vertical_ratio" toml:"touchpad_navigation_max_vertical_ratio" yaml:"touchpad_navigation_max_vertical_ratio"` //nolint:lll // struct tags exceed lll limit
M internal/infrastructure/process/runtime_safety_test.go +1 -1
@@ -38,7 +38,7 @@ func TestMergeRuntimeSafety(t *testing.T) {
3838 for _, entry := range got {
3939 if strings.HasPrefix(entry, "GODEBUG=") {
4040 count++
41- }
41+ }
4242 }
4343 require.Equal(t, 1, count, "changed environ must hold exactly one GODEBUG entry")
4444 }
@@ -38,7 +38,7 @@ func TestMergeRuntimeSafety(t *testing.T) {
38 for _, entry := range got {38 for _, entry := range got {
39 if strings.HasPrefix(entry, "GODEBUG=") {39 if strings.HasPrefix(entry, "GODEBUG=") {
40 count++40 count++
41- }41+ }
42 }42 }
43 require.Equal(t, 1, count, "changed environ must hold exactly one GODEBUG entry")43 require.Equal(t, 1, count, "changed environ must hold exactly one GODEBUG entry")
44 }44 }
M internal/ui/systemviews/config_templ.go +110 -114 generated file: collapsed
M internal/ui/systemviews/favorites_templ.go +71 -83 generated file: collapsed

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 8

Tags 42

↑↓ moveenter openesc close