# Announce Delivery Mode Checklist

Date: 2026-02-16
Status: completed

## Scope

- Add a first-class automation delivery mode for cron/webhook runs.
- Support isolated per-run sessions while preserving outbound reply routing.

## Completed

- Added `automation.delivery_mode` config enum in `src/config/schema.ts`:
  - `shared_session` (default)
  - `isolated_job`
- Implemented reply routing override in `src/channels/registry.ts` via `metadata.replyPeerId`.
- Updated `CronScheduler` and `WebhookHandler` to:
  - emit unique sender IDs per run when `delivery_mode=isolated_job`
  - include `metadata.replyPeerId` to keep output routing stable
  - include delivery metadata (`deliveryMode`, `runId`) for traceability
- Wired delivery mode through channel registration in `src/daemon/channels.ts`.
- Updated docs:
  - `README.md` automation sections
  - `config/default.yaml` commented template
- Added tests:
  - `src/channels/registry.test.ts`
  - `src/automation/cron.test.ts`
  - `src/automation/webhooks.test.ts`
  - `src/config/schema.test.ts`

## Verification

- `pnpm test:run src/channels/registry.test.ts`
- `pnpm test:run src/automation/cron.test.ts src/automation/webhooks.test.ts`
- `pnpm test:run src/config/schema.test.ts`
- `pnpm typecheck`
