





















@@ -1257,11 +1257,17 @@ describe("processDiscordMessage session routing", () => {
12571257});
12581258});
125912591260-it("marks always-on guild replies as message-tool-only and disables source streaming", async () => {
1260+it("marks explicit message-tool guild replies as message-tool-only and disables source streaming", async () => {
12611261const ctx = await createBaseContext({
12621262shouldRequireMention: false,
12631263effectiveWasMentioned: false,
12641264discordConfig: { streaming: "partial", blockStreaming: true },
1265+cfg: {
1266+messages: {
1267+groupChat: { visibleReplies: "message_tool" },
1268+},
1269+session: { store: "/tmp/openclaw-discord-process-test-sessions.json" },
1270+},
12651271route: BASE_CHANNEL_ROUTE,
12661272});
12671273@@ -1283,6 +1289,7 @@ describe("processDiscordMessage session routing", () => {
12831289messages: {
12841290ackReaction: "👀",
12851291ackReactionScope: "all",
1292+groupChat: { visibleReplies: "message_tool" },
12861293statusReactions: {
12871294timing: { debounceMs: 0 },
12881295},
@@ -1314,6 +1321,7 @@ describe("processDiscordMessage session routing", () => {
13141321messages: {
13151322ackReaction: "👀",
13161323ackReactionScope: "all",
1324+groupChat: { visibleReplies: "message_tool" },
13171325statusReactions: {
13181326enabled: true,
13191327timing: { debounceMs: 0 },
@@ -1500,15 +1508,15 @@ describe("processDiscordMessage session routing", () => {
15001508});
15011509});
150215101503-it("defaults guild replies to message-tool-only source delivery", async () => {
1511+it("resolves guild source delivery from default, explicit, and room-event modes", async () => {
15041512await runProcessDiscordMessage(
15051513await createBaseContext({
15061514shouldRequireMention: true,
15071515effectiveWasMentioned: true,
15081516route: BASE_CHANNEL_ROUTE,
15091517}),
15101518);
1511-expect(getLastDispatchReplyOptions()?.sourceReplyDeliveryMode).toBe("message_tool_only");
1519+expect(getLastDispatchReplyOptions()?.sourceReplyDeliveryMode).toBe("automatic");
1512152015131521dispatchInboundMessage.mockClear();
15141522await runProcessDiscordMessage(
@@ -1518,15 +1526,15 @@ describe("processDiscordMessage session routing", () => {
15181526cfg: {
15191527messages: {
15201528groupChat: {
1521-visibleReplies: "automatic",
1529+visibleReplies: "message_tool",
15221530},
15231531},
15241532session: { store: "/tmp/openclaw-discord-process-test-sessions.json" },
15251533},
15261534route: BASE_CHANNEL_ROUTE,
15271535}),
15281536);
1529-expect(getLastDispatchReplyOptions()?.sourceReplyDeliveryMode).toBe("automatic");
1537+expect(getLastDispatchReplyOptions()?.sourceReplyDeliveryMode).toBe("message_tool_only");
1530153815311539dispatchInboundMessage.mockClear();
15321540await runProcessDiscordMessage(
@@ -1754,6 +1762,9 @@ describe("processDiscordMessage draft streaming", () => {
17541762const ctx = await createBaseContext({
17551763cfg: {
17561764tools: { profile: "coding" },
1765+messages: {
1766+groupChat: { visibleReplies: "message_tool" },
1767+},
17571768session: { store: "/tmp/openclaw-discord-process-test-sessions.json" },
17581769},
17591770route: BASE_CHANNEL_ROUTE,
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。