Skip to content

Public Conversation Sharing with Authenticated Fork-to-Continue #3

@avishek0769

Description

@avishek0769

Summary

Add shareable chat links so others can read conversation history publicly and optionally continue by creating their own copy after login.

Problem

There is no mechanism to share a chat transcript externally. Collaboration and debugging workflows are blocked.

Expected Solution

Create a share token/slug for a chat. Public route should show conversation history in read-only mode without auth. If visitor wants to continue chatting, require authentication and create a new chat copy for that user so original owner data is unaffected.

Scope

  • Backend:
    • backend/prisma/schema.prisma (share metadata/entities)
    • backend/controllers/chat.controller.js
    • backend/controllers/chatMessage.controller.js
    • New routes/controller(s) for share read/fork
  • Frontend:
    • src/pages/ChatPage.tsx
    • New public shared-chat page
    • src/lib/api.ts

Acceptance Criteria

  • Owner can generate and revoke a share link.
  • Unauthenticated users can view shared conversation read-only.
  • “Continue this chat” requires auth and creates a new chat under current user.
  • New chat copy has conversation history but does not mutate original chat/messages.

Notes

Consider optional controls: expiry, one-click revoke, and private/unlisted mode.

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureA new feature in the projectfullstackIssues related to both frontend and backendmediumThis is issue is not easy to solve but not hard

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions