title: Move claudbg.db and claudbg.tui.history to ~/.claude/claudbg/
status: completed
type: task
priority: normal
created_at: 2026-04-01T16:47:11Z
updated_at: 2026-04-01T17:13:41Z
---
Move the claudbg.db database file and claudbg.tui.history filter history file from ~/.claude/ into a dedicated ~/.claude/claudbg/ subdirectory to reduce clutter in the ~/.claude/ root.
Moved default_db_path() from ~/.claude/claudbg.db to ~/.claude/claudbg/claudbg.db and history_file_path() from ~/.claude/claudbg.tui.history to ~/.claude/claudbg/claudbg.tui.history. Both functions already call create_dir_all on the parent so the new subdirectory is created automatically. Updated the default_db_path_suffix test to match the new path. All 297 tests pass.
title: 'TUI: cursor movement in filter/search bar (left/right arrow keys)'
status: completed
type: feature
priority: normal
created_at: 2026-04-01T16:47:09Z
updated_at: 2026-04-01T17:06:22Z
---
Support moving the cursor left and right within the Filter/Search bar text input so users can edit text in the middle of the input without having to delete everything first.
Added filter_cursor and search_cursor (byte-offset) fields to AppState. Updated handle_filter_input_event and handle_search_input_event to handle Left/Right (move one char), Home/End (jump to start/end), cursor-aware Backspace (delete char before cursor), and cursor-aware Char insertion (insert at cursor). Updated render_filter_bar and render_search_bar to split input at cursor and show a highlighted block cursor glyph at the correct mid-text position. Updated help modal to document the new bindings. 23 new tests added; all 297 pass.
Add filter field documentation to the help text shown in the TUI (e.g. '?' help modal). Users should be able to discover available filter fields and operators without reading source code.
Added wildcard (:*), AND/OR logic, and date format (YYYY-MM) entries to the Filter fields section of the help modal. Widened dialog from 36 to 40 cols to accommodate the new entries. All filter fields (model, project, id, agents, messages/msgs, in, out, tokens, date) are now documented with operators and notes.
title: 'TUI: Ctrl+C immediately quits without confirmation'
status: completed
type: feature
priority: normal
created_at: 2026-04-01T16:47:04Z
updated_at: 2026-04-01T16:59:41Z
---
Support Ctrl+C to immediately quit without confirmation. Currently quit requires a confirmation dialog; Ctrl+C should bypass this and exit immediately.
Added Ctrl+C handling at the top of handle_event in src/tui/run.rs, before any modal checks, so it sets should_quit=true immediately regardless of which dialog/screen is active. Updated help modal text (src/tui/modals/help_modal.rs) to document both 'q/Q quit (confirm)' and 'Ctrl+C quit immediately'. Added 3 tests: ctrl_c_quits_immediately, ctrl_c_quits_through_quit_dialog, ctrl_c_quits_through_help_modal.
title: 'TUI: truncate project path from start when it overflows (show end, not beginning)'
status: completed
type: bug
priority: normal
created_at: 2026-04-01T16:47:14Z
updated_at: 2026-04-01T16:57:08Z
---
In the TUI session list, when the project path is too long to fit in the column, the beginning is shown and the end is cut off. Instead, the end of the path should be shown (right-justified or left-truncated) since the unique/distinguishing part of the path is usually at the end.
Fixed left-truncation of project path in TUI session list. The truncate_project function already implemented correct left-truncation, but it was called with project_max+30 chars, causing ratatui to do right-clipping instead. Removed the +30 so truncate_project runs first and shows the end of the path (e.g. …/foo/bar).
title: 'Filter: accept ''msgs''/''messages'' as aliases for message count filter'
status: completed
type: bug
priority: normal
created_at: 2026-04-01T16:47:06Z
updated_at: 2026-04-01T16:51:12Z
---
For filtering, both 'msgs' and 'messages' should be accepted as field names when filtering on message count, since the UI displays the column as 'msgs'.
## Summary of Changes\n\nAdded 'messages' as alias for 'msgs' in filter field matching so both forms work for filtering by message count.
title: 'TUI: prevent transcript overflow into sub-agents panel; add Ctrl+L to redraw'
status: completed
type: bug
priority: normal
created_at: 2026-04-01T16:47:10Z
updated_at: 2026-04-01T16:55:12Z
---
Occasionally the Transcript widget overflows into the Sub-Agents panel, making the UI look broken. Prevent this overflow from happening. Also add a Ctrl+L keybinding to force a full screen redraw/reset to recover from any rendering artifacts.
Fixed transcript overflow by switching chat-log layout constraint from Constraint::Min(0) to Constraint::Fill(1), ensuring the panel never bleeds into the sub-agents column. Added Ctrl+L keybinding: the transcript event handler passes it through so the global handler sets state.needs_clear=true; the event loop calls terminal.clear() before the next draw. Updated help modal to document Ctrl+L.