fix(runtime): guard cleanup and preserve skipped cron jobs

This commit is contained in:
Sebastian
2026-02-12 09:28:47 -05:00
parent 4f329f923c
commit d31caa81ef
3 changed files with 7 additions and 7 deletions

View File

@@ -2,7 +2,7 @@ import { describe, expect, it } from "vitest";
import type { WebhookContext } from "../types.js";
import { TwilioProvider } from "./twilio.js";
const STREAM_URL_PREFIX = "wss://example.ngrok.app/voice/stream?token=";
const STREAM_URL = "wss://example.ngrok.app/voice/stream";
function createProvider(): TwilioProvider {
return new TwilioProvider(
@@ -30,7 +30,8 @@ describe("TwilioProvider", () => {
const result = provider.parseWebhookEvent(ctx);
expect(result.providerResponseBody).toContain(STREAM_URL_PREFIX);
expect(result.providerResponseBody).toContain(STREAM_URL);
expect(result.providerResponseBody).toContain('<Parameter name="token" value="');
expect(result.providerResponseBody).toContain("<Connect>");
});
@@ -54,7 +55,8 @@ describe("TwilioProvider", () => {
const result = provider.parseWebhookEvent(ctx);
expect(result.providerResponseBody).toContain(STREAM_URL_PREFIX);
expect(result.providerResponseBody).toContain(STREAM_URL);
expect(result.providerResponseBody).toContain('<Parameter name="token" value="');
expect(result.providerResponseBody).toContain("<Connect>");
});
});

View File

@@ -168,7 +168,7 @@ function moveToFinished(session: ProcessSession, status: ProcessStatus) {
session.child.stderr?.destroy?.();
// Remove all event listeners to prevent memory leaks
session.child.removeAllListeners();
session.child.removeAllListeners?.();
// Clear the reference
delete session.child;

View File

@@ -70,9 +70,7 @@ function applyJobResult(
}
const shouldDelete =
job.schedule.kind === "at" &&
job.deleteAfterRun === true &&
(result.status === "ok" || result.status === "skipped");
job.schedule.kind === "at" && job.deleteAfterRun === true && result.status === "ok";
if (!shouldDelete) {
if (job.schedule.kind === "at") {