- JobDefinition 接口冻结(job-definition.types.ts):对齐 ADR-003 §2.1, 涵盖 queue/execution/input/output/prompt/model/credential/security - JobDefinitionRegistry:启动时注册、运行时只读、Object.freeze 防篡改 - 10 类校验错误:DuplicateJobType/UnknownJobType/InvalidJobType/ InvalidQueueName/MissingSchema/InvalidTimeout/InvalidRetries/ InvalidCredentialMode/InvalidPromptKey/MissingBackoff - 43 个单元测试覆盖所有校验路径 + 顺序稳定性 + 禁止覆盖 - 更新 AiJobModule 注册新 Provider Co-Authored-By: Claude <noreply@anthropic.com>
- AiJobStateMachine: 5 状态(queued/running/succeeded/failed/cancelled)、 合法/非法迁移验证、终态判断、双向 Shadow Write 映射 - AiJobLifecycleRepository: 唯一 lifecycleStatus 写入入口、 CAS(条件 UPDATE WHERE lifecycleStatus IN (...))抢锁/续锁/标记成功/失败/取消、 可选 tx 参数支持 Projector 事务内调用 - requestCancellation: queued 直接取消 → cancelled、 running 设置 cancelRequestedAt 信号 - 6 个类型化错误(JobLockConflict/JobNotActive/JobAlreadyTerminal/ JobNotCancellable/JobExtendLock/IllegalStateTransition) - 41 个单元测试全部通过 Co-Authored-By: Claude <noreply@anthropic.com>