A regenerate response button is present
Why it matters
AI responses are non-deterministic and fail in soft ways all the time — hallucinations, cut-off streams, refusals on benign prompts, partial answers that drift off topic. Without a regenerate button the only recovery is to retype the prompt verbatim, which users will not do; they will instead give up on the answer or, worse, act on the bad one. Regenerate is the standard recovery affordance established by every reference chat product in the category.
Severity rationale
High because soft-fail responses are common and the alternative recovery path (retyping) is friction users will not pay.
Remediation
In src/components/chat/MessageBubble.tsx, render a regenerate button on the last assistant message wired to reload() from useChat (or a custom resubmit of the last user message). In error states, promote it to the primary recovery action with a "Try again" label.
{isLastAssistantMessage && !isLoading && (
<Button onClick={reload} variant="ghost" size="sm">
<RotateCcw className="h-4 w-4 mr-1" /> Regenerate
</Button>
)}
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 Chat Visibility 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-chat-visibility·automated