Skip to content

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

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.

Activity

  1. moved this from Pending Evaluation to Pending Assignment in Simple Chat Roadmapon Feb 6, 2026
  2. paullizer commented on Feb 6, 2026

    @paullizer
    CollaboratorAuthor

    this may be resolved using a different method that Bionic711 is working on associated with groups.

  3. linked a pull request that will close this issueWorkspace folders #728on Feb 23, 2026
  4. moved this from Pending Assignment to In progress in Simple Chat Roadmapon Feb 23, 2026
  5. moved this from In progress to In review in Simple Chat Roadmapon Feb 23, 2026
  6. paullizer commented on Jun 26, 2026

    @paullizer
    CollaboratorAuthor

    Resolved in SimpleChat v0.250.001+.

    The release line includes per-conversation workspace scope locking, multi-workspace scope management, server-side active-scope authorization hardening, and expanded workspace metadata/tagging behavior.

    Closing this as completed. Please open a focused follow-up if a specific context-lock or metadata traceability scenario is still not covered.

  7. moved this from In review to Released in Simple Chat Roadmapon Jun 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

enhancementNew feature or request

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions