Update summary.md for Phase 16

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-22 22:31:54 -05:00
parent 18fc6280a2
commit f76266fa56
+17 -21
View File
@@ -12,7 +12,7 @@
> Include file-level details in the commit body when the change is non-trivial.
## Last Updated
2026-02-22 — Phase 15: Production deployment hardening (proxy headers, secure cookies, IP in audit logs)
2026-02-22 — Phase 16: Dashboard redesign (chat-first, two-column task/notes grid)
## Project Overview
Fabled Assistant is a self-hosted note-taking and task-tracking application with
@@ -336,7 +336,7 @@ fabledassistant/
│ │ ├── RegisterInviteView.vue # Invitation-based registration: validates token, creates account with pre-set email
│ │ ├── UserManagementView.vue # Admin user management: registration toggle, invitations (send/revoke), user list with delete
│ │ ├── ChatView.vue # Dedicated /chat page: responsive sidebar (overlay on mobile), bubble messages, note picker, persistent context sidebar (right panel, hidden mobile), model selector in header
│ │ ├── HomeView.vue # Actionable dashboard: overdue, due today, due this week, high priority, in progress tasks; recent chats with inline chat input; recently edited notes; model warming on mount
│ │ ├── HomeView.vue # Chat-first dashboard: quick actions + chat widget (top, full-width), inline response panel, two-column grid (3fr tasks / 2fr notes); task sections: Overdue, Due Today, Due This Week, High Priority, In Progress, Other (capped 10, due-dated first); 8 recent notes; model warming on mount
│ │ ├── SettingsView.vue # Settings page: assistant name, model catalog, data export/restore (admin)
│ │ ├── NotesListView.vue # Note list: search, sort, tag filter pills, pagination
│ │ ├── NoteEditorView.vue # Create/edit: Tiptap editor, sticky toolbar, AI Assist panel (right-side 320px, collapsible), line-level diff view, Proofread action, floating inline ✨ pill on text selection, LLM tag suggestions, Ctrl+S, auto-save (5min), unsaved guard; styles from editor-shared.css
@@ -532,25 +532,21 @@ When adding a new migration, follow these conventions:
- Search (ILIKE), sort, tag filter pills, pagination on list views
### Dashboard
- Actionable home page with 5 task sections: Overdue, Due Today, Due This Week, High Priority, In Progress
- Priority-aware sorting (priority desc → due date asc) within each section
- Cascading deduplication — tasks appear only in their highest-priority section
- `due_before`/`due_after` query params on `/api/tasks` for date-range filtering
- Recent chats and recently edited notes sections
- All task sections hidden when empty; marking done removes from all lists
- **Inline chat widget:** Submitting a message streams the response inline on the dashboard — no
navigation to `/chat`. Streaming tool calls shown live; final response captured from store after SSE.
- **Quick action chips:** Pre-defined prompts above the chat input for common queries.
- **Conversational detection (Option A):** When the response has no tool calls (pure text), the
"Continue in Chat" link becomes a prominent filled button labeled "Continue this conversation →",
signalling that the inline response is just a snippet of a longer exchange.
- **Auto-focus:** Dashboard chat input gains focus on page mount (via `defineExpose({ focus })` on
`DashboardChatInput` and a template ref in `HomeView`).
- **Keyboard shortcut — Escape in ChatView:** Cascade close: note picker → mobile sidebar → clear
textarea if non-empty → navigate to `/` home.
- **Keyboard shortcuts overlay:** Press `?` (when not in a text input) or click the `?` button in
the nav bar to open a panel listing all shortcuts. Escape or click-outside closes it. State shared
via `useShortcuts` composable (`frontend/src/composables/useShortcuts.ts`).
- **Chat-first layout:** Quick action chips + chat input at top (full width); no page title.
Inline streaming response (full width) appears between widget and content grid when active.
- **Two-column grid:** Tasks left (3fr) / Recent Notes right (2fr); collapses to single column on mobile. Max-width 1400px.
- **Left column — 6 task sections** in urgency order, all cascading-deduplicated:
Overdue (red border), Due Today, Due This Week, High Priority (amber border), In Progress, Other (capped at 10).
"Other" = broad fetch of all non-done tasks deduped against shown sections; due-dated items first (asc), then undated by priority desc.
- **Right column** — 8 most recently edited notes.
- Priority-aware sorting (priority desc → due date asc) within each section.
- All sections hidden when empty; marking a task done removes it from all lists.
- **Inline chat:** Streams response inline — no navigation to `/chat`. Tool calls shown live.
Conversational (no tool calls) response promotes "Continue this conversation →" button.
- **Quick action chips:** Pre-defined prompts above the chat input.
- **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.
### LLM Chat
- Ollama integration via async HTTP (httpx), default model qwen3 (better tool support than mistral), auto-pull on startup