Conversation title is auto-generated or set on creation
Why it matters
A history sidebar full of rows labeled "New conversation" or UUIDs is functionally useless — users cannot find anything, so they start a new chat every time instead of continuing old ones, which defeats the point of persistence entirely. Auto-generated titles turn the archive from a dead dump into a searchable, scannable record of prior work, and they cost roughly a fraction of a cent per conversation when generated by a cheap model like gpt-4o-mini or claude-haiku.
Severity rationale
Info because it is polish, not a functional blocker — users can still operate without titles.
Remediation
After the first assistant response lands, fire a background call to a cheap model asking for a six-word title summarizing the opening exchange. Persist via UPDATE conversations SET title = $1 WHERE id = $2. Fall back to the first fifty characters of the user's opening message if the generation fails. Implement in src/lib/ai/generate-title.ts.
const { text } = await generateText({ model: openai('gpt-4o-mini'), prompt: `Six-word title for: "${firstMessage.slice(0, 200)}"` })
await updateConversationTitle(id, text.trim())
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.
Taxons
History
- 2026-04-18·v1.0.0·Initial import from ai-ux-patterns·automated