v0.28.0 3cb3770

2026-03-27

3cb3770chore: add v0.28.0 changelog entry GPG Verifiedtag v0.28.0bnema
e2241c5refactor: use typed *glib.Error in signal callbacks (puregotk v0.2.2) GPG Verifiedbrice
26fd7deMerge pull request #206 from bnema/refactor/omnibox-ghostwriter merge GPG Unverifiedbnema
57a5850fix: reset selectedIndex on text change and fix lint errors GPG Verifiedbrice
cb47167refactor: remove redundant hasGhostText field and simplify ghost state GPG Verifiedbrice
7eb8e31fix: check actual GTK buffer to detect user edits in ghost text GPG Verifiedbrice
3a4e710fix: rewrite omnibox ghostwriter to eliminate letter-eating on fast typing GPG Verifiedbrice
459eca0Merge pull request #205 from bnema/fix/dynamic-filter-files merge GPG Unverifiedbnema
29bdfb1feat: add load-failed signal logging for content blocker debugging GPG Verifiedbrice
483aebefix: log FetchIdentifiers error in Clear method GPG Verifiedbrice
0d5633afix: compile filter parts separately to respect WebKit 150k rule limit GPG Verifiedbrice
0d670e0fix: use manifest to discover filter files instead of hardcoded list GPG Verifiedbrice
2d0c399chore(deps): bump the go-dependencies group across 1 directory with 2 updates (#203) GPG Unverifieddependabot[bot]
2158d6cMerge pull request #202 from bnema/feat/purego-sqlite merge GPG Unverifiedbnema
a5df340merge: resolve conflicts with main merge GPG Verifiedbrice
500c11ffix: remove local replace directive, use published purego-sqlite v0.1.1 GPG Verifiedbrice
a49291ffeat: replace ncruces/go-sqlite3 with purego-sqlite and switch to bnema/puregotk GPG Verifiedbrice

2026-03-25

467e6a6Merge pull request #198 from bnema/fix/permission-origin-and-dep-chain merge GPG Unverifiedbnema
a6de727fix: harden permission origin, metadata constants, and cookie policy default GPG Verifiedbnema
2aad925refactor: migrate from jwijenbergh to bnema/puregotk + ebitengine/purego GPG Verifiedbrice
f8e1820fix: align cookie policy default with Epiphany ITP model GPG Verifiedbrice
b3d3030feat: thread requesting_domain/current_domain to permission dialog GPG Verifiedbrice
784ca95fix: use page origin for website_data_access permission, not requesting domain GPG Verifiedbrice

2026-03-18

2f35bdfMerge pull request #193 from bnema/refactor/engine-abstraction merge GPG Unverifiedbnema
f19a207Merge branch 'main' into refactor/engine-abstraction merge GPG Unverifiedbnema
7fa0377Merge pull request #195 from bnema/dependabot/npm_and_yarn/webui/npm-dependencies-6759d0a582 merge GPG Unverifiedbnema
ae2666cMerge branch 'main' into dependabot/npm_and_yarn/webui/npm-dependencies-6759d0a582 merge GPG Unverifiedbnema
5b9fd74fix: address second round of code review findings GPG Verifiedbrice
4eef5c1fix: resolve all golangci-lint issues to zero GPG Verifiedbrice
49a10f0chore(deps): bump the go-dependencies group with 2 updates (#194) GPG Unverifieddependabot[bot]
1277283chore(deps-dev): bump the npm-dependencies group GPG Unverifieddependabot[bot]
f5762b8fix: address code review findings across engine abstraction GPG Verifiedbrice
2efed64fix: guard type assertion and use renderer for engine migration output GPG Verifiedbrice
dbd974erefactor(port): rename GTKEntryInputTarget and improve engine-neutral doc comments GPG Verifiedbrice
3d33f1drefactor(engine): remove stubbed SchemeHandler and MessageRouter from Engine interface GPG Verifiedbrice
9cd7713refactor(engine): remove dead Internal* bridge methods and clean port.Engine interface GPG Verifiedbrice
54ea5e7feat(engine): wire SettingsApplier and FilterApplier into content coordinator GPG Verifiedbrice
25cf728feat(config): wire MigrateToEngineConfig into 'dumber config migrate' CLI flow GPG Verifiedbrice
d051a8efix(config): correct migration command in error message to 'dumber config migrate' GPG Verifiedbrice
e98349cchore: regenerate mocks to add PrewarmAsync to MockWebViewPool GPG Verifiedbrice
ad1fde7refactor(config): reuse atomicWriteFile in engine migration GPG Verifiedbrice

2026-03-17

2b3891dfeat(permission): wire WebsiteDataAccessPermissionRequest through WebKit layer GPG Verifiedbrice
fcdcea4feat(permission): add website_data_access use case tests and update repo comment GPG Verifiedbrice
a1e4979feat(permission): add dialog text for website_data_access permission GPG Verifiedbrice
09f434afeat(permission): map website_data_access in coordinator callbacks GPG Verifiedbrice
9591200fix: restore async webview pool prewarming lost during engine abstraction GPG Verifiedbrice
1dcf50cfix: address CodeRabbit review findings GPG Verifiedbrice
3489869refactor(M7): decouple coordinators and UI subsystems from infrastructure GPG Verifiedbrice
115d8d0chore(M4): regenerate mocks and add engine seam tests GPG Verifiedbrice
10854a9refactor(M6): remove infrastructure imports from ui/app.go 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