v0.20.0 c741a39

2025-12-20

c7dc5f2feat(config-webui): add reset defaults button + /api/config/default brice
ee9c157fix(webui-theme): refresh injected scripts after appearance save brice

2025-12-18

5bd0e17feat(cli): replace media command with doctor and add runtime dependency checks brice
0639fb7feat(cli): add --filters flag to purge command for filter cache management brice
7505dfafeat(filtering): add downloader, store, and filter state types brice
ded032cchore(mocks): upgrade mockery to v3 format brice
eff419bfeat(cli): initialize content filtering in main application brice
5f7dbbbchore(config): add content filtering configuration brice
2708968feat(ui): apply filters to existing webviews and show filter status brice
8987eecfeat(webkit): apply content filters to webviews on creation and acquire brice
92431e4refactor(filtering): update manager to use interfaces instead of concrete types brice
a373232feat(filtering): add content filter interfaces and manager tests brice

2025-12-19

453cbd8docs(config): add Media configuration section with hardware decoding options brice

2025-12-18

46f04d2refactor(shortcuts): change ctrl+w to close pane instead of tab bnema
8de4070feat(search): add bang shortcut syntax for search engines bnema
d6a17f6fix(dmenu): display URLs and add PNG favicon support for rofi/fuzzel bnema
3011e5drefactor(favicon): move favicon handling to clean architecture bnema
c188211feat(cli): add about command with build info display bnema
151b026feat(cli): add setup commands for desktop integration bnema
3de22f5fix(logging): prevent CLI log leakage by disabling stderr output in CLI mode bnema
645dfb3fix(dmenu): use rofi/fuzzel info field for URL storage bnema
3a58730fix(cache): fetch favicon from DuckDuckGo when not cached on disk bnema
c46672edocs(readme,config): fix dmenu examples - fuzzel shows icons by default bnema
5087882docs(readme): update dmenu examples with favicon icon flags bnema
3145582feat(ui): add dmenu favicon support and use dumber browse command bnema
cc61e77fix(media): correct VA plugin package names in diagnostics hints bnema
1618c29feat(cli): add media diagnostics command and startup checks brice
39be2eafeat(media): add MediaDiagnostics port and CheckMediaUseCase brice
214a5d3fix(webkit): implement auto hardware decoding mode with software fallback to fix Twitch Error #4000 brice
94c2fc4fix(config): add media configuration schema and hardware decoding modes brice
40983c7feat(dmenu): integrate DmenuConfig into CLI command with formatting support brice
6bf5e05refactor(config): remove unused video acceleration and codec preference config brice
ef844derefactor(ui): use CSS variables for chart colors instead of hardcoded values brice
ccc1c3efeat(theme): inject CSS variables into WebUI pages for dynamic theming brice

2025-12-17

8a86ffffeat(clipboard): implement Ctrl+Shift+C shortcut to copy current URL brice
717efa6refactor(deps): integrate CopyURLUseCase into dependency injection brice
c4effaafeat(usecase): add CopyURLUseCase for clipboard operations brice
f7dbba0fix(ui): integrate toast notifications into pane view and fix progress bar issues brice
83a6fc8feat(ui): add toast notification system for user feedback brice
89a38fcfeat(clipboard): add adapter for Wayland/X11 clipboard support brice
e6ce1fefeat(omnibox): fix space key behavior and add 'y' to copy selected URL brice
36d1371feat(search): replace fuzzy search with SQLite FTS5 for accurate history matching brice
77a7a6drefactor(focus): extract stack navigation helpers with tests brice
6f9d17ffeat(layout): add position-aware InsertPaneAfter for stacked views brice
786d68afix(id-gen): use monotonic counter to prevent pane ID collisions brice
42ae348fix(pane-stacking): check parent stack before adding nested stacks brice
5740d12feat(app): integrate popup and middle-click handling into application coordinators brice
24f586cfeat(coordinator): implement popup handling with middle-click and window.open support brice
884f77afix(webkit): prevent SIGSEGV crash when closing popups by disconnecting signals brice

2025-12-18

8a8a4e5refactor(controller): remove redundant tab_controller.go in favor of enhanced TabCoordinator brice

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