detached 3e97173

docs(changelog): document architectural migration and component improvements for v0.8.0

commit
3e9717319902519101ce401d7250f3970dccb674
author
bamen · · 2025-09-15 20:45 UTC
committer
bamen · · 2025-09-15 17:36 UTC
parent
89bee03
signature
unsigned
1 file · +13 -0
M CHANGELOG.md +13 -0
@@ -13,6 +13,8 @@ All notable changes to this project will be documented in this file.
1313 - **Page generator system**: Vite plugin for generating dumb:// protocol pages (homepage, config, about) with extensible architecture
1414 - **History deletion API**: New DELETE endpoint at `/history/delete?id=N` for removing individual history entries
1515 - **Lucide icons integration**: Professional SVG icons replacing emoji throughout the UI
16+- **Global Shadow DOM system**: Unified shadow host utility for component isolation with shared ShadowRoot and CSS reset management
17+- **Unified page-world bridge**: Integrated API bridge with event-driven communication between page-world and isolated-world contexts
1618
1719 ### Improved
1820 - **Omnibox/Find system**: Complete migration from 500-line raw JavaScript to modular Svelte 5 components
@@ -25,6 +27,14 @@ All notable changes to this project will be documented in this file.
2527 - **Top 5 most visited**: New section displaying frequently accessed sites with visit counts
2628 - **Performance**: Instant shortcut response with pre-mounted DOM elements
2729
30+### Changed
31+- **Major architecture shift**: Removed HTTP API routes in favor of direct WebKit message bridge communication for better performance and reduced complexity
32+- **API token support**: Added optional API security configuration with token-based authentication system
33+- **Shadow DOM improvements**: Enhanced isolation with WeakSet tracking to prevent duplicate reset injection and global shadow host utility for component sharing
34+- **Message handler refactoring**: Unified keyboard shortcut forwarding between native handlers and GUI components with DOM event bridge
35+- **Omnibox suggestions**: Native Go-based suggestion computation with search shortcuts and history integration, eliminating HTTP fetch dependencies
36+- **Toast styling**: Migrated from Tailwind CSS classes to inline styles within component scope for better Shadow DOM compatibility and isolation
37+
2838 ### Fixed
2939 - **Ctrl+F shortcut**: Added missing 'f' key case in keyboard_cgo.go dispatcher
3040 - **Browser freeze**: Removed infinite loop in mode switching reactive effects
@@ -33,6 +43,9 @@ All notable changes to this project will be documented in this file.
3343 - **Omnibox positioning on homepage**: Fixed omnibox stuck in top-left corner by isolating homepage CSS styles and strengthening omnibox positioning with explicit fixed positioning and CSS isolation
3444 - **Find mode persistence**: Fixed find view persisting after pressing Esc when reopening with Ctrl+L by ensuring toggle() resets mode to 'omnibox'
3545 - **Favicon display**: Fixed missing favicons in homepage history after Svelte 5 migration by adding FaviconURL field to API response and implementing proper fallback display logic
46+- **Homepage API communication**: Migrated from HTTP fetch to WebKit message bridge for all homepage API calls (history, stats, search) with proper callback handling and timeout management
47+- **Omnibox accessibility**: Added keyboard navigation support with Tab/Enter activation for suggestion items and proper ARIA attributes for screen readers
48+- **Omnibox suggestions race conditions**: Fixed timing issues where suggestions arrived before API was ready by implementing pending suggestions queue and proper event bridging between page-world and isolated-world contexts
3649
3750 ## [0.7.0] - 2025-09-14
3851
@@ -13,6 +13,8 @@ All notable changes to this project will be documented in this file.
13 - **Page generator system**: Vite plugin for generating dumb:// protocol pages (homepage, config, about) with extensible architecture13 - **Page generator system**: Vite plugin for generating dumb:// protocol pages (homepage, config, about) with extensible architecture
14 - **History deletion API**: New DELETE endpoint at `/history/delete?id=N` for removing individual history entries14 - **History deletion API**: New DELETE endpoint at `/history/delete?id=N` for removing individual history entries
15 - **Lucide icons integration**: Professional SVG icons replacing emoji throughout the UI15 - **Lucide icons integration**: Professional SVG icons replacing emoji throughout the UI
16+- **Global Shadow DOM system**: Unified shadow host utility for component isolation with shared ShadowRoot and CSS reset management
17+- **Unified page-world bridge**: Integrated API bridge with event-driven communication between page-world and isolated-world contexts
16 18
17 ### Improved19 ### Improved
18 - **Omnibox/Find system**: Complete migration from 500-line raw JavaScript to modular Svelte 5 components20 - **Omnibox/Find system**: Complete migration from 500-line raw JavaScript to modular Svelte 5 components
@@ -25,6 +27,14 @@ All notable changes to this project will be documented in this file.
25 - **Top 5 most visited**: New section displaying frequently accessed sites with visit counts27 - **Top 5 most visited**: New section displaying frequently accessed sites with visit counts
26 - **Performance**: Instant shortcut response with pre-mounted DOM elements28 - **Performance**: Instant shortcut response with pre-mounted DOM elements
27 29
30+### Changed
31+- **Major architecture shift**: Removed HTTP API routes in favor of direct WebKit message bridge communication for better performance and reduced complexity
32+- **API token support**: Added optional API security configuration with token-based authentication system
33+- **Shadow DOM improvements**: Enhanced isolation with WeakSet tracking to prevent duplicate reset injection and global shadow host utility for component sharing
34+- **Message handler refactoring**: Unified keyboard shortcut forwarding between native handlers and GUI components with DOM event bridge
35+- **Omnibox suggestions**: Native Go-based suggestion computation with search shortcuts and history integration, eliminating HTTP fetch dependencies
36+- **Toast styling**: Migrated from Tailwind CSS classes to inline styles within component scope for better Shadow DOM compatibility and isolation
37+
28 ### Fixed38 ### Fixed
29 - **Ctrl+F shortcut**: Added missing 'f' key case in keyboard_cgo.go dispatcher39 - **Ctrl+F shortcut**: Added missing 'f' key case in keyboard_cgo.go dispatcher
30 - **Browser freeze**: Removed infinite loop in mode switching reactive effects40 - **Browser freeze**: Removed infinite loop in mode switching reactive effects
@@ -33,6 +43,9 @@ All notable changes to this project will be documented in this file.
33 - **Omnibox positioning on homepage**: Fixed omnibox stuck in top-left corner by isolating homepage CSS styles and strengthening omnibox positioning with explicit fixed positioning and CSS isolation43 - **Omnibox positioning on homepage**: Fixed omnibox stuck in top-left corner by isolating homepage CSS styles and strengthening omnibox positioning with explicit fixed positioning and CSS isolation
34 - **Find mode persistence**: Fixed find view persisting after pressing Esc when reopening with Ctrl+L by ensuring toggle() resets mode to 'omnibox'44 - **Find mode persistence**: Fixed find view persisting after pressing Esc when reopening with Ctrl+L by ensuring toggle() resets mode to 'omnibox'
35 - **Favicon display**: Fixed missing favicons in homepage history after Svelte 5 migration by adding FaviconURL field to API response and implementing proper fallback display logic45 - **Favicon display**: Fixed missing favicons in homepage history after Svelte 5 migration by adding FaviconURL field to API response and implementing proper fallback display logic
46+- **Homepage API communication**: Migrated from HTTP fetch to WebKit message bridge for all homepage API calls (history, stats, search) with proper callback handling and timeout management
47+- **Omnibox accessibility**: Added keyboard navigation support with Tab/Enter activation for suggestion items and proper ARIA attributes for screen readers
48+- **Omnibox suggestions race conditions**: Fixed timing issues where suggestions arrived before API was ready by implementing pending suggestions queue and proper event bridging between page-world and isolated-world contexts
36 49
37 ## [0.7.0] - 2025-09-1450 ## [0.7.0] - 2025-09-14
38 51

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