From fb6c76875c400dc89e9c572454dbfa2f06ad5497 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 4 Oct 2026 00:10:13 +0800 Subject: [PATCH] chore(release): v0.3.28 Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei --- CHANGELOG.md | 31 +++++++++++++++++++++++++++++++ README.md | 2 +- apps/server/deno.json | 2 +- apps/web/package.json | 2 +- deno.json | 2 +- docs/plan/README.md | 2 +- docs/plan/system-review.md | 23 +++++------------------ packages/adapters/deno.json | 2 +- packages/agent/deno.json | 2 +- packages/contracts/deno.json | 2 +- packages/db/deno.json | 2 +- packages/domain/deno.json | 2 +- packages/mapping/deno.json | 2 +- packages/tasks/deno.json | 2 +- packages/testkit/deno.json | 2 +- 15 files changed, 49 insertions(+), 31 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d7f7454..993feae2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,37 @@ ## [Unreleased] +## [0.3.28] - 2026-10-04 + +系统梳理第二批:获取正确性、识别准确度、下载侧可见性、刮削与整理剩余项。迁移 `0073`、`0074`。 + +### 修复(获取) +- 订阅总带自己的收录版本:没有模板、没填质量预设、作品已有旧订阅的版本时也会建「默认版本」;旧的无版本订阅在首次评估时补建。之前这类订阅永远不下载。 +- 有升级目标的洗版订阅到规则组最高档才完成,不再拿到第一个版本就完成。 +- 「接续后续季」不再下订阅季之前的季。 +- 按收录版本重评时先排序择优;重评范围从最近 50 条放宽到 500 条并按季 / 缺集过滤;手动下载中的集计入在途,订阅不重复下。 +- 新作品收录并发评估时只建一个订阅。 + +### 修复(识别) +- bgm 按标题搜索的结果要与资源名称核对,唯一高分才采用;投影出的 TMDB 结果再与原标题比对。 +- 人工指定只在年份与类型相容时回填识别缓存,Agent / 系统指定不回填;读缓存时也核对。 +- 合并识别事项按年份与类型分组,组内不相容的资源不随组锁定。 +- 季表不计资源懒建的临时季;改 TMDB 映射时删旧作品的 tmdb 别名;合并作品时内容单元迁到目标作品。 +- 站点快照连续失败 3 次开待处理(恢复后关闭);TMDB 复查耗尽、本地命中但查不到时开待处理;详情拉取失败不写负缓存。 + +### 修复(下载) +- 下载器连不上满 10 分钟、下载目录读不到容量时开待处理,恢复后自动关闭;下载面板单独显示「下载目录读不到」。 +- 下载器可设「H&R 未知也可清理」(缺省关)。 +- 季包先暂停添加、选完文件再开始(磁力需 qB 4.5+),元数据迟到时延后选文件。 +- 取消与提交并发不再复活计划;收单未确认的提交补做完成判定;排队任务也受阈值暂停;停用的下载器上在途任务继续同步。 + +### 修复(刮削与整理) +- 多集文件的 NFO 每集写一块 ``;综艺按日期的期数写分集 NFO。 +- 入库后自动刮削缺省开启(已保存过设置的沿用原值);没排上时在整理记录上记「未刮削」及原因。 +- 平铺目录只刮本作品视频,多作品同目录时图片按视频名命名;图片扩展名按实际类型;取消时记录不停在进行中。 +- 非洗版「替换」新建资产;不是视频的文件移入回收站并开待处理;混合包里明显不是本作品的视频降为待确认(`title_mismatch`)。 +- 回收站清除先删文件再删记录;跨卷 Move 删源前全量校验;整理补元数据带超时。 + ## [0.3.27] - 2026-10-03 按 2026-10-03 系统梳理(`docs/plan/system-review.md`)修第一批:静默卡死、刮削准确度、集数映射漏口。迁移 `0067`、`0069`、`0070`。 diff --git a/README.md b/README.md index 48066102..1a9b0ac4 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ 内部使用、Agent 自动化优先的媒体整理入库平台。需求基线见 [media_automation_requirements_architecture_v0.7.md](media_automation_requirements_architecture_v0.7.md)。 -当前版本 v0.3.27,本机测试环境已部署;各版变化见 [CHANGELOG.md](CHANGELOG.md)。业务逻辑以 MoviePilot v3 为参考,逐项对照见 [MoviePilot v3 对照](docs/porting/moviepilot-v3-comparison.md)。正在推进的计划与待办见 [docs/plan](docs/plan/README.md),开发与发布约定见 [CLAUDE.md](CLAUDE.md)。 +当前版本 v0.3.28,本机测试环境已部署;各版变化见 [CHANGELOG.md](CHANGELOG.md)。业务逻辑以 MoviePilot v3 为参考,逐项对照见 [MoviePilot v3 对照](docs/porting/moviepilot-v3-comparison.md)。正在推进的计划与待办见 [docs/plan](docs/plan/README.md),开发与发布约定见 [CLAUDE.md](CLAUDE.md)。 ## 功能 diff --git a/apps/server/deno.json b/apps/server/deno.json index ee943a84..24126cdf 100644 --- a/apps/server/deno.json +++ b/apps/server/deno.json @@ -1,6 +1,6 @@ { "name": "@umt/server", - "version": "0.3.27", + "version": "0.3.28", "exports": { ".": "./src/main.ts" }, "tasks": { "dev": "deno run -A --watch --env-file=../../.env src/main.ts", diff --git a/apps/web/package.json b/apps/web/package.json index 51e0343a..c037c769 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -1,6 +1,6 @@ { "name": "@umt/web", - "version": "0.3.27", + "version": "0.3.28", "private": true, "type": "module", "scripts": { diff --git a/deno.json b/deno.json index a4eae9e8..f4653b56 100644 --- a/deno.json +++ b/deno.json @@ -1,5 +1,5 @@ { - "version": "0.3.27", + "version": "0.3.28", "workspace": [ "./packages/adapters", "./packages/agent", diff --git a/docs/plan/README.md b/docs/plan/README.md index a30c114c..cfef3fc7 100644 --- a/docs/plan/README.md +++ b/docs/plan/README.md @@ -17,7 +17,7 @@ ## 当前状态 -- 版本 v0.3.27,本机测试环境已部署。 +- 版本 v0.3.28,本机测试环境已部署。 - 开发与发布约定见仓库根 [CLAUDE.md](../../CLAUDE.md)。 ## 待办 diff --git a/docs/plan/system-review.md b/docs/plan/system-review.md index 464482ba..3b921116 100644 --- a/docs/plan/system-review.md +++ b/docs/plan/system-review.md @@ -61,28 +61,15 @@ 每批改动局部、带回归测试,按「计划 → 子代理实现 → 协调者验收」推进。 -**已完成(v0.3.27)**:T0 集数映射补丁、T1 静默卡死、T2 刮削准确度 1~3 与作品类型判定(见 CHANGELOG)。剩余: +**已完成**:v0.3.27 完成 T0、T1、T2;v0.3.28 完成 T3、T4、T5 与多集 NFO、综艺期数、整理剩余隐患(见 CHANGELOG)。剩余: -**T2 刮削准确度(剩余)** -- 多集文件写多个 ``(需 Kodi / Jellyfin 真机确认)。 - -**T3 获取正确性** -1. 订阅总带一个自己的收录版本(没有就建)。 -2. 有升级目标的收录版本完成条件加 `pri ≥ targetPri`。 -3. 「接续后续季」评估加季下界,与矩阵同口径。 -4. 按收录版本重评时先排序再预留;去掉 50 条上限改为按缺集查;手动计划计入在途。 - -**T4 识别准确度** -1. bgm 候选用资源原标题再核对,不再取第一条直接用。 -2. 识别缓存回填区分来源,人工 / Agent 指定不扩散到不同年份 / 类型;合并事项分组键带年份与类型。 -3. 快照失败、TMDB 查询复查耗尽开待处理。 - -**T5 可见性** -- qB 离线、下载目录读不到容量、自动刮削没排上:开待处理或在记录上标原因(整理排除视频、卡住事项自动关闭已在 v0.3.27 完成)。 +- 规则组被订阅 / 收录版本引用时停用要拦截或提示(`routes/rule-groups.ts`)。 +- 合并作品后对目标作品重算集数。 +- 集 NFO 的 uniqueid / 演职员(需改元数据存储;MP 金样集演职员为空,当前登记为偏离)。 **T6 真机验收** - 一套 Emby / Jellyfin 实例验 NFO 识别;补动画 / 公开 BT / 绝对集号的真实样本;在 4380 按四个场景(PT 追更剧、ANi 番、综艺、电影洗版)端到端追到 NFO。读部署库需要用户放行(自动模式把它归为生产数据读取)。 ## 执行 -第一波(T0、T1、T2)已用 5 路并行完成并发布 v0.3.27:每路独立 worktree、分支、测试库容器,迁移号预分配,协调者合并后跑全量 ci。合并时发现一处两线交叉(种子被占用而取消的计划会被「失败可重试」规则立即重建),已修。下一波沿用这种做法:T3 获取正确性、T4 识别准确度、T5 可见性、多集 NFO、真机验收。 +第一波(T0、T1、T2)5 路、第二波(T3、T4、T5、刮削与整理剩余)4 路并行完成,分别发布 v0.3.27、v0.3.28:每路独立 worktree、分支、测试库容器,迁移号预分配,协调者合并后跑全量 ci。合并时发现一处两线交叉(种子被占用而取消的计划会被「失败可重试」规则立即重建),已修。接下来是 T6 真机验收。 diff --git a/packages/adapters/deno.json b/packages/adapters/deno.json index b9ec5d0e..1e13b534 100644 --- a/packages/adapters/deno.json +++ b/packages/adapters/deno.json @@ -1,6 +1,6 @@ { "name": "@umt/adapters", - "version": "0.3.27", + "version": "0.3.28", "exports": { ".": "./src/index.ts", "./fsworker": "./src/fs/fsworker.ts" }, "tasks": { "test": "deno run -A npm:vitest run", diff --git a/packages/agent/deno.json b/packages/agent/deno.json index 3fab8342..654ab3b8 100644 --- a/packages/agent/deno.json +++ b/packages/agent/deno.json @@ -1,6 +1,6 @@ { "name": "@umt/agent", - "version": "0.3.27", + "version": "0.3.28", "exports": { ".": "./src/index.ts" }, "tasks": { "test": "deno run -A npm:vitest run", diff --git a/packages/contracts/deno.json b/packages/contracts/deno.json index 584d3df8..023fe001 100644 --- a/packages/contracts/deno.json +++ b/packages/contracts/deno.json @@ -1,6 +1,6 @@ { "name": "@umt/contracts", - "version": "0.3.27", + "version": "0.3.28", "exports": { ".": "./src/index.ts" }, "tasks": { "test": "deno run -A npm:vitest run", diff --git a/packages/db/deno.json b/packages/db/deno.json index 45d8e5d1..1147e668 100644 --- a/packages/db/deno.json +++ b/packages/db/deno.json @@ -1,6 +1,6 @@ { "name": "@umt/db", - "version": "0.3.27", + "version": "0.3.28", "exports": { ".": "./src/index.ts" }, "tasks": { "test": "deno run -A npm:vitest run", diff --git a/packages/domain/deno.json b/packages/domain/deno.json index 6aa87d96..d5f43a1b 100644 --- a/packages/domain/deno.json +++ b/packages/domain/deno.json @@ -1,6 +1,6 @@ { "name": "@umt/domain", - "version": "0.3.27", + "version": "0.3.28", "exports": { ".": "./src/index.ts" }, "tasks": { "test": "deno run -A npm:vitest run", diff --git a/packages/mapping/deno.json b/packages/mapping/deno.json index 07dddbd6..e1aba2a7 100644 --- a/packages/mapping/deno.json +++ b/packages/mapping/deno.json @@ -1,6 +1,6 @@ { "name": "@umt/mapping", - "version": "0.3.27", + "version": "0.3.28", "exports": { ".": "./src/index.ts" }, "tasks": { "test": "deno run -A npm:vitest run", diff --git a/packages/tasks/deno.json b/packages/tasks/deno.json index 2603c9d8..350ccee2 100644 --- a/packages/tasks/deno.json +++ b/packages/tasks/deno.json @@ -1,6 +1,6 @@ { "name": "@umt/tasks", - "version": "0.3.27", + "version": "0.3.28", "exports": { ".": "./src/index.ts" }, "tasks": { "test": "deno run -A npm:vitest run", diff --git a/packages/testkit/deno.json b/packages/testkit/deno.json index 681272d6..87c3be73 100644 --- a/packages/testkit/deno.json +++ b/packages/testkit/deno.json @@ -1,6 +1,6 @@ { "name": "@umt/testkit", - "version": "0.3.27", + "version": "0.3.28", "exports": { ".": "./src/index.ts" }, "tasks": { "test": "deno run -A npm:vitest run",