chore(release): v0.3.27

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
This commit is contained in:
rootandClaude Opus 5.5 committed 2026-10-03 21:49:03 +08:00
1 parent 871031d5ed
commit 0085e45ca7
15 files changed
+52 -40

No files matched your search

+1 -1
View File
@@ -17,7 +17,7 @@
## 当前状态
- 版本 v0.3.26,本机测试环境已部署。
- 版本 v0.3.27,本机测试环境已部署。
- 开发与发布约定见仓库根 [CLAUDE.md](../../CLAUDE.md)。
## 待办
+6 -27
View File
@@ -61,21 +61,10 @@
每批改动局部、带回归测试,按「计划 → 子代理实现 → 协调者验收」推进。
**T0 集数映射补丁**(刚上线功能的漏口,改动最小)
1. 整理向导只发用户改过的季集(`touched`),未改的交给服务端映射;待确认行在向导里标为未决。
2. 自动识别新建作品时排一次 `refreshMetadata`(刷新后已有逻辑会重算待确认 / 放行资源)。
3. 评估跳过 `episode_unresolved` 时写候选记录,订阅矩阵能看到原因。
**已完成(v0.3.27)**:T0 集数映射补丁、T1 静默卡死、T2 刮削准确度 1~3 与作品类型判定(见 CHANGELOG)。剩余:
**T1 静默卡死**(数据面稳定性,局部改动)
1. 下载:提交 upsert 遇到 removed 行时复活;同步不覆盖 importing / imported;连续多轮缺席才判移除。
2. 整理:巡检 running 且无活跃任务超过 N 分钟的记录,重新入队;库根离线改为开待处理而不是耗尽重试。
3. 获取:gates 不过时写延后并排重评,并发不计 stalled;幂等键只对在途 / 已完成生效;同 hash 已绑别的计划时结束或关联本计划。
**T2 刮削准确度**
1. 改身份:清该作品 tmdb 来源字段 → 排刷新 → 刷新完成后重刮(更新模式)。
2. 集 / 季元数据缺失时按 TMDB id 现取季详情;仍缺就记 skipped / partial,不写占位。
3. 覆盖策略加"更新本工具写过且未被改动的文件"(记写入 hash),作为缺省;元数据刷新有变化时自动排这种重刮。
4. 统一作品类型判定(修 `<tvshow>` 根元素);多集文件写多个 `<episodedetails>`。
**T2 刮削准确度(剩余)**
- 多集文件写多个 `<episodedetails>`(需 Kodi / Jellyfin 真机确认)。
**T3 获取正确性**
1. 订阅总带一个自己的收录版本(没有就建)。
@@ -89,21 +78,11 @@
3. 快照失败、TMDB 查询复查耗尽开待处理。
**T5 可见性**
- qB 离线、下载目录读不到容量、整理排除视频、自动刮削没排上:都开待处理或在记录上标原因;卡住事项恢复后自动关闭。
- qB 离线、下载目录读不到容量、自动刮削没排上:开待处理或在记录上标原因(整理排除视频、卡住事项自动关闭已在 v0.3.27 完成)。
**T6 真机验收**
- 一套 Emby / Jellyfin 实例验 NFO 识别;补动画 / 公开 BT / 绝对集号的真实样本;在 4380 按四个场景(PT 追更剧、ANi 番、综艺、电影洗版)端到端追到 NFO。读部署库需要用户放行(自动模式把它归为生产数据读取)。
## 执行(第一波,5 路并行)
## 执行
按文件归属切线,互不改同一文件;每路独立 worktree(`/opt/umt-wt/<线>`)、分支、测试库容器(端口 5544x)。迁移编号预分配,协调者按 A→E 顺序合并到 main,合并后跑全量 ci 再发布。
| 线 | 内容 | 主要文件 | 迁移号(如需要) | 测试库端口 |
| --- | --- | --- | --- | --- |
| A 集数补丁 | T0-1 向导只发改过的季集;T0-2 自动新建作品排刷新 | `apps/web/.../organize-wizard/`、`file-manager/{organize,identify}.ts`、`sources-identity/service/resolve.ts` | 0071 | 55441 |
| B 下载卡死 | T1-1 复活 removed 行、不覆盖 importing/imported、多轮缺席才判移除;同 hash 第二个计划 | `acquisition-organize/services/downloads.ts`、`packages/mapping/src/download.ts` | 0067 | 55442 |
| C 获取卡死 | T0-3 待确认写候选记录;T1-3 挡住写延后并排重评、并发不计 stalled、幂等键放开 failed/cancelled | `acquisition-organize/services/{acquisition,evaluate-autofill,subscriptions}.ts` | 0068 | 55443 |
| D 整理卡死 | T1-2 running 记录巡检重投、库根离线开待处理;排除视频不算成功;Move 后删 qB 任务失败可重试 | `acquisition-organize/{index,handlers}.ts`、`services/organize-{exec,finalize}.ts`、`packages/mapping/src/organize.ts` | 0069 | 55444 |
| E 刮削准确度 | T2-1 改身份清字段 + 刷新 + 重刮;T2-2 缺集元数据不写占位;T2-3 更新模式(写入 hash);T2-4 作品类型判定统一 | `services/{scrape,scrape-input}.ts`、`packages/domain/src/scrape`、`sources-identity/service/{identity-admin,metadata}.ts` | 0070 | 55445 |
第二波(第一波合并后):T3 获取正确性、T4 识别准确度、T5 可见性、多集 NFO、真机验收。
第一波(T0、T1、T2)已用 5 路并行完成并发布 v0.3.27:每路独立 worktree、分支、测试库容器,迁移号预分配,协调者合并后跑全量 ci。合并时发现一处两线交叉(种子被占用而取消的计划会被「失败可重试」规则立即重建),已修。下一波沿用这种做法:T3 获取正确性、T4 识别准确度、T5 可见性、多集 NFO、真机验收。