fix: include username in Claw chat payload

This commit is contained in:
134 2026-06-25 13:05:25 +08:00
parent acaae5fd1b
commit 0100f58891

View File

@ -41,6 +41,20 @@ function createConversationId(userId: string, chatId: string) {
return `site-user-${userId}-canvas-${chatId}`;
}
function getOpenClawUserName(user: {
id: string;
name?: string | null;
email?: string | null;
}) {
const name = String(user.name || "").trim();
if (name) return name;
const email = String(user.email || "").trim();
if (email) return email;
return user.id;
}
function isRequestFile(value: FormDataEntryValue): value is File {
return (
typeof value === "object" &&
@ -198,6 +212,7 @@ export async function POST(request: Request) {
const userMessageId = parsed.userMessageId || generateUUID();
const assistantMessageId = generateUUID();
const conversationId = createConversationId(session.user.id, parsed.id);
const openClawUserName = getOpenClawUserName(session.user);
const endpoint = `${config.baseUrl}/api/chat`;
let upstreamPayload: unknown = null;
@ -215,13 +230,17 @@ export async function POST(request: Request) {
body: JSON.stringify({
conversation_id: conversationId,
user_id: session.user.id,
user_name: session.user.name || session.user.email || "",
user_name: openClawUserName,
username: openClawUserName,
message: upstreamMessage,
metadata: {
source: "ai_chatbot_canvas",
page: "/canvas",
tenant: "default",
chat_id: parsed.id,
user_id: session.user.id,
user_name: openClawUserName,
username: openClawUserName,
spreadsheet_files: spreadsheetMarkdownResult?.files || undefined,
spreadsheet_markdown_truncated:
spreadsheetMarkdownResult?.truncated || undefined,