detached 8d4361b

fix(gesture): log navigation errors at debug level

Back/forward navigation errors are expected when no history exists.
commit
8d4361b35406e2c9304a3b34814707e4ec247aaa
author
brice · · 2026-01-14 08:45 UTC
parent
38a0923
signature
GPG VerifiedCD88F9E564E0102646FB6077A1A07C7C7C3E349D · arch-gpg Verified for the committer email
1 file · +14 -5
M internal/ui/input/gesture.go +14 -5
@@ -107,11 +107,20 @@ func (h *GestureHandler) handlePressed(nPress int) {
107107 if handler != nil {
108108 if err := handler(h.ctx, action); err != nil {
109109 log := logging.FromContext(h.ctx)
110- log.Error().
111- Err(err).
112- Str("action", string(action)).
113- Uint("button", button).
114- Msg("gesture action handler error")
110+ // Navigation errors are expected (e.g., no back/forward history)
111+ if action == ActionGoBack || action == ActionGoForward {
112+ log.Debug().
113+ Err(err).
114+ Str("action", string(action)).
115+ Uint("button", button).
116+ Msg("gesture navigation not available")
117+ } else {
118+ log.Error().
119+ Err(err).
120+ Str("action", string(action)).
121+ Uint("button", button).
122+ Msg("gesture action handler error")
123+ }
115124 }
116125 }
117126 }
@@ -107,11 +107,20 @@ func (h *GestureHandler) handlePressed(nPress int) {
107 if handler != nil {107 if handler != nil {
108 if err := handler(h.ctx, action); err != nil {108 if err := handler(h.ctx, action); err != nil {
109 log := logging.FromContext(h.ctx)109 log := logging.FromContext(h.ctx)
110- log.Error().110+ // Navigation errors are expected (e.g., no back/forward history)
111- Err(err).111+ if action == ActionGoBack || action == ActionGoForward {
112- Str("action", string(action)).112+ log.Debug().
113- Uint("button", button).113+ Err(err).
114- Msg("gesture action handler error")114+ Str("action", string(action)).
115+ Uint("button", button).
116+ Msg("gesture navigation not available")
117+ } else {
118+ log.Error().
119+ Err(err).
120+ Str("action", string(action)).
121+ Uint("button", button).
122+ Msg("gesture action handler error")
123+ }
115 }124 }
116 }125 }
117 }126 }

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