docs(changelog): add backend pane mode and GUI refactoring entries
- commit
- 8b68c9eeae9a726d9ccf19e72f5353cced19a0ed
- author
- bamen · · 2025-10-13 16:55 UTC
- committer
- bamen · · 2025-10-13 20:14 UTC
- parent
- 353ffbf
- signature
- unsigned
1 file · +6 -0
M CHANGELOG.md +6 -0
| @@ -10,9 +10,13 @@ All notable changes to this project will be documented in this file. | |||
| 10 | 10 | - `dumber config` command to open config file in $VISUAL/$EDITOR or print path with `--path` | |
| 11 | 11 | - **Native WebKit popup lifecycle**: Implemented WebKit's create/ready-to-show/close signals for proper popup management, eliminating manual WebView creation that bypassed WebKit's internal architecture | |
| 12 | 12 | - **Popup behavior configuration**: Added `popup_behavior` config with four modes: `split` (default), `stacked`, `tabbed`, and `windowed` for user control over popup placement | |
| 13 | + | - **Backend-driven pane mode**: Complete rewrite of pane mode from JavaScript to Go backend with native keyboard handling. Ctrl+P enters mode, x/l/r/d/u/arrows for actions, Escape exits. Blocks all other keys during mode. | |
| 14 | + | - **Pane mode visual feedback**: Zellij-style orange border around workspace root when pane mode is active | |
| 13 | 15 | ||
| 14 | 16 | ### Changed | |
| 15 | 17 | - **Popup architecture refactoring**: Removed ~280 lines of JavaScript window.open interception in favor of WebKit's native popup signals. Popups now follow WebKitGTK's expected lifecycle instead of being intercepted and manually created | |
| 18 | + | - **GUI bootstrap refactoring**: Extracted 400+ lines of common initialization logic into reusable bootstrap.ts module shared between injected pages and special schemes (homepage, etc.) | |
| 19 | + | - **Workspace pane mode**: Moved ~450 lines of JavaScript state machine to Go backend for more reliable keyboard handling and eliminated race conditions between webviews | |
| 16 | 20 | ||
| 17 | 21 | ### Fixed | |
| 18 | 22 | - Enabled missing WebKitGTK6 features: WebRTC, MediaSource, LocalStorage, WebAudio, MediaStream, Clipboard | |
| @@ -21,6 +25,8 @@ All notable changes to this project will be documented in this file. | |||
| 21 | 25 | - Config not reading newly created default config file | |
| 22 | 26 | - Config writing to disk on every load/reload | |
| 23 | 27 | - **Popup SIGSEGV crashes**: Eliminated segmentation violations during popup lifecycle by respecting WebKit's signal-based popup management. Fixes OAuth popup crashes and GTK bloom filter corruption | |
| 28 | + | - **GTK focus event duplicates**: Added timestamp-based deduplication to prevent multiple focus enter/leave events in the same millisecond from WebKitGTK nested widgets | |
| 29 | + | - **Popup close behavior**: Fixed app exit when closing popups by excluding them from remaining pane count check | |
| 24 | 30 | ||
| 25 | 31 | ## [0.11.0] - 2025-10-07 | |
| 26 | 32 | ||
| @@ -10,9 +10,13 @@ All notable changes to this project will be documented in this file. | |||||
| 10 | - `dumber config` command to open config file in $VISUAL/$EDITOR or print path with `--path` | 10 | - `dumber config` command to open config file in $VISUAL/$EDITOR or print path with `--path` | ||
| 11 | - **Native WebKit popup lifecycle**: Implemented WebKit's create/ready-to-show/close signals for proper popup management, eliminating manual WebView creation that bypassed WebKit's internal architecture | 11 | - **Native WebKit popup lifecycle**: Implemented WebKit's create/ready-to-show/close signals for proper popup management, eliminating manual WebView creation that bypassed WebKit's internal architecture | ||
| 12 | - **Popup behavior configuration**: Added `popup_behavior` config with four modes: `split` (default), `stacked`, `tabbed`, and `windowed` for user control over popup placement | 12 | - **Popup behavior configuration**: Added `popup_behavior` config with four modes: `split` (default), `stacked`, `tabbed`, and `windowed` for user control over popup placement | ||
| 13 | + | - **Backend-driven pane mode**: Complete rewrite of pane mode from JavaScript to Go backend with native keyboard handling. Ctrl+P enters mode, x/l/r/d/u/arrows for actions, Escape exits. Blocks all other keys during mode. | |||
| 14 | + | - **Pane mode visual feedback**: Zellij-style orange border around workspace root when pane mode is active | |||
| 13 | 15 | ||||
| 14 | ### Changed | 16 | ### Changed | ||
| 15 | - **Popup architecture refactoring**: Removed ~280 lines of JavaScript window.open interception in favor of WebKit's native popup signals. Popups now follow WebKitGTK's expected lifecycle instead of being intercepted and manually created | 17 | - **Popup architecture refactoring**: Removed ~280 lines of JavaScript window.open interception in favor of WebKit's native popup signals. Popups now follow WebKitGTK's expected lifecycle instead of being intercepted and manually created | ||
| 18 | + | - **GUI bootstrap refactoring**: Extracted 400+ lines of common initialization logic into reusable bootstrap.ts module shared between injected pages and special schemes (homepage, etc.) | |||
| 19 | + | - **Workspace pane mode**: Moved ~450 lines of JavaScript state machine to Go backend for more reliable keyboard handling and eliminated race conditions between webviews | |||
| 16 | 20 | ||||
| 17 | ### Fixed | 21 | ### Fixed | ||
| 18 | - Enabled missing WebKitGTK6 features: WebRTC, MediaSource, LocalStorage, WebAudio, MediaStream, Clipboard | 22 | - Enabled missing WebKitGTK6 features: WebRTC, MediaSource, LocalStorage, WebAudio, MediaStream, Clipboard | ||
| @@ -21,6 +25,8 @@ All notable changes to this project will be documented in this file. | |||||
| 21 | - Config not reading newly created default config file | 25 | - Config not reading newly created default config file | ||
| 22 | - Config writing to disk on every load/reload | 26 | - Config writing to disk on every load/reload | ||
| 23 | - **Popup SIGSEGV crashes**: Eliminated segmentation violations during popup lifecycle by respecting WebKit's signal-based popup management. Fixes OAuth popup crashes and GTK bloom filter corruption | 27 | - **Popup SIGSEGV crashes**: Eliminated segmentation violations during popup lifecycle by respecting WebKit's signal-based popup management. Fixes OAuth popup crashes and GTK bloom filter corruption | ||
| 28 | + | - **GTK focus event duplicates**: Added timestamp-based deduplication to prevent multiple focus enter/leave events in the same millisecond from WebKitGTK nested widgets | |||
| 29 | + | - **Popup close behavior**: Fixed app exit when closing popups by excluding them from remaining pane count check | |||
| 24 | 30 | ||||
| 25 | ## [0.11.0] - 2025-10-07 | 31 | ## [0.11.0] - 2025-10-07 | ||
| 26 | 32 | ||||