提交 e3568f9a authored 作者: Will Chen's avatar Will Chen

update message approval status after processing message

上级 a4629e76
...@@ -261,18 +261,27 @@ export function registerChatStreamHandlers() { ...@@ -261,18 +261,27 @@ export function registerChatStreamHandlers() {
}) })
.returning(); .returning();
await db
.update(messages)
.set({ content: fullResponse })
.where(eq(messages.id, assistantMessage.id));
if (readSettings().autoApproveChanges) { if (readSettings().autoApproveChanges) {
const status = await processFullResponseActions( const status = await processFullResponseActions(
fullResponse, fullResponse,
req.chatId, req.chatId,
{ chatSummary } { chatSummary, messageId: assistantMessage.id }
); );
const chat = await db.query.chats.findFirst({
where: eq(chats.id, req.chatId),
with: {
messages: {
orderBy: (messages, { asc }) => [asc(messages.createdAt)],
},
},
});
event.sender.send("chat:response:chunk", {
chatId: req.chatId,
messages: chat!.messages,
});
if (status.error) { if (status.error) {
event.sender.send( event.sender.send(
"chat:response:error", "chat:response:error",
......
...@@ -130,7 +130,10 @@ const approveProposalHandler = async ( ...@@ -130,7 +130,10 @@ const approveProposalHandler = async (
const processResult = await processFullResponseActions( const processResult = await processFullResponseActions(
messageToApprove.content, messageToApprove.content,
chatId, chatId,
{ chatSummary: chatSummary ?? undefined } // Pass summary if found {
chatSummary: chatSummary ?? undefined,
messageId,
} // Pass summary if found
); );
if (processResult.error) { if (processResult.error) {
...@@ -146,13 +149,6 @@ const approveProposalHandler = async ( ...@@ -146,13 +149,6 @@ const approveProposalHandler = async (
}; };
} }
// 3. Update the message's approval state to 'approved'
await db
.update(messages)
.set({ approvalState: "approved" })
.where(eq(messages.id, messageId));
console.log(`Message ${messageId} marked as approved.`);
return { success: true }; return { success: true };
} catch (error) { } catch (error) {
console.error( console.error(
......
import { db } from "../../db"; import { db } from "../../db";
import { chats } from "../../db/schema"; import { chats, messages } from "../../db/schema";
import { eq } from "drizzle-orm"; import { eq } from "drizzle-orm";
import fs from "node:fs"; import fs from "node:fs";
import { getDyadAppPath } from "../../paths/paths"; import { getDyadAppPath } from "../../paths/paths";
...@@ -100,7 +100,10 @@ export function getDyadChatSummaryTag(fullResponse: string): string | null { ...@@ -100,7 +100,10 @@ export function getDyadChatSummaryTag(fullResponse: string): string | null {
export async function processFullResponseActions( export async function processFullResponseActions(
fullResponse: string, fullResponse: string,
chatId: number, chatId: number,
{ chatSummary }: { chatSummary: string | undefined } {
chatSummary,
messageId,
}: { chatSummary: string | undefined; messageId: number }
): Promise<{ updatedFiles?: boolean; error?: string }> { ): Promise<{ updatedFiles?: boolean; error?: string }> {
// Get the app associated with the chat // Get the app associated with the chat
const chatWithApp = await db.query.chats.findFirst({ const chatWithApp = await db.query.chats.findFirst({
...@@ -248,6 +251,15 @@ export async function processFullResponseActions( ...@@ -248,6 +251,15 @@ export async function processFullResponseActions(
author: await getGitAuthor(), author: await getGitAuthor(),
}); });
console.log(`Successfully committed changes: ${changes.join(", ")}`); console.log(`Successfully committed changes: ${changes.join(", ")}`);
// Update the message to approved
await db
.update(messages)
.set({
approvalState: "approved",
})
.where(eq(messages.id, messageId));
return { updatedFiles: true }; return { updatedFiles: true };
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论