Skip to content

Commit 13a0d7a

Browse files
committed
fix(cron): keep runner-owned delivery off message tool
1 parent 49ae60d commit 13a0d7a

2 files changed

Lines changed: 12 additions & 1 deletion

File tree

src/cron/isolated-agent/run.message-tool-policy.test.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,14 @@ describe("runCronIsolatedAgentTurn message tool policy", () => {
9292
});
9393
});
9494

95+
it("disables the message tool when webhook delivery is active", async () => {
96+
await expectMessageToolDisabledForPlan({
97+
requested: false,
98+
mode: "webhook",
99+
to: "https://example.invalid/cron",
100+
});
101+
});
102+
95103
it("keeps the message tool enabled for shared callers when delivery is not requested", async () => {
96104
mockRunCronFallbackPassthrough();
97105
resolveCronDeliveryPlanMock.mockReturnValue({

src/cron/isolated-agent/run.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,13 +124,14 @@ type IsolatedDeliveryContract = "cron-owned" | "shared";
124124
function resolveCronToolPolicy(params: {
125125
deliveryRequested: boolean;
126126
resolvedDelivery: ResolvedCronDeliveryTarget;
127+
deliveryMode: "announce" | "webhook" | "none";
127128
}) {
128129
return {
129130
// Only enforce an explicit message target when the cron delivery target
130131
// was successfully resolved. When resolution fails the agent should not
131132
// be blocked by a target it cannot satisfy (#27898).
132133
requireExplicitMessageTarget: params.deliveryRequested && params.resolvedDelivery.ok,
133-
disableMessageTool: params.deliveryRequested,
134+
disableMessageTool: params.deliveryMode !== "none",
134135
};
135136
}
136137

@@ -158,6 +159,7 @@ async function resolveCronDeliveryContext(params: {
158159
toolPolicy: resolveCronToolPolicy({
159160
deliveryRequested: false,
160161
resolvedDelivery,
162+
deliveryMode: deliveryPlan.mode,
161163
}),
162164
};
163165
}
@@ -176,6 +178,7 @@ async function resolveCronDeliveryContext(params: {
176178
toolPolicy: resolveCronToolPolicy({
177179
deliveryRequested: deliveryPlan.requested,
178180
resolvedDelivery,
181+
deliveryMode: deliveryPlan.mode,
179182
}),
180183
};
181184
}

0 commit comments

Comments
 (0)