feat: enhance BlueBubbles media and message handling by adding reply context support and improving outbound message ID tracking
This commit is contained in:
committed by
Peter Steinberger
parent
c331bdc27d
commit
d029ceab1c
@@ -82,7 +82,7 @@ describe("queue followups", () => {
|
||||
});
|
||||
|
||||
const first = await getReplyFromConfig(
|
||||
{ Body: "first", From: "+1001", To: "+2000" },
|
||||
{ Body: "first", From: "+1001", To: "+2000", MessageSid: "m-1" },
|
||||
{},
|
||||
cfg,
|
||||
);
|
||||
@@ -105,7 +105,11 @@ describe("queue followups", () => {
|
||||
await Promise.resolve();
|
||||
|
||||
expect(runEmbeddedPiAgent).toHaveBeenCalledTimes(2);
|
||||
expect(prompts.some((p) => p.includes("[Queued messages while agent was busy]"))).toBe(true);
|
||||
const queuedPrompt = prompts.find((p) =>
|
||||
p.includes("[Queued messages while agent was busy]"),
|
||||
);
|
||||
expect(queuedPrompt).toBeTruthy();
|
||||
expect(queuedPrompt).toContain("[message_id: m-1]");
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -377,9 +377,14 @@ export async function runPreparedReply(
|
||||
const sessionIdFinal = sessionId ?? crypto.randomUUID();
|
||||
const sessionFile = resolveSessionFilePath(sessionIdFinal, sessionEntry);
|
||||
const queueBodyBase = [threadStarterNote, baseBodyFinal].filter(Boolean).join("\n\n");
|
||||
const queuedBody = mediaNote
|
||||
? [mediaNote, mediaReplyHint, queueBodyBase].filter(Boolean).join("\n").trim()
|
||||
const queueMessageId = sessionCtx.MessageSid?.trim();
|
||||
const queueMessageIdHint = queueMessageId ? `[message_id: ${queueMessageId}]` : "";
|
||||
const queueBodyWithId = queueMessageIdHint
|
||||
? `${queueBodyBase}\n${queueMessageIdHint}`
|
||||
: queueBodyBase;
|
||||
const queuedBody = mediaNote
|
||||
? [mediaNote, mediaReplyHint, queueBodyWithId].filter(Boolean).join("\n").trim()
|
||||
: queueBodyWithId;
|
||||
const resolvedQueue = resolveQueueSettings({
|
||||
cfg,
|
||||
channel: sessionCtx.Provider,
|
||||
|
||||
Reference in New Issue
Block a user