git:20260819.0abd537 to git:20260901.30f41df
1 added, 0 removed. Audit A to A.
# DOX — packages/automation-plugin/src/shared
Files in this directory. One row per source file.
| File | Purpose |
|------|---------|
| `automation-types.ts` | Types: AutomationScope, Visibility, RunMode, Sandbox, Concurrency, AutomationTrigger, AutomationAction, AutomationConfig, DiscoveredAutomation, RunStatus, RunRecord. Adds TriggerCategoryDescriptor + TriggerEventDescriptor (read-only picker descriptors); AutomationTrigger.events?: string[]; AutomationConfig.disabled?: boolean. RunRecord gains optional findings?: number (top-level bullet count from result.md; 0 for auto-archived empty; absent on old records). See change: add-automation-plugin. See change: redesign-automation-editor-and-board. See change: automation-ui-mockup-parity. AutomationAction.kind widened to string + optional `payload`; adds `ActionDescriptor`/`ActionPayloadField` types. See change: register-plugin-automation-events. Fan-out: `AutomationConfig.action` now optional + `actions?: AutomationAction[]` (mutually exclusive) + `maxConcurrentSpawns?`; `AutomationAction.count?`; `RunStatus` gains `stopped`; `RunRecord` gains `children?`/`parentRunId?`/`actionLabel?`/`warning?` and client-only `childRuns?`. See change: add-automation-concurrent-spawn. |
| `cron.ts` | Pure 5-field cron evaluator. `parseCron`, `nextFire`, `isValidCron`. No node deps. Moved from server/cron.ts so client editor + server scheduler share it. See change: redesign-automation-editor-and-board. |
+ | `work-source.ts` | Work-source contract types: `LeasedHandle<T>{item, leaseToken, idempotencyKey}` and `WorkSource<T>{next(n), ack(token), nack(token)}` — the generic fenced competing-consumers seam the engine uses for `schedule.batch` fan-out. `ack`/`nack` are conditional on the token being current (stale = no-op); `idempotencyKey` is item-derived (stable across redelivery). See change: automation-work-source-fanout. |