Mirror scheduled-run summaries into the origin effective session.

Pin origin at create time, keep isolated fire sessions for audit, and after IM/DSH delivery resume or open the origin chat to append the same summary for follow-ups.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
oliver 2026-09-06 12:45:37 +08:00
parent 2e690c30c8
commit 29d946f3dd
12 changed files with 527 additions and 26 deletions

View file

@ -4,7 +4,7 @@
*/
import { formatInZone, resolveTodayAt } from './scheduler.js'
import { deliveryLine, resolveCreateDelivery } from './delivery.js'
import { deliveryLine, resolveCreateDelivery, resolveCreateOrigin } from './delivery.js'
import { resolveCreateAgentPreset } from './preset.js'
const JOB_SCHEMA = {
@ -22,6 +22,7 @@ const JOB_SCHEMA = {
reasoningEffort: { type: 'string' },
agentPreset: { type: 'string' },
delivery: { type: 'object', additionalProperties: true },
origin: { type: 'object', additionalProperties: true },
schedule: { type: 'object', additionalProperties: true },
createdAt: { type: 'number' },
updatedAt: { type: 'number' },
@ -204,6 +205,7 @@ export function cronToolDefinitions(service, deps = {}) {
const timeout = Number(args.timeout_minutes)
try {
const delivery = await resolveCreateDelivery(args, exec, { dshIm: getDshIm() })
const origin = await resolveCreateOrigin(args, exec, { dshIm: getDshIm() })
const agentPreset = await resolveCreateAgentPreset(args, exec, {
dshIm: getDshIm(),
agentPresets: getAgentPresets(),
@ -217,6 +219,7 @@ export function cronToolDefinitions(service, deps = {}) {
timeoutMinutes: Number.isFinite(timeout) && timeout > 0 ? timeout : undefined,
enabled: args.enabled !== false,
delivery,
...origin ? { origin } : {},
agentPreset,
})
return { job }