From 42ecfffbffe5913ccbcc8e7e982abff00e70e158 Mon Sep 17 00:00:00 2001 From: Tak Hoffman <781889+Takhoffman@users.noreply.github.com> Date: Fri, 27 Mar 2026 21:27:05 -0500 Subject: [PATCH] fix(regression): restore signal cold-runtime chunking --- extensions/signal/src/channel.ts | 3 ++- extensions/signal/src/core.test.ts | 12 ++++++++++++ src/plugin-sdk/signal.ts | 1 + 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/extensions/signal/src/channel.ts b/extensions/signal/src/channel.ts index 9c52690f4f0..a2e25cf469c 100644 --- a/extensions/signal/src/channel.ts +++ b/extensions/signal/src/channel.ts @@ -18,6 +18,7 @@ import { resolveSignalOutboundTarget } from "./outbound-session.js"; import { probeSignal, type SignalProbe } from "./probe.js"; import { buildBaseChannelStatusSummary, + chunkText, collectStatusIssuesFromLastError, createDefaultChannelRuntimeState, DEFAULT_ACCOUNT_ID, @@ -306,7 +307,7 @@ export const signalPlugin: ChannelPlugin = outbound: { base: { deliveryMode: "direct", - chunker: (text, limit) => getSignalRuntime().channel.text.chunkText(text, limit), + chunker: chunkText, chunkerMode: "text", textChunkLimit: 4000, sendFormattedText: async ({ cfg, to, text, accountId, deps, abortSignal }) => diff --git a/extensions/signal/src/core.test.ts b/extensions/signal/src/core.test.ts index b6febe42aec..f7f0644f1a8 100644 --- a/extensions/signal/src/core.test.ts +++ b/extensions/signal/src/core.test.ts @@ -131,6 +131,18 @@ describe("probeSignal", () => { }); }); +describe("signal outbound", () => { + it("chunks outbound text without requiring Signal runtime initialization", () => { + clearSignalRuntime(); + const chunker = signalPlugin.outbound?.chunker; + if (!chunker) { + throw new Error("signal outbound.chunker unavailable"); + } + + expect(chunker("alpha beta", 5)).toEqual(["alpha", "beta"]); + }); +}); + describe("classifySignalCliLogLine", () => { it("treats INFO/DEBUG as log", () => { expect(classifySignalCliLogLine("INFO DaemonCommand - Started")).toBe("log"); diff --git a/src/plugin-sdk/signal.ts b/src/plugin-sdk/signal.ts index dff80205233..ea62016d5f4 100644 --- a/src/plugin-sdk/signal.ts +++ b/src/plugin-sdk/signal.ts @@ -51,6 +51,7 @@ export { SignalConfigSchema } from "../config/zod-schema.providers-core.js"; export { normalizeE164 } from "../utils.js"; export { resolveChannelMediaMaxBytes } from "../channels/plugins/media-limits.js"; +export { chunkText } from "../auto-reply/chunk.js"; export { createCliPathTextInput, createDelegatedTextInputShouldPrompt,