detached 381a26d

docs: prepare v0.26.0 release notes and update config docs

commit
381a26d892188b54d72f6d849843b8988f5f4af4
author
brice · · 2026-01-24 16:14 UTC
parent
3c04c30
signature
GPG VerifiedCD88F9E564E0102646FB6077A1A07C7C7C3E349D · arch-gpg Verified for the committer email
2 files · +16 -1
M CHANGELOG.md +15 -1
@@ -2,17 +2,23 @@
22
33 All notable changes to this project will be documented in this file.
44
5-## [Unreleased]
5+## [0.26.0] - 2026-01-24
66
77 ### Added
88 - **Visual keybindings editor**: New Keybindings tab in `dumb://config` allows editing all keyboard shortcuts via a visual UI. Supports key capture, reset to defaults, and per-binding reset. Fixes #123.
99 - **Keybindings hot reload**: Changed keybindings take effect immediately without restarting the browser.
1010 - **Ordered config file**: Config file sections are now written in alphabetical order for better readability and deterministic output.
11+- **Inline ghost text autocompletion**: Omnibox now shows inline ghost text suggestions from history as you type. Accept with Right Arrow (full) or Ctrl+Right (word). Properly aligned with entry text.
12+- **Omnibox click-outside-to-close**: Omnibox automatically closes when clicking outside its bounds.
13+- **GTK/WebKit log capture**: New `logging.capture_gtk_webkit_logs` config option to capture GTK and WebKit logs for debugging.
14+- **Startup performance tracing**: Added startup trace logging for cold start performance analysis and optimization.
1115
1216 ### Changed
1317 - **Simplified keybinding syntax**: Keybindings now use symbol syntax (`[`, `]`, `{`, `}`) instead of verbose GTK names (`bracketleft`, `braceleft`). Fixes #122.
1418 - **BREAKING: Global shortcuts config structure**: `workspace.shortcuts` changed from individual string fields to unified `Actions` map with `ActionBinding` (keys + description). Existing custom shortcuts in config.toml will be replaced with defaults. Use the new Keybindings UI to reconfigure.
1519 - **Keybindings clean architecture**: Refactored keybindings handler to follow ports/adapters pattern. Business logic moved from handler to use cases, config access via gateway adapter instead of global singleton.
20+- **Deferred startup initialization**: Non-critical initialization (WebView pool prewarm, etc.) now deferred until after first navigation starts for faster cold start.
21+- **Omnibox search ranking**: Improved domain matching boost and FTS5 period handling for better search result relevance.
1622
1723 ### Upgrade Notes
1824 > **Recommended**: Delete your `config.toml` and restart dumber to regenerate a fresh config with the new keybinding structure and alphabetically sorted sections. Your settings will reset to defaults, but you can reconfigure keybindings via the new visual editor at `dumb://config` → Keybindings tab.
@@ -23,6 +29,14 @@ All notable changes to this project will be documented in this file.
2329 - **Session snapshot FK constraint**: Fixed SQLite foreign key constraint violation when snapshot service tried to save before session was persisted to database. Added ready flag and callback notification pattern.
2430 - **Stacked pane index out of bounds**: Fixed crash when domain model and UI got out of sync during stacked pane operations. Added bounds checking and proper rollback when UI updates fail.
2531 - **Noisy gesture navigation logs**: Mouse button back/forward navigation errors (expected when no history) now log at debug level instead of error level.
32+- **Omnibox ghost text race conditions**: Fixed stale ghost text appearing due to race conditions. Query now passed through the entire autocomplete chain.
33+- **Omnibox ghost text clipping**: Ghost text now properly clips to entry bounds and aligns vertically with input text.
34+- **Ghost text on history scroll**: Disabled ghost text suggestions when scrolling through history with arrow keys after user has typed.
35+- **Popup WebView hierarchy**: Fixed popup WebViews not being inserted into GTK hierarchy before create signal returns.
36+- **OAuth popup timeout**: Added 30-second safety timeout for OAuth popup handling to prevent stuck popups.
37+- **External page background**: Reset WebView background to white for external pages to prevent dark theme color bleeding into light-themed sites.
38+- **Localhost URL normalization**: Fixed localhost URL handling and improved download handler architecture for cleaner code.
39+- **Svelte 5 Proxy serialization**: Fixed keybinding bridge serialization to handle Svelte 5 Proxies and added conflict detection.
2640
2741 ## [0.25.0] - 2026-01-08
2842
@@ -2,17 +2,23 @@
2 2
3 All notable changes to this project will be documented in this file.3 All notable changes to this project will be documented in this file.
4 4
5-## [Unreleased]5+## [0.26.0] - 2026-01-24
6 6
7 ### Added7 ### Added
8 - **Visual keybindings editor**: New Keybindings tab in `dumb://config` allows editing all keyboard shortcuts via a visual UI. Supports key capture, reset to defaults, and per-binding reset. Fixes #123.8 - **Visual keybindings editor**: New Keybindings tab in `dumb://config` allows editing all keyboard shortcuts via a visual UI. Supports key capture, reset to defaults, and per-binding reset. Fixes #123.
9 - **Keybindings hot reload**: Changed keybindings take effect immediately without restarting the browser.9 - **Keybindings hot reload**: Changed keybindings take effect immediately without restarting the browser.
10 - **Ordered config file**: Config file sections are now written in alphabetical order for better readability and deterministic output.10 - **Ordered config file**: Config file sections are now written in alphabetical order for better readability and deterministic output.
11+- **Inline ghost text autocompletion**: Omnibox now shows inline ghost text suggestions from history as you type. Accept with Right Arrow (full) or Ctrl+Right (word). Properly aligned with entry text.
12+- **Omnibox click-outside-to-close**: Omnibox automatically closes when clicking outside its bounds.
13+- **GTK/WebKit log capture**: New `logging.capture_gtk_webkit_logs` config option to capture GTK and WebKit logs for debugging.
14+- **Startup performance tracing**: Added startup trace logging for cold start performance analysis and optimization.
11 15
12 ### Changed16 ### Changed
13 - **Simplified keybinding syntax**: Keybindings now use symbol syntax (`[`, `]`, `{`, `}`) instead of verbose GTK names (`bracketleft`, `braceleft`). Fixes #122.17 - **Simplified keybinding syntax**: Keybindings now use symbol syntax (`[`, `]`, `{`, `}`) instead of verbose GTK names (`bracketleft`, `braceleft`). Fixes #122.
14 - **BREAKING: Global shortcuts config structure**: `workspace.shortcuts` changed from individual string fields to unified `Actions` map with `ActionBinding` (keys + description). Existing custom shortcuts in config.toml will be replaced with defaults. Use the new Keybindings UI to reconfigure.18 - **BREAKING: Global shortcuts config structure**: `workspace.shortcuts` changed from individual string fields to unified `Actions` map with `ActionBinding` (keys + description). Existing custom shortcuts in config.toml will be replaced with defaults. Use the new Keybindings UI to reconfigure.
15 - **Keybindings clean architecture**: Refactored keybindings handler to follow ports/adapters pattern. Business logic moved from handler to use cases, config access via gateway adapter instead of global singleton.19 - **Keybindings clean architecture**: Refactored keybindings handler to follow ports/adapters pattern. Business logic moved from handler to use cases, config access via gateway adapter instead of global singleton.
20+- **Deferred startup initialization**: Non-critical initialization (WebView pool prewarm, etc.) now deferred until after first navigation starts for faster cold start.
21+- **Omnibox search ranking**: Improved domain matching boost and FTS5 period handling for better search result relevance.
16 22
17 ### Upgrade Notes23 ### Upgrade Notes
18 > **Recommended**: Delete your `config.toml` and restart dumber to regenerate a fresh config with the new keybinding structure and alphabetically sorted sections. Your settings will reset to defaults, but you can reconfigure keybindings via the new visual editor at `dumb://config` → Keybindings tab.24 > **Recommended**: Delete your `config.toml` and restart dumber to regenerate a fresh config with the new keybinding structure and alphabetically sorted sections. Your settings will reset to defaults, but you can reconfigure keybindings via the new visual editor at `dumb://config` → Keybindings tab.
@@ -23,6 +29,14 @@ All notable changes to this project will be documented in this file.
23 - **Session snapshot FK constraint**: Fixed SQLite foreign key constraint violation when snapshot service tried to save before session was persisted to database. Added ready flag and callback notification pattern.29 - **Session snapshot FK constraint**: Fixed SQLite foreign key constraint violation when snapshot service tried to save before session was persisted to database. Added ready flag and callback notification pattern.
24 - **Stacked pane index out of bounds**: Fixed crash when domain model and UI got out of sync during stacked pane operations. Added bounds checking and proper rollback when UI updates fail.30 - **Stacked pane index out of bounds**: Fixed crash when domain model and UI got out of sync during stacked pane operations. Added bounds checking and proper rollback when UI updates fail.
25 - **Noisy gesture navigation logs**: Mouse button back/forward navigation errors (expected when no history) now log at debug level instead of error level.31 - **Noisy gesture navigation logs**: Mouse button back/forward navigation errors (expected when no history) now log at debug level instead of error level.
32+- **Omnibox ghost text race conditions**: Fixed stale ghost text appearing due to race conditions. Query now passed through the entire autocomplete chain.
33+- **Omnibox ghost text clipping**: Ghost text now properly clips to entry bounds and aligns vertically with input text.
34+- **Ghost text on history scroll**: Disabled ghost text suggestions when scrolling through history with arrow keys after user has typed.
35+- **Popup WebView hierarchy**: Fixed popup WebViews not being inserted into GTK hierarchy before create signal returns.
36+- **OAuth popup timeout**: Added 30-second safety timeout for OAuth popup handling to prevent stuck popups.
37+- **External page background**: Reset WebView background to white for external pages to prevent dark theme color bleeding into light-themed sites.
38+- **Localhost URL normalization**: Fixed localhost URL handling and improved download handler architecture for cleaner code.
39+- **Svelte 5 Proxy serialization**: Fixed keybinding bridge serialization to handle Svelte 5 Proxies and added conflict detection.
26 40
27 ## [0.25.0] - 2026-01-0841 ## [0.25.0] - 2026-01-08
28 42
M docs/CONFIG.md +1 -0
@@ -139,6 +139,7 @@ auto_open_on_new_pane = false
139139 | `logging.log_dir` | string | `~/.local/state/dumber/logs/` | any | Log directory |
140140 | `logging.enable_file_log` | bool | `true` | - | Enable file logging |
141141 | `logging.capture_console` | bool | `false` | - | Capture browser console to logs |
142+| `logging.capture_gtk_webkit_logs` | bool | `false` | - | Capture GTK and WebKit logs for debugging |
142143
143144 ## Appearance
144145
@@ -139,6 +139,7 @@ auto_open_on_new_pane = false
139 | `logging.log_dir` | string | `~/.local/state/dumber/logs/` | any | Log directory |139 | `logging.log_dir` | string | `~/.local/state/dumber/logs/` | any | Log directory |
140 | `logging.enable_file_log` | bool | `true` | - | Enable file logging |140 | `logging.enable_file_log` | bool | `true` | - | Enable file logging |
141 | `logging.capture_console` | bool | `false` | - | Capture browser console to logs |141 | `logging.capture_console` | bool | `false` | - | Capture browser console to logs |
142+| `logging.capture_gtk_webkit_logs` | bool | `false` | - | Capture GTK and WebKit logs for debugging |
142 143
143 ## Appearance144 ## Appearance
144 145

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