update message approval status after processing message
This commit is contained in:
@@ -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 (
|
|||||||
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 (
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
// 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(
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
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 {
|
|||||||
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(
|
|||||||
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 };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user