mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 05:40:44 +00:00
fix(cron): keep message tool without delivery
This commit is contained in:
@@ -49,6 +49,7 @@ Docs: https://docs.openclaw.ai
|
||||
- Agents/TTS: report failed speech synthesis as a real tool error so unconfigured providers no longer feed successful TTS failure output back into agent loops. (#67980) Thanks @lawrence3699.
|
||||
- Gateway/wake: allow unknown properties on wake payloads so external senders like Paperclip can attach opaque metadata without failing schema validation. (#68355) Thanks @kagura-agent.
|
||||
- Matrix: honor `channels.matrix.network.dangerouslyAllowPrivateNetwork` when creating clients for private-network homeservers. (#68332) Thanks @kagura-agent.
|
||||
- Cron/message tool: keep cron-owned runs with `delivery.mode: "none"` on the normal message-tool path so they can still send explicit messages, create threads, and route conditionally when no runner-owned delivery target is active. (#68482) Thanks @obviyus.
|
||||
|
||||
## 2026.4.15
|
||||
|
||||
|
||||
@@ -124,17 +124,13 @@ type IsolatedDeliveryContract = "cron-owned" | "shared";
|
||||
function resolveCronToolPolicy(params: {
|
||||
deliveryRequested: boolean;
|
||||
resolvedDelivery: ResolvedCronDeliveryTarget;
|
||||
deliveryContract: IsolatedDeliveryContract;
|
||||
}) {
|
||||
return {
|
||||
// Only enforce an explicit message target when the cron delivery target
|
||||
// was successfully resolved. When resolution fails the agent should not
|
||||
// be blocked by a target it cannot satisfy (#27898).
|
||||
requireExplicitMessageTarget: params.deliveryRequested && params.resolvedDelivery.ok,
|
||||
// Cron-owned runs always route user-facing delivery through the runner
|
||||
// itself. Shared callers keep the previous behavior so non-cron paths do
|
||||
// not silently lose the message tool when no explicit delivery is active.
|
||||
disableMessageTool: params.deliveryContract === "cron-owned" ? true : params.deliveryRequested,
|
||||
disableMessageTool: params.deliveryRequested,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -162,7 +158,6 @@ async function resolveCronDeliveryContext(params: {
|
||||
toolPolicy: resolveCronToolPolicy({
|
||||
deliveryRequested: false,
|
||||
resolvedDelivery,
|
||||
deliveryContract: params.deliveryContract,
|
||||
}),
|
||||
};
|
||||
}
|
||||
@@ -181,7 +176,6 @@ async function resolveCronDeliveryContext(params: {
|
||||
toolPolicy: resolveCronToolPolicy({
|
||||
deliveryRequested: deliveryPlan.requested,
|
||||
resolvedDelivery,
|
||||
deliveryContract: params.deliveryContract,
|
||||
}),
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user