mirror of
https://github.com/moltbot/moltbot.git
synced 2026-04-24 07:01:49 +00:00
Cron: honor trigger for custom session timeouts
This commit is contained in:
committed by
Peter Steinberger
parent
102462b7a6
commit
3b6825ab93
@@ -1311,6 +1311,7 @@ export async function runEmbeddedPiAgent(
|
||||
lastAssistant: attempt.lastAssistant,
|
||||
lastToolError: attempt.lastToolError,
|
||||
config: params.config,
|
||||
isCronTrigger: params.trigger === "cron",
|
||||
sessionKey: params.sessionKey ?? params.sessionId,
|
||||
provider: activeErrorContext.provider,
|
||||
model: activeErrorContext.model,
|
||||
|
||||
@@ -9,6 +9,7 @@ export function buildPayloads(overrides: Partial<BuildPayloadParams> = {}) {
|
||||
assistantTexts: [],
|
||||
toolMetas: [],
|
||||
lastAssistant: undefined,
|
||||
isCronTrigger: false,
|
||||
sessionKey: "session:telegram",
|
||||
inlineToolResultsAllowed: false,
|
||||
verboseLevel: "off",
|
||||
|
||||
@@ -33,6 +33,24 @@ describe("buildEmbeddedRunPayloads tool-error warnings", () => {
|
||||
});
|
||||
});
|
||||
|
||||
it("surfaces timed-out exec tool errors for cron-triggered custom session keys", () => {
|
||||
const payloads = buildPayloads({
|
||||
lastToolError: {
|
||||
toolName: "exec",
|
||||
timedOut: true,
|
||||
error: "Command timed out after 1800 seconds.",
|
||||
},
|
||||
sessionKey: "agent:main:project-alpha",
|
||||
isCronTrigger: true,
|
||||
verboseLevel: "off",
|
||||
});
|
||||
|
||||
expectSingleToolErrorPayload(payloads, {
|
||||
title: "Exec",
|
||||
detail: "Command timed out after 1800 seconds.",
|
||||
});
|
||||
});
|
||||
|
||||
it("keeps non-timeout exec tool errors suppressed for cron sessions when verbose mode is off", () => {
|
||||
expectNoPayloads({
|
||||
lastToolError: { toolName: "exec", error: "Command not found" },
|
||||
|
||||
@@ -60,6 +60,7 @@ function resolveToolErrorWarningPolicy(params: {
|
||||
hasUserFacingReply: boolean;
|
||||
suppressToolErrors: boolean;
|
||||
suppressToolErrorWarnings?: boolean;
|
||||
isCronTrigger?: boolean;
|
||||
sessionKey: string;
|
||||
verboseLevel?: VerboseLevel;
|
||||
}): ToolErrorWarningPolicy {
|
||||
@@ -67,7 +68,7 @@ function resolveToolErrorWarningPolicy(params: {
|
||||
const isCronTimedOutExecToolError =
|
||||
(normalizedToolName === "exec" || normalizedToolName === "bash") &&
|
||||
params.lastToolError.timedOut === true &&
|
||||
isCronSessionKey(params.sessionKey);
|
||||
(params.isCronTrigger === true || isCronSessionKey(params.sessionKey));
|
||||
const includeDetails =
|
||||
isVerboseToolDetailEnabled(params.verboseLevel) || isCronTimedOutExecToolError;
|
||||
if (params.suppressToolErrorWarnings) {
|
||||
@@ -102,6 +103,7 @@ export function buildEmbeddedRunPayloads(params: {
|
||||
lastAssistant: AssistantMessage | undefined;
|
||||
lastToolError?: LastToolError;
|
||||
config?: OpenClawConfig;
|
||||
isCronTrigger?: boolean;
|
||||
sessionKey: string;
|
||||
provider?: string;
|
||||
model?: string;
|
||||
@@ -297,6 +299,7 @@ export function buildEmbeddedRunPayloads(params: {
|
||||
hasUserFacingReply: hasUserFacingAssistantReply,
|
||||
suppressToolErrors: Boolean(params.config?.messages?.suppressToolErrors),
|
||||
suppressToolErrorWarnings: params.suppressToolErrorWarnings,
|
||||
isCronTrigger: params.isCronTrigger,
|
||||
sessionKey: params.sessionKey,
|
||||
verboseLevel: params.verboseLevel,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user