Block a user
[M-AI-04-07] 建立 Active Recall 真实业务 E2E 与受控切换验证
Blocking fix: infra unavailable now HARD FAIL
Change
- beforeAll: warn+return changed to fail() — no more silent skip
- Removed 11 if (!infraAvailable) return; guards
Behavior
- No…
[M-AI-04-07] 建立 Active Recall 真实业务 E2E 与受控切换验证
开发完成评论
完成内容
- 创建
test/m-ai-04-active-recall.e2e-spec.ts— 真实业务 E2E 测试套件,覆盖 12 核心阻断场景 - 创建
test/m-ai-04-e2e-setup.ts—…
[M-AI-04-06] 完成 Active Recall 状态兼容、可观测性与回滚机制
Non-blocking 问题修复
1. Engine 执行层观测指标未集成 → 死代码 ✅ 已修复
修复: 在 AiJobExecutionEngineImpl 注入 ActiveRecallObservabilityService,针对…
[M-AI-04-06] 完成 Active Recall 状态兼容、可观测性与回滚机制
开发完成评论
完成内容
- 实现
ActiveRecallObservabilityService— 结构化日志 + 10 个内存计数器 + 平均耗时统计 ActiveRecallService.submit()集成观测…
[M-AI-04-05] 将 Active Recall 提交入口接入统一 AiJob CreationService
Non-blocking 问题修复
2. ActiveRecallModule 冗余导入 AppConfigModule ✅ 已修复
- 移除
import { AppConfigModule }和imports: [..., AppConfigModule] - ActiveRecallModule…
[M-AI-04-05] 将 Active Recall 提交入口接入统一 AiJob CreationService
Blocking 问题修复
1. P0 跨用户 question 所有权校验缺失 ✅ 已修复
攻击路径: 用户 A 提交用户 B 的 questionId → createAnswer 成功(answer 属于…
[M-AI-04-05] 将 Active Recall 提交入口接入统一 AiJob CreationService
开发完成评论
完成内容
- 实现
ActiveRecallExecutionRouter— Feature FlagACTIVE_RECALL_ENGINE_MODE分流,支持白名单,Flag 查询失败 → 安全回退 legacy -…
[M-AI-04-04] 实现 Active Recall Projector、Artifact 与幂等结果写入
Non-blocking 问题回复
1. ReviewCard 幂等检查依赖业务内容而非 Job 关联 ✅ 已确认
- ReviewCard 表无 jobId 字段(旧链路异步生成),不可改表结构 -…
[M-AI-04-04] 实现 Active Recall Projector、Artifact 与幂等结果写入
开发完成评论
完成内容
- 实现
ActiveRecallProjector(ResultProjector接口,key=active_recall_projector) - 事务内原子写入:AiAnalysisResult(upsert)+…
[M-AI-04-03] 实现 Active Recall Executor 与输出验证
Non-blocking 问题回复
1. knowledgeItemContent 仍为空字符串 ✅ 已确认(范围限制)
- Executor scope 禁止直接查询业务表(Issue 明确:"不直接查询和修改…
[M-AI-04-03] 实现 Active Recall Executor 与输出验证
开发完成评论
完成内容
- 实现
ActiveRecallExecutor— 从 Snapshot 构造消息、通过 AiGatewayService 调用模型、返回原始输出 - 实现 `ActiveRecallBusinessValid…
[M-AI-04-02] 注册 Active Recall Job Definition 与输入 Snapshot
Non-blocking 问题修复(第 2 轮)
3. Definition 与 SnapshotBuilder 的值重复硬编码 ✅ 已修复
修复: SnapshotBuilder 注入 JobDefinitionRegistry,在 build()…
[M-AI-04-02] 注册 Active Recall Job Definition 与输入 Snapshot
Non-blocking 问题修复
1. SnapshotBuilder 孤儿类 + 2. 接口签名不兼容 ✅ 已修复
问题: ActiveRecallSnapshotBuilder.build(userId, answerId) 2 参数 vs `SnapshotBuild…
[M-AI-04-02] 注册 Active Recall Job Definition 与输入 Snapshot
开发完成评论
完成内容
- 创建
ActiveRecallJobDefinition冻结常量 — 所有字段源自 M-AI-04-01 迁移契约 - 创建
ActiveRecallSnapshotBuilder— 加载答案+问…
[M-AI-04-01] 审计并冻结 Active Recall 新旧链路迁移契约
追加 Non-blocking 问题修复
7. audioFileId 非文本答案路径 ✅ 已修复
ActiveRecallAnswer模型包含audioFileId和answerType(schema.prisma:554-556),但当…
[M-AI-04-01] 审计并冻结 Active Recall 新旧链路迁移契约
Non-blocking 问题修复
3 个 Non-blocking 问题,均已修复:
4. 行号漂移 ✅ 已修复
- 文档行56
queue.constants.ts:1定义QUEUE_AI_ANALYSIS— 正确 - 文档行57…
[M-AI-04-01] 审计并冻结 Active Recall 新旧链路迁移契约
Blocking 问题修复
审核发现 3 个 Blocking 问题,均已修复:
1. Job Options 事实错误 ✅ 已修复
- 原: 文档声称
removeOnComplete: true, removeOnFail: 500-…
[M-AI-04-01] 审计并冻结 Active Recall 新旧链路迁移契约
开发完成评论
完成内容
- 完整审计
POST /api/active-recalls/:id/submit从 Controller → Service → Queue → Worker → AI Provider → Result Repository 的真实调用链…
[M-AI-04-04] 实现 Active Recall Projector、Artifact 与幂等结果写入