update message approval status after processing message
This commit is contained in:
@@ -261,18 +261,27 @@ export function registerChatStreamHandlers() {
|
||||
})
|
||||
.returning();
|
||||
|
||||
await db
|
||||
.update(messages)
|
||||
.set({ content: fullResponse })
|
||||
.where(eq(messages.id, assistantMessage.id));
|
||||
|
||||
if (readSettings().autoApproveChanges) {
|
||||
const status = await processFullResponseActions(
|
||||
fullResponse,
|
||||
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) {
|
||||
event.sender.send(
|
||||
"chat:response:error",
|
||||
|
||||
@@ -130,7 +130,10 @@ const approveProposalHandler = async (
|
||||
const processResult = await processFullResponseActions(
|
||||
messageToApprove.content,
|
||||
chatId,
|
||||
{ chatSummary: chatSummary ?? undefined } // Pass summary if found
|
||||
{
|
||||
chatSummary: chatSummary ?? undefined,
|
||||
messageId,
|
||||
} // Pass summary if found
|
||||
);
|
||||
|
||||
if (processResult.error) {
|
||||
@@ -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 };
|
||||
} catch (error) {
|
||||
console.error(
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { db } from "../../db";
|
||||
import { chats } from "../../db/schema";
|
||||
import { chats, messages } from "../../db/schema";
|
||||
import { eq } from "drizzle-orm";
|
||||
import fs from "node:fs";
|
||||
import { getDyadAppPath } from "../../paths/paths";
|
||||
@@ -100,7 +100,10 @@ export function getDyadChatSummaryTag(fullResponse: string): string | null {
|
||||
export async function processFullResponseActions(
|
||||
fullResponse: string,
|
||||
chatId: number,
|
||||
{ chatSummary }: { chatSummary: string | undefined }
|
||||
{
|
||||
chatSummary,
|
||||
messageId,
|
||||
}: { chatSummary: string | undefined; messageId: number }
|
||||
): Promise<{ updatedFiles?: boolean; error?: string }> {
|
||||
// Get the app associated with the chat
|
||||
const chatWithApp = await db.query.chats.findFirst({
|
||||
@@ -248,6 +251,15 @@ export async function processFullResponseActions(
|
||||
author: await getGitAuthor(),
|
||||
});
|
||||
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 };
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user