Skip to content

Feature Request: Context-Locked Conversations and Enhanced Metadata Tagging in Simple Chat #360

@paullizer

Description

@paullizer

This feature proposal introduces scoped conversation contexts and expanded metadata tagging to enhance data integrity, traceability, and user experience in Simple Chat. It addresses the risk of cross-contaminating context from different workspaces (e.g., Person A, B, and C each having unique workspaces such as legal cases or projects) when users interact within the same conversation thread.

Problem

Currently, Simple Chat allows conversations to switch active group context dynamically, which can result in unintentional mixing of data from unrelated projects or investigations. For users managing sensitive or compartmentalized data (e.g., legal cases), this creates risk and confusion when conversations span multiple group IDs.

Proposed Features

1. Conversation Context Locking

  • Add a context field to the conversation parent record to explicitly tag the initiating scope (personal, group, public).
  • Example structure:
"context": [
  { "type": "primary", "scope": "group", "id": "group-id" },
  { "type": "secondary", "scope": "public", "id": "public-id" },
  { "type": "secondary", "scope": "group", "id": "group-id" }
],
"strict": true
  • strict: true will enforce that the conversation cannot access data outside of the primary group unless the user explicitly opts in via UI confirmation.

2. Automatic Group Switching Based on Context

  • When a user opens a conversation from history, the system should automatically update the active group ID based on the primary context of that conversation.
  • This ensures workspace-bound access to documents, agents, and models.

3. Scoped Access Warnings

  • Introduce a UI mechanism (e.g., modal or banner) that informs users when they attempt to cross group boundaries in a single conversation.
  • Example: “You are currently in Group A. Are you sure you want to search across Group B in this conversation?”

4. Expanded Metadata for Messages

  • Each message should store the configuration settings at time of execution, including:

    • Active group ID
    • Selected documents and their scopes
    • Enabled models and agents
    • Any filters or tags applied
  • This metadata should be queryable for review/debugging purposes and shown in a side panel or audit log UI.

5. Conversation Tags

Introduce flexible tagging on the conversation parent document to capture:

  • Agents used
  • Models selected
  • Participants
  • Semantic intent (e.g., “case-a”, “evidence-summary”)
  • Documents referenced (with scope and classification)
  • External sources (e.g., links to web evidence)

Example tag schema:

{
  "id": "9c6ef42a-e1a9-47d4-b725-ca79e50ca3e2",
  "user_id": "07e61033-ea1a-4472-a1e7-6b9ac874984a",
  "last_updated": "2025-07-30T15:16:21.551225",
  "title": "summarize",
  "context": [
    { "type": "primary",   "scope": "group",   "id": "group-id" },
    { "type": "secondary", "scope": "public",  "id": "public-id" },
    { "type": "secondary", "scope": "group",   "id": "group-id" }
  ],
  "strict": true,
  "tags": [
    { "category": "agent",    "value": "agent-litigator" },
    { "category": "model",    "value": "gpt-4o" },
    { "category": "participant", "value": "user-a" },
    { "category": "semantic", "value": "case-a" },
    { "category": "semantic", "value": "evidence-summary" },
    {
      "category": "document",
      "value": "doc-id",
      "scope": "group",
      "id": "group-id",
      "classification": "CUI"
    },
    {
      "category": "document",
      "value": "doc-id",
      "scope": "personal",
      "id": "user-id",
      "classification": "Public"
    },
    {
      "category": "document",
      "value": "doc-id",
      "scope": "public",
      "id": "public-workspace-id",
      "classification": "None"
    },
    {
      "category": "web",
      "value": "https://court.example.com/case-abc"
    }
  ]
}

Benefits

  • Prevents accidental information leakage across contexts.
  • Improves auditability and reproducibility of message outcomes.
  • Supports richer insights into historical interactions.
  • Lays foundation for features like scoped analytics and access reviews.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

Status

In review

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions