Files
MediaOrganizer/docs/adr/0009-conflict-detection-report-only.md
T
Shuery c1ed1795c2
CI / lint + test + build (push) Canceled after 0s
docs: 重写 README、新增项目报告与开发工具配置
- README 现代化重写:徽章区、特性一览、统一 GitHub 提示块格式、修正版本号与 AI 默认值
- 新增 docs/PROJECT_REPORT.md 学术项目报告(含许可证合规分析与死链修复记录)
- 收录 23 份 ADR 架构决策记录与 CONTEXT.md 领域术语表
- 新增开发配置:.editorconfig / .shellcheckrc / .markdownlint-cli2.jsonc
- .gitignore 补充 mo_map/、检查报告、编辑器临时文件
- 新增 config.example.json 配置模板(不含真实密钥)
2026-08-14 22:41:40 +08:00

1.4 KiB

同集冲突检测:仅检测 + 报告,不自动处理

多个来源文件识别到同一 (剧集, 季, 集) 时(如 1080p 与 720p 双版本、不同字幕组同集),链接阶段按官方多版本格式 - 2 去重静默完成——正确但不透明:用户无法知道哪些集存在多版本、无法指定保留版本。决定:新增 detect_conflicts(),识别成功的剧集条目按 剧集目录||SxxExx(含多集区间 E01-E02)聚合,同一 key 出现多个不同源 → 登记 CONFLICT_MAP,对照表新增「同集冲突」小节并列展示全部来源与目标,运行汇总打印冲突组数。

边界语义:① 仅检测 + 报告,不自动删任何链接(区别于 AB 的 revision 替换 Saga——硬链接库场景下自动替换风险大于收益);② Season 00 特典不参与(同名特典属正常多版本);③ 电影/音乐不参与(同标题多版本是 Jellyfin 官方支持的正常形态);④ 冲突条目在账本中同样可见——用户可用 --rerun 手动指定保留版本;⑤ 幂等:每次调用重建内存账本,不落盘。

Considered Options: 策略化 hold/replace(AB 式自动替换旧版本)——破坏性操作,且硬链接场景"旧版本"判定依赖下载器信息(本项目无下载器);仅靠 - 2 静默去重(原状)——正确但不可见,无法满足"指定保留版本"。