api-server/docs/issues/API-AI-R02-sourceDataVersion-enhancement.md
wangdl c88af39673
All checks were successful
Deploy API Server / build-and-deploy (push) Successful in 45s
feat: AI Runtime 完整业务逻辑实现
- runtime-internal.service: resolveSnapshot 自动重建、persistResult 5种jobType持久化、validateOutput 校验、convertQuizCandidates/convertFlashcardCandidates 候选转换、notifyJobComplete 通知、JOB_CANCELLED处理、heartbeat 双阶段更新+取消检测
- user-ai.service: createAnalysisJob 11步流程、cancelJob、publishQuiz/publishFlashcard、getAnalysis/listAnalyses等
- user-ai.controller: 20+ 用户API端点
- 新增服务: SnapshotBuilderService、PriorityRulesService、SnapshotCleanupService、JobReaperService
- 新增模块: admin-learning (CRUD管理)
- Prisma schema: cancelRequestedAt/cancelledAt/sourceBlockIds 字段、expiresAt 索引
- 文档: ai-runtime-user-api.md、Issue 记录

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-18 11:22:03 +08:00

44 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# API-AI-R02: sourceDataVersion 增强
## 基本信息
| 字段 | 值 |
|------|-----|
| Issue ID | API-AI-R02 |
| 类型 | Non-blocking / 增强 |
| 仓库 | api-server |
| 关联 Issue | API-AI-021 (Snapshot 版本化与过期) |
| 发现日期 | 2026-06-17 |
| 优先级 | P2 |
## 问题描述
`LearningAnalysisSnapshot.sourceDataVersion` 字段当前写入固定值 `'1.0'``snapshot-builder.service.ts:122`),但缺乏自动递增/校验机制。
### 当前状态
- 字段已写入:`sourceDataVersion: SOURCE_DATA_VERSION`(常量 `'1.0'`
- `resolveSnapshot` 已做版本匹配检查:`existing.sourceDataVersion === SOURCE_DATA_VERSION`
- 缺少:当聚合逻辑变更时自动检测并递增版本号的能力
### 期望增强
当以下任一变更发生时,`SOURCE_DATA_VERSION` 需要手动递增,但目前依赖开发者记忆:
1. `computeSignals` 信号计算公式变更
2. `getScoreWeights` 权重调整
3. `classifyMasteryLevel` 分类阈值变更
4. `BEHAVIOR_WINDOW_DAYS` / `SCORE_WINDOW_DAYS` 等窗口常量变更
5. 聚合查询字段增减
### 建议方案
- 方案 A在 CI 中对信号计算相关文件做 hashhash 变更时校验是否同步更新了 `SOURCE_DATA_VERSION`
- 方案 B`SOURCE_DATA_VERSION` 改为从信号逻辑的语义版本自动推导
- 方案 C在开发流程中增加 checklist变更信号逻辑时必须更新版本号
## 相关文件
- `src/modules/ai-runtime/snapshot-builder.service.ts`
- `src/modules/ai-runtime/internal/runtime-internal.service.ts:resolveSnapshot()`