






















@@ -202,6 +202,8 @@ export function buildGatewayCronService(params: {
202202typeof opts?.agentId === "string" && opts.agentId.trim()
203203 ? normalizeAgentId(opts.agentId)
204204 : undefined;
205+const requestedSessionKey =
206+typeof opts?.sessionKey === "string" && opts.sessionKey.trim() ? opts.sessionKey : undefined;
205207// Derive agentId from sessionKey only when the key is agent-prefixed
206208// (`agent:<id>:...`). For relative session keys like `discord:channel:ops`,
207209// `resolveAgentIdFromSessionKey` returns the literal `DEFAULT_AGENT_ID`
@@ -210,23 +212,25 @@ export function buildGatewayCronService(params: {
210212// `undefined` lets `resolveCronAgent` fall back to the configured default
211213// agent so wake and enqueue resolve to the same target.
212214const parsedSessionKeyAgentId =
213-opts?.sessionKey && parseAgentSessionKey(opts.sessionKey)
214- ? normalizeAgentId(resolveAgentIdFromSessionKey(opts.sessionKey))
215+requestedSessionKey && parseAgentSessionKey(requestedSessionKey)
216+ ? normalizeAgentId(resolveAgentIdFromSessionKey(requestedSessionKey))
215217 : undefined;
216218const requestedOrDerived = requestedAgentId ?? parsedSessionKeyAgentId;
217-// Always run `resolveCronAgent`, including when no agent is requested —
218-// for relative session keys (e.g. `discord:channel:ops`) we want the
219+if (!requestedOrDerived && !requestedSessionKey) {
220+return { runtimeConfig: getRuntimeConfig(), agentId: undefined, sessionKey: undefined };
221+}
222+// For relative session keys (e.g. `discord:channel:ops`) we want the
219223// configured default agent's session, which `resolveCronAgent(undefined)`
220-// returns. Leaving agentId undefined here would strand the wake on the
221-// resolveCronSessionKey branch below.
224+// returns. For no-target wakes, the branch above preserves the existing
225+// heartbeat fanout/broadcast behavior by leaving agentId/sessionKey unset.
222226const { agentId: resolvedAgentId, cfg: runtimeConfig } = resolveCronAgent(requestedOrDerived);
223227const agentId = resolvedAgentId || undefined;
224228const sessionKey =
225-opts?.sessionKey && agentId
229+requestedSessionKey && agentId
226230 ? resolveCronSessionKey({
227231 runtimeConfig,
228232 agentId,
229-requestedSessionKey: opts.sessionKey,
233+ requestedSessionKey,
230234})
231235 : undefined;
232236return { runtimeConfig, agentId, sessionKey };
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。