v0.3.0 d226234

2025-09-10

d226234chore(release): release v0.3.0 tag v0.3.0bamen

2025-09-09

fe50633docs(readme): add comprehensive controls section and update install instructions bamen
cf590d6style(logo): refine visual appearance with darker gradient and larger elements bamen
51e7b4dbuild(makefile): make gui build default and reorganize targets bamen
bab08aadocs: add creative SVG logo under assets/ and display it prominently in README (256px) bamen
76aa55bfavicon(homepage): move SVG to frontend build (dist/favicon.svg) and serve via scheme; remove hardcoded SVG from main.go; map favicon.ico -> favicon.svg bamen
e337302omnibox: render favicon inside 20x20 circular wrapper chip (match homepage); prevents stretching and ensures consistent round shape bamen
c6e3d36homepage: add creative SVG favicon (inline data URL) — stylized D with speed bolt on dark rounded card; link rel=icon in head bamen
d3c3c1dhomepage: ensure perfect circular favicon via wrapper chip (20x20) and center 16px icon; align history row center to avoid distortion bamen
c914750homepage: show favicons in Recent History list (circular #ccc chip, 16px icon); compute /favicon.ico from entry URL; hide on error bamen
a863db8omnibox: switch favicon chip to circular with #ccc background; tuned border/shadow; slight brightness/contrast for dark icons bamen
c9efd76omnibox: make favicons readable on dark overlay (light chip background, subtle border/shadow, slight brightness/contrast boost); keeps transparency for non-square icons bamen
66e5fc8omnibox: apply same fade+blur logic when navigating suggestion results (arrow/hover); always restore on input typing/focus bamen
32dec1eomnibox (Ctrl+L): redesign suggestion row to favicon + Domain | full path (single-line with gradient fade); remove 50/50 split; retain hover select and click navigate bamen
42da155changelog: document omnibox refactor + enhanced find-in-page UX (orange active match, list scroll, fade+blur, click-outside, hover focus/select, Alt+Enter, API methods) under Unreleased bamen
157c30cfind: show active match in orange (.dumber-find-active) and manage active class on selection changes; resets on clear bamen
8ab9109find/omnibox: add subtle blur in faded mode via (webkit)backdrop-filter on box; clear filters when unfading bamen
2de1562find/omnibox: fully restore opacity when typing or refocusing input; also on input click/mousedown and root hover bamen
d5a4babomnibox: close overlay when clicking outside the box (capture phase); stop propagation from box to avoid accidental closes bamen
9de5dcafind/omnibox: prevent page scroll while overlay visible; ensure list scrolls on arrow nav; fade overlay when navigating matches; unfade on input focus; stopPropagation on arrows bamen
87979c4find: add ; and : as right-context boundaries; Alt+Enter centers match without closing overlay (Shift+Enter previous) bamen
d736c5domnibox/find UX: focus + select input on hover; hover selects list items (omnibox and find) for quicker navigation bamen
8610746find: Enter focuses selected match (centered) and closes overlay; clicking a match also closes; right-side context stops at nearest punctuation (, . -) to avoid awkward truncation bamen
6f48527build: avoid undefined symbol by referencing omnibox script via getter; add ucm_js_access.go and use getOmniboxScript() from cgo file bamen
930ae39shortcuts: de-duplicate Ctrl/Cmd+F registration (keep WebKit layer); main.go no longer registers find shortcut bamen
11acb64fix(build): make ucmOmniboxScript available to all builds (remove build tag) so cgo file can reference it; resolves undefined symbol bamen
386dfa2find: add Ctrl/Cmd+F find-in-page using omnibox component; native accelerator + JS capture; yellow highlights and match list; update changelog bamen
35b90d4gitignore: ignore local Go caches; remove accidental cache artifacts from repo bamen
e726e59omnibox: refactor into reusable component; add find-in-page mode with Ctrl/Cmd+F, yellow highlights, match list; expose WebView.OpenFind/FindQuery/CloseFind; inject shared script via UCM bamen
1ef46d7Merge feature: 005-webkit-memory-optimization (opt-in memory controls, CGO hardening, performance-first defaults) merge bamen
088dfc8changelog: document WebKit memory optimization (opt-in), CGO hardening, and performance-first defaults under Unreleased bamen
aedb969webkit: opt-in memory optimization with performance-first defaults; harden CGO wrappers; remove deprecated offline cache APIs; add env-based memory controls; update specs and tests bamen
eea4870docs(changelog): add Unreleased with UI, shortcuts, input, zoom and build fixes bamen
53671bcchore(build): load .env.local and allow overriding Go caches (GOMODCACHE/GOCACHE/GOTMPDIR) bamen
2322eddfix(zoom): persist per-domain on change and log load/save\n\n- Add zoom-changed handler and dispatch from SetZoom\n- Save zoom to SQLite per domain on every change; log success\n- Load and log zoom on navigation and initial startup\n- Expose ZoomKeyForLog for consistent log formatting bamen
0e75579fix(input): reliable accelerators + mouse back/forward + alt nav + ctrl-scroll\n\n- Capture-phase key controller for Ctrl±/0 consistency\n- Only consume mouse side buttons 8/9; preserve left/right clicks\n- Add Alt+ArrowLeft/Right navigation and two-finger swipe gesture enablement\n- Add Ctrl+scroll zoom; fix accelerator matching for punctuation (cmdorctrl- and cmdorctrl+=)\n- Remove layout-specific hacks; add raw minus diagnostics bamen
606e951fix(shortcuts): align backend JSON and placeholder handling\n\n- Add json tags to SearchShortcut (url, description)\n- Frontend normalizes field case and supports %s/{query} templates\n- Parser URL-encodes query and supports %s in templates bamen

2025-09-10

c0744dafeat(ui): homepage Recent History single-line layout with gradient truncation\n\n- Display as {Title} – {Domain} – {URL}\n- Prevent horizontal overflow and darken URL color\n- Ensure flex children shrink (min-width:0) and container max-widths bamen
d9a1d3bdocs(changelog): add v0.1.0 section summarizing initial init + WebKit2GTK phase; keep v0.2.0 for WebKitGTK 6 (GTK4) migration Brice

2025-09-09

8b99975Merge: 004-migrate-to-webkitgtk (WebKitGTK 6 migration, UCM, cookies/cache, theme sync, rendering mode) merge Brice
85e3d05feat(webkitgtk6): migrate to WebKitGTK 6 (GTK4), finalize UCM, add native zoom + GTK4 input, persistent cookies/cache via NetworkSession; runtime theme sync; rendering-mode flag and status API; media safe defaults; update README and CLAUDE; remove JS fallback bridge Brice
7e4d1cbdocs: add Go install, Wayland-first note, early-stage status, and roadmap; add LICENSE bamen
458970bgitignore: ignore tmp/ directory bamen
c211c6emerge: integrate WebKit2GTK migration and homepage API into main merge bamen
0389298feat(webkit): migrate to native WebKit2GTK backend, add dumb:// scheme + /api, UCM omnibox, persistent storage, theme + fonts; drop Wails runtime; debounce accelerators; homepage uses first‑party API; persist titles; per-domain zoom\n\n- Native WebKit2GTK CGO bindings (webview/window/zoom/script/keyboard)\n- Persistent WebsiteDataManager + cookies.sqlite; custom dumb:// scheme\n- dumb://api endpoints: /config, /history/recent, /history/search, /history/stats\n- Inject omnibox + theme at document-start via UserContentManager\n- Keyboard/mouse controls: zoom in/out/reset, F12, mouse 8/9 back/forward\n- Debounce accelerators to avoid duplicate triggers\n- Homepage switched to /api fetches; removed @wailsio/runtime + bindings\n- Configurable default fonts (Fira Sans/Code) + default size\n- Persist page titles; homepage shows title or host fallback\n- Per-domain zoom, reapplied on navigation; URI tracking\n- Added detailed scheme/API logs; fixed asset resolution for dumb://homepage\n- Updated specs to mark T020, T025, T041 complete bamen
1dfcc1bfeat(browser): implement global keyboard controls with script injection bamen

2025-09-08

780aff1Merge branch '001-init-project' merge bamen

2025-09-09

c1e4d71Initial commit from Specify template bamen

2025-09-08

f83599bfeat(wails): integrate Wails v3-alpha browser with unified CLI+GUI architecture bamen
f17cf68feat(core): implement complete dumb browser CLI with fuzzy search and learning behavior bamen

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