Conversation export functionality is available
Why it matters
Users treat conversation content as their work product — research notes, code snippets, draft copy, meeting summaries. When the only way to extract that work is to scroll-select-copy message by message, users feel locked in, and locked-in users are hostile users. Export is a trust signal: it tells the customer "your data is yours," which also happens to be a GDPR Article 20 data-portability requirement for EU users and a hard requirement of most enterprise procurement checklists.
Severity rationale
Medium because the friction is real but the data is not truly trapped — just painful to extract manually.
Remediation
Ship a Markdown export first — it's one function and covers 90% of the use cases. Map messages to **Role:** content blocks joined with ---, wrap in a Blob, trigger a download with a[download]. Add JSON export once you have power users asking. Implement in src/components/chat/export-menu.tsx.
const blob = new Blob([markdown], { type: 'text/markdown' })
const a = Object.assign(document.createElement('a'), { href: URL.createObjectURL(blob), download: 'conversation.md' })
a.click()
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the AI UX Patterns Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- gdpr · Art. 20 — Right to data portability
Taxons
History
- 2026-04-18·v1.0.0·Initial import from ai-ux-patterns·automated