mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-19 09:58:38 +00:00
fix: exclude native slash commands from onToolResult
Native slash commands (e.g. /verbose, /status) should not emit tool summaries. Gate onToolResult behind CommandSource !== 'native' in addition to the existing ChatType !== 'group' check. Add test for native command exclusion.
This commit is contained in:
@@ -219,6 +219,32 @@ describe("dispatchReplyFromConfig", () => {
|
|||||||
expect(dispatcher.sendFinalReply).toHaveBeenCalledTimes(1);
|
expect(dispatcher.sendFinalReply).toHaveBeenCalledTimes(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("does not provide onToolResult for native slash commands", async () => {
|
||||||
|
mocks.tryFastAbortFromMessage.mockResolvedValue({
|
||||||
|
handled: false,
|
||||||
|
aborted: false,
|
||||||
|
});
|
||||||
|
const cfg = {} as ClawdbotConfig;
|
||||||
|
const dispatcher = createDispatcher();
|
||||||
|
const ctx = buildTestCtx({
|
||||||
|
Provider: "telegram",
|
||||||
|
ChatType: "direct",
|
||||||
|
CommandSource: "native",
|
||||||
|
});
|
||||||
|
|
||||||
|
const replyResolver = async (
|
||||||
|
_ctx: MsgContext,
|
||||||
|
opts: GetReplyOptions | undefined,
|
||||||
|
_cfg: ClawdbotConfig,
|
||||||
|
) => {
|
||||||
|
expect(opts?.onToolResult).toBeUndefined();
|
||||||
|
return { text: "hi" } satisfies ReplyPayload;
|
||||||
|
};
|
||||||
|
|
||||||
|
await dispatchReplyFromConfig({ ctx, cfg, dispatcher, replyResolver });
|
||||||
|
expect(dispatcher.sendFinalReply).toHaveBeenCalledTimes(1);
|
||||||
|
});
|
||||||
|
|
||||||
it("fast-aborts without calling the reply resolver", async () => {
|
it("fast-aborts without calling the reply resolver", async () => {
|
||||||
mocks.tryFastAbortFromMessage.mockResolvedValue({
|
mocks.tryFastAbortFromMessage.mockResolvedValue({
|
||||||
handled: true,
|
handled: true,
|
||||||
|
|||||||
@@ -277,7 +277,7 @@ export async function dispatchReplyFromConfig(params: {
|
|||||||
{
|
{
|
||||||
...params.replyOptions,
|
...params.replyOptions,
|
||||||
onToolResult:
|
onToolResult:
|
||||||
ctx.ChatType !== "group"
|
ctx.ChatType !== "group" && ctx.CommandSource !== "native"
|
||||||
? (payload: ReplyPayload) => {
|
? (payload: ReplyPayload) => {
|
||||||
const run = async () => {
|
const run = async () => {
|
||||||
const ttsPayload = await maybeApplyTtsToPayload({
|
const ttsPayload = await maybeApplyTtsToPayload({
|
||||||
|
|||||||
Reference in New Issue
Block a user