Skip to content

feat(filigran-chatbot): add conversation history and workspace support #276

@AreDee-Bangs

Description

@AreDee-Bangs

Feature Request

Summary

The @filigran/chatbot library currently supports a single active conversation at a time, with minimal persistence (only the active conversation_id is saved to localStorage). This request proposes two related improvements:

  1. Conversation History — a browsable list of past conversations in the chat panel UI
  2. Workspace Support — the ability to organise conversations into named workspaces

1. Conversation History

Current behaviour

The panel starts fresh (or restores one previous conversation via conversation_id in localStorage). There is no way for users to navigate back to older conversations.

Desired behaviour

A conversation history sidebar/drawer inside the chat panel that:

  • Lists past conversations (title, agent, last message date)
  • Lets users click a conversation to reload it (reusing the existing POST {apiBaseUrl}/chat/sessions endpoint)
  • Lets users delete a conversation or start a new one
  • Supports search / filter by title or agent

Proposed API contract addition

GET {apiBaseUrl}/chat/conversations?agent_slug=&workspace_id=&limit=&offset=
{
  "conversations": [
    {
      "id": "uuid",
      "title": "How do I configure SSO?",
      "agent_slug": "general",
      "workspace_id": "uuid-or-null",
      "updated_at": "2026-05-29T10:00:00Z"
    }
  ],
  "total": 42
}
DELETE {apiBaseUrl}/chat/conversations/{id}

New ChatPanel props

Prop Type Description
showHistory boolean Enable the conversation history panel (default false)
onConversationDelete (id: string) => void Optional callback after a conversation is deleted

2. Workspace Support

Current behaviour

All conversations are flat — there is no grouping or organisational layer.

Desired behaviour

Users can organise conversations into workspaces (named collections, e.g. "Project Alpha", "Support", "General"). The chat panel should:

  • Display a workspace selector (dropdown or top-level tabs) above the conversation list
  • Filter the conversation history to the selected workspace
  • Allow creating a new conversation inside a chosen workspace
  • Show a workspace name/icon in the chat header

Proposed API contract addition

GET {apiBaseUrl}/chat/workspaces
[
  { "id": "uuid", "name": "General", "icon": "Folder", "color": "cyan", "is_default": true },
  { "id": "uuid", "name": "Project Alpha", "icon": "Briefcase", "color": "violet", "is_default": false }
]

The existing POST {apiBaseUrl}/chat/messages request body should accept an optional workspace_id field so new conversations are created inside the right workspace.

New ChatPanel props

Prop Type Description
showWorkspaces boolean Enable workspace selector (default false, requires showHistory)
workspaceDashboardUrl string URL to the workspace management page

Context

This feature is being developed as part of XTM One — see the companion issue in that repository. The backend already exposes /api/v1/chat/conversations (with workspace filtering) and workspace CRUD endpoints.

Priority

Medium — required to surface the workspace feature introduced in the XTM One platform to embedded chat consumers.

Metadata

Metadata

Assignees

Labels

featureType: new feature or capability (feat:).
No fields configured for Feature.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions