Agents/Replies: scope done fallback to direct sessions

This commit is contained in:
Vignesh Natarajan
2026-02-22 13:30:16 -08:00
parent e4d67137db
commit d75b594e07
7 changed files with 114 additions and 14 deletions

View File

@@ -131,6 +131,7 @@ describe("buildEmbeddedRunPayloads", () => {
it("adds completion fallback when tools run successfully without final assistant text", () => {
const payloads = buildPayloads({
sessionKey: "agent:main:discord:direct:u123",
toolMetas: [{ toolName: "write", meta: "/tmp/out.md" }],
lastAssistant: makeStoppedAssistant(),
});
@@ -139,6 +140,49 @@ describe("buildEmbeddedRunPayloads", () => {
expect(payloads[0]?.isError).toBeUndefined();
});
it("does not add completion fallback for channel sessions", () => {
const payloads = buildPayloads({
sessionKey: "agent:main:discord:channel:c123",
toolMetas: [{ toolName: "write", meta: "/tmp/out.md" }],
lastAssistant: makeAssistant({
stopReason: "stop",
errorMessage: undefined,
content: [],
}),
});
expect(payloads).toHaveLength(0);
});
it("does not add completion fallback for group sessions", () => {
const payloads = buildPayloads({
sessionKey: "agent:main:telegram:group:g123",
toolMetas: [{ toolName: "write", meta: "/tmp/out.md" }],
lastAssistant: makeAssistant({
stopReason: "stop",
errorMessage: undefined,
content: [],
}),
});
expect(payloads).toHaveLength(0);
});
it("does not add completion fallback when messaging tool already delivered output", () => {
const payloads = buildPayloads({
sessionKey: "agent:main:discord:direct:u123",
toolMetas: [{ toolName: "message_send", meta: "sent to #ops" }],
didSendViaMessagingTool: true,
lastAssistant: makeAssistant({
stopReason: "stop",
errorMessage: undefined,
content: [],
}),
});
expect(payloads).toHaveLength(0);
});
it("does not add completion fallback when the run still has a tool error", () => {
const payloads = buildPayloads({
toolMetas: [{ toolName: "browser", meta: "open https://example.com" }],