fix: propagate real message IDs via SSE and fix regenerate model parameter

- Add message_id and user_message_id to SSE done events so frontend
  can replace temp IDs with real DB IDs, fixing "消息不存在" on regenerate
- Replace Body(default=None) with RegenerateRequest Pydantic model for
  proper JSON body parsing, fixing 422 Unprocessable Content
- Frontend always sends model in regenerate request body
- Pass selected model through message-item → regenerateMessage chain
- Various UI refinements to chat sidebar, quick questions, and layout

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-27 09:00:31 +08:00
parent 53a9380d7a
commit 0251a5e3ff
10 changed files with 549 additions and 858 deletions
+4 -3
View File
@@ -5,13 +5,14 @@ import MessageItem from "./message-item";
interface MessageListProps {
messages: ChatMessage[];
selectedModel?: string;
}
export default function MessageList({ messages }: MessageListProps) {
export default function MessageList({ messages, selectedModel }: MessageListProps) {
return (
<div className="space-y-4 p-4">
<div className="max-w-3xl mx-auto px-4">
{messages.map((message) => (
<MessageItem key={message.id} message={message} />
<MessageItem key={message.id} message={message} selectedModel={selectedModel} />
))}
</div>
);