FN-8562: add tags to chat conversations
Enable project-scoped reusable tags for Direct chat sessions.
- Add tag storage, migrations, and scoped assignment APIs.
- Add chat sidebar tag creation, assignment, and filtering controls.
- Document tag behavior and cover schema and chat interactions.
- Establish the session project/id candidate key before creating scoped tag foreign keys.
Files changed:
.changeset/fn-8562-chat-conversation-tags.md | 7 ++
docs/dashboard-guide.md | 4 +
docs/storage.md | 2 +
.../src/__tests__/postgres/schema-applier.test.ts | 8 +-
packages/core/src/async-chat-store.ts | 117 ++++++++++++++++++++-
packages/core/src/chat-store.ts | 32 ++++++
packages/core/src/chat-types.ts | 14 +++
packages/core/src/index.gate.ts | 3 +
packages/core/src/index.ts | 3 +
.../postgres/migrations/0036_chat_session_tags.sql | 64 +++++++++++
packages/core/src/postgres/schema-applier.ts | 16 ++-
packages/core/src/postgres/schema/project.ts | 34 ++++++
packages/dashboard/app/api.ts | 1 +
packages/dashboard/app/api/chat.ts | 18 ++++
packages/dashboard/app/components/ChatView.css | 17 +++
packages/dashboard/app/components/ChatView.tsx | 70 +++++++++++-
.../__tests__/ChatView.core-interactions.test.tsx | 27 +++++
.../dashboard/app/hooks/__tests__/useChat.test.ts | 1 +
packages/dashboard/app/hooks/useChat.ts | 52 ++++++++-
.../dashboard/src/routes/register-chat-routes.ts | 70 ++++++++++++
20 files changed, 550 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-8562
Fusion-Task-Lineage: 4efe798c-0865-451a-adbd-6b85f9f8b149
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>