2 Commits

Author SHA1 Message Date
wangdl
e4b922e7e4 feat: M-AI-03 Job Definition Registry 与注册校验
All checks were successful
Deploy API Server / build-and-unit (push) Successful in 32s
Deploy API Server / current-integration (push) Successful in 28s
Deploy API Server / backward-compat (push) Successful in 0s
Deploy API Server / deploy (push) Successful in 58s
- 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>
2026-06-20 17:24:57 +08:00
wangdl
b08d27a449 feat: M-AI-03 AiJob 状态机与原子状态仓储
All checks were successful
Deploy API Server / build-and-unit (push) Successful in 33s
Deploy API Server / current-integration (push) Successful in 29s
Deploy API Server / backward-compat (push) Successful in 0s
Deploy API Server / deploy (push) Successful in 1m4s
- 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>
2026-06-20 17:17:12 +08:00