mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-13 20:56:40 +00:00
fix(cron): force main-target system events onto main session (#28898)
Ignore persisted sessionKey overrides for sessionTarget=main jobs so cron system events consistently route to the agent main session after upgrades. Closes #28770
This commit is contained in:
@@ -640,9 +640,12 @@ export async function executeJobCore(
|
||||
: 'main job requires payload.kind="systemEvent"',
|
||||
};
|
||||
}
|
||||
// main-target cron jobs should always resolve via the agent's main session.
|
||||
// Avoid forwarding persisted channel session keys from legacy records.
|
||||
const targetMainSessionKey = undefined;
|
||||
state.deps.enqueueSystemEvent(text, {
|
||||
agentId: job.agentId,
|
||||
sessionKey: job.sessionKey,
|
||||
sessionKey: targetMainSessionKey,
|
||||
contextKey: `cron:${job.id}`,
|
||||
});
|
||||
if (job.wakeMode === "now" && state.deps.runHeartbeatOnce) {
|
||||
@@ -659,7 +662,7 @@ export async function executeJobCore(
|
||||
heartbeatResult = await state.deps.runHeartbeatOnce({
|
||||
reason,
|
||||
agentId: job.agentId,
|
||||
sessionKey: job.sessionKey,
|
||||
sessionKey: targetMainSessionKey,
|
||||
});
|
||||
if (
|
||||
heartbeatResult.status !== "skipped" ||
|
||||
@@ -677,7 +680,7 @@ export async function executeJobCore(
|
||||
state.deps.requestHeartbeatNow({
|
||||
reason,
|
||||
agentId: job.agentId,
|
||||
sessionKey: job.sessionKey,
|
||||
sessionKey: targetMainSessionKey,
|
||||
});
|
||||
return { status: "ok", summary: text };
|
||||
}
|
||||
@@ -698,7 +701,7 @@ export async function executeJobCore(
|
||||
state.deps.requestHeartbeatNow({
|
||||
reason: `cron:${job.id}`,
|
||||
agentId: job.agentId,
|
||||
sessionKey: job.sessionKey,
|
||||
sessionKey: targetMainSessionKey,
|
||||
});
|
||||
return { status: "ok", summary: text };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user