feat(ui): enable TimelineDialog with full-text search across all message roles in one session (#1104)

* feat: register open_timeline_dialog shortcut (mod+t)

* feat: enhance TimelineDialog with full-text search across all roles

* feat: add open_timeline_dialog shortcut labels to all locales

* feat: wire TimelineDialog into ChatContainer

* fix: add setTimelineDialogOpen to hook dependency array

* fix: tighten timeline dialog interactions

---------

Co-authored-by: Bohdan Triapitsyn <artmore@protonmail.com>
This commit is contained in:
jwcrystal
2026-05-05 11:21:06 +03:00
committed by GitHub
co-authored by Bohdan Triapitsyn
parent 495b9d56d2
commit 63b4a5b996
18 changed files with 175 additions and 35 deletions
@@ -30,6 +30,7 @@ export const useKeyboardShortcuts = () => {
const setActiveMainTab = useUIStore((s) => s.setActiveMainTab);
const setSettingsDialogOpen = useUIStore((s) => s.setSettingsDialogOpen);
const setModelSelectorOpen = useUIStore((s) => s.setModelSelectorOpen);
const setTimelineDialogOpen = useUIStore((s) => s.setTimelineDialogOpen);
const toggleExpandedInput = useUIStore((s) => s.toggleExpandedInput);
const shortcutOverrides = useUIStore((s) => s.shortcutOverrides);
const { themeMode, setThemeMode } = useThemeSystem();
@@ -61,6 +62,12 @@ export const useKeyboardShortcuts = () => {
return;
}
if (eventMatchesShortcut(e, combo('open_timeline_dialog'))) {
e.preventDefault();
setTimelineDialogOpen(true);
return;
}
if (eventMatchesShortcut(e, combo('open_status'))) {
e.preventDefault();
void showOpenCodeStatus();
@@ -430,6 +437,7 @@ export const useKeyboardShortcuts = () => {
setActiveMainTab,
setSettingsDialogOpen,
setModelSelectorOpen,
setTimelineDialogOpen,
toggleExpandedInput,
setThemeMode,
working,