From c2a4272585d81790af134f2010d279b857ab2fda Mon Sep 17 00:00:00 2001 From: Catherine Renelle <32781029+catrenelle@users.noreply.github.com> Date: Tue, 10 Feb 2026 23:51:52 -0500 Subject: [PATCH] Add floating AI chat panel with page context awareness Replace the standalone /chat page with a bottom-right floating widget available on every page. The panel sends page context with each message so the AI knows what the user is viewing. On the Transactions page, the full visible transaction list (with filters) is serialized into the context so the AI can answer questions about on-screen entries. Co-Authored-By: Claude Opus 4.6 --- frontend/src/components/chat/ChatPanel.vue | 361 ++++++++++++++++++ frontend/src/components/layout/AppLayout.vue | 15 +- frontend/src/composables/usePageContext.ts | 15 + frontend/src/router/index.ts | 2 - frontend/src/services/chat.ts | 2 +- .../views/transactions/TransactionsView.vue | 117 ++++-- src/Purrse.Api/Services/ChatService.cs | 10 + src/Purrse.Core/DTOs/ChatDtos.cs | 2 +- 8 files changed, 493 insertions(+), 31 deletions(-) create mode 100644 frontend/src/components/chat/ChatPanel.vue create mode 100644 frontend/src/composables/usePageContext.ts diff --git a/frontend/src/components/chat/ChatPanel.vue b/frontend/src/components/chat/ChatPanel.vue new file mode 100644 index 0000000..eb982df --- /dev/null +++ b/frontend/src/components/chat/ChatPanel.vue @@ -0,0 +1,361 @@ + + + + + diff --git a/frontend/src/components/layout/AppLayout.vue b/frontend/src/components/layout/AppLayout.vue index b54ae9f..fd7092c 100644 --- a/frontend/src/components/layout/AppLayout.vue +++ b/frontend/src/components/layout/AppLayout.vue @@ -23,6 +23,7 @@ :title="item.title" :to="item.route" :value="item.route" + :active="isNavActive(item.route)" rounded="xl" > {{ item.title }} @@ -116,6 +117,8 @@ + +