diff --git a/summary.md b/summary.md index c2dde61..24634ec 100644 --- a/summary.md +++ b/summary.md @@ -12,7 +12,7 @@ > Include file-level details in the commit body when the change is non-trivial. ## Last Updated -2026-03-03 — Duplicate entry prevention in LLM tool pipeline: exact-title block, fuzzy-title block (SequenceMatcher ≥82%), semantic content check (≥87% cosine similarity via existing `semantic_search_notes`); `create_project`/`create_milestone` require explicit `confirmed:true`; `create_note`/`create_task` have optional `confirmed` for content-similarity soft-block; `create_project`/`create_milestone` also protected by exact+fuzzy title checks +2026-03-04 — Keyboard navigation overhaul: `e` to edit on viewer pages; `/` to focus search bar (custom event dispatch); `c` to focus chat on home / navigate to chat elsewhere; `j`/`k` vim-style list navigation with visual highlight in Notes and Tasks flat views; `Enter` opens selected item; `a:focus-visible` CSS rule added so router-link cards show visible focus outlines; `SearchBar.vue` exposes `focus()` via `defineExpose`; shortcuts panel updated with Lists and Chat sections. Also in this session: Task cards route directly to edit view; TaskViewerView added sub-task list with progress bar and inline status cycling; NoteViewerView shows project/milestone/parent breadcrumb; Dashboard shows Active Projects in tasks column (2-per-row), 50/50 column layout, overflow fixed with `overflow-x: clip` + `min-width: 0` on all page containers. ## Project Overview Fabled Assistant is a self-hosted note-taking and task-tracking application with @@ -568,6 +568,17 @@ When adding a new migration, follow these conventions: - **Auto-focus:** Dashboard chat input gains focus on page mount. - **Keyboard shortcut — Escape in ChatView:** Cascade close: note picker → mobile sidebar → clear textarea → navigate to `/` home. - **Keyboard shortcuts overlay:** Press `?` or click `?` in nav bar. State shared via `useShortcuts` composable. +- **Global keyboard shortcuts (`App.vue`):** + - `g`+`h/n/t/p/c` — navigate to home / notes / tasks / projects / chat + - `n` — new note; `t` — new task + - `e` — jump to edit (on `note-view` or `task-view` route) + - `/` — focus search bar (dispatches `shortcut:focus-search`; list views listen + call `SearchBar.focus()`) + - `c` — focus chat input on home (dispatches `shortcut:focus-chat`); navigate to `/chat` elsewhere + - `j` / `k` — move selection down / up in flat note/task lists; `Enter` opens selected item + - `Escape` — progressive: close shortcuts panel → blur active input → navigate home + - All shortcuts suppressed when focus is in an input, textarea, or contenteditable + - `a:focus-visible` added to `theme.css` focus-ring ruleset so router-link cards show visible focus outlines + - `SearchBar.vue` exposes `focus()` via `defineExpose` for external focus dispatch ### LLM Chat - Ollama integration via async HTTP (httpx), default model `qwen3:latest` (`config.py` fallback); docker-compose default is `llama3.1` (override via `OLLAMA_MODEL` env var or user `default_model` setting); auto-pull on startup