feat: add announce delivery mode for automation runs

This commit is contained in:
William Valentin
2026-02-18 10:14:45 -08:00
parent f38fc063d2
commit 865068b71c
9 changed files with 85 additions and 9 deletions
+7 -2
View File
@@ -9,7 +9,7 @@ interface ChannelLookup {
get(name: string): { send(peerId: string, message: OutboundMessage): Promise<void> } | undefined;
}
type DeliveryMode = 'shared_session' | 'isolated_job';
type DeliveryMode = 'shared_session' | 'isolated_job' | 'announce';
export class CronScheduler implements ChannelAdapter {
readonly name = 'cron';
@@ -99,7 +99,11 @@ export class CronScheduler implements ChannelAdapter {
this.lastTriggeredLocalDateByJob.set(jobName, dayKey);
}
const runId = `run-${randomUUID()}`;
const senderId = this.deliveryMode === 'isolated_job' ? `${jobName}:${runId}` : jobName;
const senderId = this.deliveryMode === 'shared_session'
? jobName
: this.deliveryMode === 'announce'
? `${jobName}:announce:${runId}`
: `${jobName}:${runId}`;
const msg: InboundMessage = {
id: `cron-${jobName}-${Date.now()}`,
@@ -113,6 +117,7 @@ export class CronScheduler implements ChannelAdapter {
scheduled: true,
modelTier: job.model_tier,
deliveryMode: this.deliveryMode,
announce: this.deliveryMode === 'announce',
runId,
replyPeerId: jobName,
},