




























@@ -135,8 +135,12 @@ function makeBaseParams(overrides: {
135135sessionTarget?: string;
136136deliveryBestEffort?: boolean;
137137runSessionKey?: string;
138+resolvedDeliveryMode?: "explicit" | "implicit";
138139}): Parameters<typeof dispatchCronDelivery>[0] {
139-const resolvedDelivery = makeResolvedDelivery();
140+const resolvedDelivery = {
141+ ...makeResolvedDelivery(),
142+mode: overrides.resolvedDeliveryMode ?? "explicit",
143+} satisfies Extract<DeliveryTargetResolution, { ok: true }>;
140144const runStartedAt = overrides.runStartedAt ?? Date.now();
141145return {
142146cfg: {} as never,
@@ -422,7 +426,7 @@ describe("dispatchCronDelivery — double-announce guard", () => {
422426);
423427});
424428425-it("queues main-session awareness for isolated cron jobs after delivery", async () => {
429+it("queues main-session awareness for isolated cron jobs with explicit delivery targets", async () => {
426430vi.mocked(countActiveDescendantRuns).mockReturnValue(0);
427431vi.mocked(isLikelyInterimCronMessage).mockReturnValue(false);
428432@@ -443,6 +447,23 @@ describe("dispatchCronDelivery — double-announce guard", () => {
443447});
444448});
445449450+it("skips main-session awareness for isolated cron jobs with implicit delivery targets", async () => {
451+vi.mocked(countActiveDescendantRuns).mockReturnValue(0);
452+vi.mocked(isLikelyInterimCronMessage).mockReturnValue(false);
453+454+const params = makeBaseParams({
455+synthesizedText: "Implicit cron update.",
456+resolvedDeliveryMode: "implicit",
457+});
458+const state = await dispatchCronDelivery(params);
459+460+expect(state.result).toBeUndefined();
461+expect(state.delivered).toBe(true);
462+expect(state.deliveryAttempted).toBe(true);
463+expect(deliverOutboundPayloads).toHaveBeenCalledTimes(1);
464+expect(enqueueSystemEvent).not.toHaveBeenCalled();
465+});
466+446467it("skips awareness text when direct delivery strips a silent caption", async () => {
447468vi.mocked(countActiveDescendantRuns).mockReturnValue(0);
448469vi.mocked(isLikelyInterimCronMessage).mockReturnValue(false);
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。