mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-28 05:16:23 -06:00
fix(agents): deliver stale cron media completions
This commit is contained in:
@@ -2385,7 +2385,7 @@ describe("deliverSubagentAnnouncement completion delivery", () => {
|
||||
);
|
||||
});
|
||||
|
||||
it("no-ops stale isolated cron run media completions", async () => {
|
||||
it("directly delivers stale isolated cron run media completions", async () => {
|
||||
const callGateway = createGatewayMock();
|
||||
const sendMessage = createSendMessageMock();
|
||||
const queueEmbeddedPiMessageWithOutcome = createQueueOutcomeMock(true);
|
||||
@@ -2416,6 +2416,40 @@ describe("deliverSubagentAnnouncement completion delivery", () => {
|
||||
],
|
||||
});
|
||||
|
||||
expectRecordFields(result, {
|
||||
delivered: true,
|
||||
path: "direct",
|
||||
});
|
||||
expect(queueEmbeddedPiMessageWithOutcome).not.toHaveBeenCalled();
|
||||
expect(callGateway).not.toHaveBeenCalled();
|
||||
expect(sendMessage).toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
channel: "slack",
|
||||
accountId: "acct-1",
|
||||
to: "channel:C123",
|
||||
content: "The generated image is ready.",
|
||||
mediaUrls: ["/tmp/generated-daily.png"],
|
||||
idempotencyKey: "announce-stale-cron-media:generated-media-direct",
|
||||
}),
|
||||
);
|
||||
});
|
||||
|
||||
it("no-ops stale isolated cron run text completions", async () => {
|
||||
const callGateway = createGatewayMock();
|
||||
const sendMessage = createSendMessageMock();
|
||||
const queueEmbeddedPiMessageWithOutcome = createQueueOutcomeMock(true);
|
||||
const result = await deliverSlackChannelAnnouncement({
|
||||
callGateway,
|
||||
sendMessage,
|
||||
queueEmbeddedPiMessageWithOutcome,
|
||||
sessionId: "stale-cron-run-session",
|
||||
isActive: false,
|
||||
requesterSessionKey: "agent:main:cron:daily-text:run:run-123",
|
||||
expectsCompletionMessage: true,
|
||||
directIdempotencyKey: "announce-stale-cron-text",
|
||||
sourceTool: "subagent_announce",
|
||||
});
|
||||
|
||||
expectRecordFields(result, {
|
||||
delivered: true,
|
||||
path: "none",
|
||||
|
||||
@@ -913,6 +913,10 @@ async function sendSubagentAnnounceDirectly(params: {
|
||||
isCronRunSessionKey(canonicalRequesterSessionKey) &&
|
||||
!resolveRequesterSessionActivity(canonicalRequesterSessionKey).isActive
|
||||
) {
|
||||
const generatedMediaDelivery = await tryGeneratedMediaDirectDelivery();
|
||||
if (generatedMediaDelivery) {
|
||||
return generatedMediaDelivery;
|
||||
}
|
||||
return {
|
||||
delivered: true,
|
||||
path: "none",
|
||||
|
||||
Reference in New Issue
Block a user