v0.26.0 ae3a77a

2026-01-24

ae3a77aMerge pull request #143 from bnema/next merge GPG Unverifiedtag v0.26.0bnema
8769977refactor: simplify color-picker by binding directly to value GPG Verifiedbrice
5c01908refactor: use Map registry for bridge callbacks with unique IDs and timeout GPG Verifiedbrice
200ec03fix: prevent mutex deadlock on panic in config watcher GPG Verifiedbrice
677e3c0refactor: simplify key capture switch statement GPG Verifiedbrice
026a7aefix: address Greptile review feedback GPG Verifiedbrice
381a26ddocs: prepare v0.26.0 release notes and update config docs GPG Verifiedbrice
3c04c30Merge pull request #142 from bnema/fix/localhost-downloads merge GPG Unverifiedbnema
8df2acdfix: address Copilot review feedback on localhost and download handling GPG Verifiedbrice
92eeb35fix: localhost URL normalization and download handler clean architecture refactor GPG Verifiedbrice
9e989c0Merge pull request #141 from bnema/feat/keybindings-ui-and-syntax merge GPG Unverifiedbnema
8dba5bffix: address Copilot review feedback on watcher and key capture modal GPG Verifiedbrice
1b74686docs(changelog): add config race condition fix and clean architecture refactor GPG Verifiedbrice
bf4fa07fix(webui): resolve ESLint warnings across Svelte components GPG Verifiedbrice
f328a4ffeat(webui): add TypeScript types and ESLint Svelte plugin GPG Verifiedbrice
11eef0crefactor(keybindings): wire use cases with gateway adapter following clean architecture GPG Verifiedbrice
61db896fix(config): prevent race condition with atomic write and skipNextReload flag GPG Verifiedbrice
1960dafrefactor(keybindings): address PR review feedback GPG Verifiedbrice
e36b143fix(config): resolve lint issues in writer and loader GPG Verifiedbrice
19525f0fix(config): use ordered writer in migrate command GPG Verifiedbrice
f21fa3ffeat(config): add ordered config file writer for deterministic output GPG Verifiedbrice
1ae6f9bfix(keybindings): add bridge serialization for Svelte 5 Proxies and conflict detection GPG Verifiedbrice
a2e8a81wip: legacy config migration and keybinding modal fix GPG Verifiedbnema
64e8895docs(changelog): add keybindings UI and breaking config change GPG Verifiedbnema
72661bcdocs(config): simplify keybinding syntax examples GPG Verifiedbnema
e6c3832feat(input): add hot reload for keyboard shortcuts GPG Verifiedbnema
7e934a8feat(webui): add keybindings editor UI in config page GPG Verifiedbnema
5d469a0feat(webkit): add keybindings IPC handlers GPG Verifiedbnema
e787fc1feat(usecase): add keybindings port types and use cases GPG Verifiedbnema
d701001refactor(config): use ActionBinding for all keybinding modes GPG Verifiedbnema
7ec6282Merge pull request #139 from bnema/fix/dark-background-bleeding merge GPG Unverifiedbnema
7a529ebfix(webview): reset background to white for external pages to prevent dark bleeding GPG Verifiedbrice
8ea382afix(omnibox): disable ghost text from history scroll when user has typed GPG Verifiedbrice
fdfddb8Merge pull request #133 from bnema/feat/omnibox-click-outside-hide merge GPG Unverifiedbnema
6686c9aMerge pull request #138 from bnema/fix/omnibox-ghost-text-alignment merge GPG Unverifiedbnema
603f4bafix(omnibox): clip ghost text to entry bounds and fix stale check race GPG Verifiedbrice
88b49b5fix(omnibox): pass query through chain to prevent ghost text race condition GPG Verifiedbrice
478ef93test(autocomplete): add tests and fix code duplication GPG Verifiedbrice

2026-01-23

18f9d2efix(omnibox): align ghost text vertically with entry text GPG Verifiedbnema
d16e2effeat(omnibox): hide on click outside bounds GPG Verifiedbnema
5195a15Merge pull request #132 from bnema/feat/omnibox-ghost-completion merge GPG Unverifiedbnema
1d6b2aarefactor(omnibox): simplify handleKeyPress with helper methods GPG Verifiedbrice
df1aa18feat(omnibox): add inline ghost text autocompletion GPG Verifiedbrice
c0865edMerge pull request #130 from bnema/fix/omnibox-domain-boost merge GPG Unverifiedbnema
27c9c62fix: handle FTS5 periods and prioritize selected omnibox results GPG Verifiedbrice
d079703fix: boost domain matches in omnibox search results GPG Verifiedbrice
c4c037aMerge pull request #128 from bnema/dependabot/github_actions/github-actions-21aeaa2777 merge GPG Unverifiedbnema
faa9d36chore(deps): bump the github-actions group with 2 updates GPG Unverifieddependabot[bot]
fe26fddMerge pull request #127 from bnema/chore/update-deps merge GPG Unverifiedbnema
a3f5ef4chore: update dependencies and add dependabot auto-merge GPG Verifiedbrice

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