detached c7808b4

docs: update session config and changelog for issues #26-29

commit
c7808b498b0b93e9fb4100dc004188b104f7c771
author
bnema · · 2025-12-25 19:01 UTC
parent
e056b3c
signature
GPG Unverified2B82207D370127A0 The key is unknown
2 files · +10 -8
M CHANGELOG.md +4 -2
@@ -5,6 +5,7 @@ All notable changes to this project will be documented in this file.
55 ## [Unreleased]
66
77 ### Added
8+- **Dynamic window title**: Window title now displays the active pane's page title in format `<Page Title> - Dumber`. Updates when switching tabs/panes or navigating. Truncated at 255 characters.
89 - **Auto-update system**: Automatic update checking and self-updating binary replacement following clean architecture.
910 - **Update check on startup**: Async check against GitHub releases API (configurable via `update.enable_on_startup`, default: true).
1011 - **Toast notifications**: Non-intrusive auto-dismiss notifications for update availability.
@@ -17,8 +18,9 @@ All notable changes to this project will be documented in this file.
1718 - **Session Manager modal**: Access via `Ctrl+O → s/w` or `Ctrl+Shift+S` to browse and restore sessions with inline preview of tabs and panes.
1819 - **Session mode**: New modal mode (`Ctrl+O`) with purple border indicator, similar to pane/tab modes.
1920 - **CLI session commands**: `dumber sessions` opens interactive TUI browser; `dumber sessions list` shows saved sessions; `dumber sessions restore <id>` resurrects a session in a new window; `dumber sessions delete <id>` removes a session.
20- - **Session purging**: Integrated into `dumber purge` command for cleaning up old session data.
21- - **Configuration options**: `session.auto_restore`, `session.snapshot_interval_ms`, `session.max_exited_sessions`, `session.max_listed_sessions`, plus session mode shortcuts and styling.
21+ - **Session purging**: Integrated into `dumber purge` command for cleaning up old session data. Simplified UI with single "Sessions" toggle instead of individual selection.
22+ - **Automatic session cleanup**: Sessions are automatically cleaned up on startup based on `max_exited_sessions` (default: 50) and `max_exited_session_age_days` (default: 7 days).
23+ - **Configuration options**: `session.auto_restore`, `session.snapshot_interval_ms`, `session.max_exited_sessions`, `session.max_exited_session_age_days`, plus session mode shortcuts and styling.
2224
2325 ### Fixed
2426 - **Alt/Ctrl+number shortcuts on non-QWERTY keyboards**: Fixed Alt+1-9/0 tab switching and Ctrl+1-9/0 omnibox shortcuts not working on AZERTY, QWERTZ, Dvorak, and other non-QWERTY keyboard layouts. Uses hardware keycodes as fallback when keyval lookup fails, enabling shortcuts to work based on physical key position regardless of layout.
@@ -5,6 +5,7 @@ All notable changes to this project will be documented in this file.
5 ## [Unreleased]5 ## [Unreleased]
6 6
7 ### Added7 ### Added
8+- **Dynamic window title**: Window title now displays the active pane's page title in format `<Page Title> - Dumber`. Updates when switching tabs/panes or navigating. Truncated at 255 characters.
8 - **Auto-update system**: Automatic update checking and self-updating binary replacement following clean architecture.9 - **Auto-update system**: Automatic update checking and self-updating binary replacement following clean architecture.
9 - **Update check on startup**: Async check against GitHub releases API (configurable via `update.enable_on_startup`, default: true).10 - **Update check on startup**: Async check against GitHub releases API (configurable via `update.enable_on_startup`, default: true).
10 - **Toast notifications**: Non-intrusive auto-dismiss notifications for update availability.11 - **Toast notifications**: Non-intrusive auto-dismiss notifications for update availability.
@@ -17,8 +18,9 @@ All notable changes to this project will be documented in this file.
17 - **Session Manager modal**: Access via `Ctrl+O → s/w` or `Ctrl+Shift+S` to browse and restore sessions with inline preview of tabs and panes.18 - **Session Manager modal**: Access via `Ctrl+O → s/w` or `Ctrl+Shift+S` to browse and restore sessions with inline preview of tabs and panes.
18 - **Session mode**: New modal mode (`Ctrl+O`) with purple border indicator, similar to pane/tab modes.19 - **Session mode**: New modal mode (`Ctrl+O`) with purple border indicator, similar to pane/tab modes.
19 - **CLI session commands**: `dumber sessions` opens interactive TUI browser; `dumber sessions list` shows saved sessions; `dumber sessions restore <id>` resurrects a session in a new window; `dumber sessions delete <id>` removes a session.20 - **CLI session commands**: `dumber sessions` opens interactive TUI browser; `dumber sessions list` shows saved sessions; `dumber sessions restore <id>` resurrects a session in a new window; `dumber sessions delete <id>` removes a session.
20- - **Session purging**: Integrated into `dumber purge` command for cleaning up old session data.21+ - **Session purging**: Integrated into `dumber purge` command for cleaning up old session data. Simplified UI with single "Sessions" toggle instead of individual selection.
21- - **Configuration options**: `session.auto_restore`, `session.snapshot_interval_ms`, `session.max_exited_sessions`, `session.max_listed_sessions`, plus session mode shortcuts and styling.22+ - **Automatic session cleanup**: Sessions are automatically cleaned up on startup based on `max_exited_sessions` (default: 50) and `max_exited_session_age_days` (default: 7 days).
23+ - **Configuration options**: `session.auto_restore`, `session.snapshot_interval_ms`, `session.max_exited_sessions`, `session.max_exited_session_age_days`, plus session mode shortcuts and styling.
22 24
23 ### Fixed25 ### Fixed
24 - **Alt/Ctrl+number shortcuts on non-QWERTY keyboards**: Fixed Alt+1-9/0 tab switching and Ctrl+1-9/0 omnibox shortcuts not working on AZERTY, QWERTZ, Dvorak, and other non-QWERTY keyboard layouts. Uses hardware keycodes as fallback when keyval lookup fails, enabling shortcuts to work based on physical key position regardless of layout.26 - **Alt/Ctrl+number shortcuts on non-QWERTY keyboards**: Fixed Alt+1-9/0 tab switching and Ctrl+1-9/0 omnibox shortcuts not working on AZERTY, QWERTZ, Dvorak, and other non-QWERTY keyboard layouts. Uses hardware keycodes as fallback when keyval lookup fails, enabling shortcuts to work based on physical key position regardless of layout.
M docs/CONFIG.md +6 -6
@@ -285,8 +285,8 @@ cancel = ["escape"]
285285 |-----|------|---------|-------------|
286286 | `session.auto_restore` | bool | `false` | Automatically restore the last session on startup |
287287 | `session.snapshot_interval_ms` | int | `5000` | Minimum interval between snapshots in milliseconds |
288-| `session.max_exited_sessions` | int | `10` | Maximum number of exited sessions to keep |
289-| `session.max_listed_sessions` | int | `50` | Maximum number of sessions to list in CLI/TUI |
288+| `session.max_exited_sessions` | int | `50` | Maximum number of exited sessions to keep |
289+| `session.max_exited_session_age_days` | int | `7` | Maximum age in days for exited sessions (auto-deleted on startup) |
290290
291291 ### Session Mode
292292
@@ -307,10 +307,10 @@ cancel = ["escape"]
307307 **Example:**
308308 ```toml
309309 [session]
310-auto_restore = false # Don't auto-restore on startup
311-snapshot_interval_ms = 5000 # Save state every 5 seconds (debounced)
312-max_exited_sessions = 10 # Keep last 10 exited sessions
313-max_listed_sessions = 50 # Show up to 50 sessions in CLI/TUI
310+auto_restore = false # Don't auto-restore on startup
311+snapshot_interval_ms = 5000 # Save state every 5 seconds (debounced)
312+max_exited_sessions = 50 # Keep last 50 exited sessions
313+max_exited_session_age_days = 7 # Delete sessions older than 7 days on startup
314314 ```
315315
316316 ## Media
@@ -285,8 +285,8 @@ cancel = ["escape"]
285 |-----|------|---------|-------------|285 |-----|------|---------|-------------|
286 | `session.auto_restore` | bool | `false` | Automatically restore the last session on startup |286 | `session.auto_restore` | bool | `false` | Automatically restore the last session on startup |
287 | `session.snapshot_interval_ms` | int | `5000` | Minimum interval between snapshots in milliseconds |287 | `session.snapshot_interval_ms` | int | `5000` | Minimum interval between snapshots in milliseconds |
288-| `session.max_exited_sessions` | int | `10` | Maximum number of exited sessions to keep |288+| `session.max_exited_sessions` | int | `50` | Maximum number of exited sessions to keep |
289-| `session.max_listed_sessions` | int | `50` | Maximum number of sessions to list in CLI/TUI |289+| `session.max_exited_session_age_days` | int | `7` | Maximum age in days for exited sessions (auto-deleted on startup) |
290 290
291 ### Session Mode291 ### Session Mode
292 292
@@ -307,10 +307,10 @@ cancel = ["escape"]
307 **Example:**307 **Example:**
308 ```toml308 ```toml
309 [session]309 [session]
310-auto_restore = false # Don't auto-restore on startup310+auto_restore = false # Don't auto-restore on startup
311-snapshot_interval_ms = 5000 # Save state every 5 seconds (debounced)311+snapshot_interval_ms = 5000 # Save state every 5 seconds (debounced)
312-max_exited_sessions = 10 # Keep last 10 exited sessions312+max_exited_sessions = 50 # Keep last 50 exited sessions
313-max_listed_sessions = 50 # Show up to 50 sessions in CLI/TUI313+max_exited_session_age_days = 7 # Delete sessions older than 7 days on startup
314 ```314 ```
315 315
316 ## Media316 ## Media

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