Summary
Add a one-click action to copy the full conversation transcript for the active thread, without requiring manual selection across the whole chat timeline.
Problem
For handoffs, bug reports, issue filing, and external sharing, users often need the entire conversation in one step. Right now there is no dedicated chat-level copy/export action for the full transcript.
Proposed behavior
- Add a thread-level
Copy transcript action in the chat UI.
- Copy the full conversation transcript for the active thread in a readable text or markdown format.
- Include both user and assistant messages in chronological order.
- Preserve enough structure to make the transcript useful outside the app, such as speaker labels and timestamps when available.
- Show success and failure feedback after the clipboard action.
Scope
- This issue is specifically about copying or exporting the entire active conversation.
- Keep this separate from per-message copy actions.
- File-download export can be included if it naturally shares the same implementation path, but clipboard copy should be the baseline requirement.
Acceptance criteria
- The active conversation has a discoverable one-click transcript copy action.
- The copied transcript includes the full thread history in chronological order.
- Output is well-structured and readable outside T3 Code.
- Success and failure states are surfaced in the UI.
- The action works consistently on macOS, Linux, and Windows desktop builds.
Open questions
- Preferred output format: plain text, markdown, or both.
- Whether tool-call cards, approvals, and plan content should be included verbatim, summarized, or omitted.
- Whether timestamps should always be included or be optional.
Implementation notes
Likely connected areas:
apps/web/src/components/ChatView.tsx
- thread/message shaping in the web store and session logic
- any existing export helpers already used for plans or other chat artifacts
This should stay narrowly focused on transcript copy/export for the active thread, not broader history management.