chore(release): v0.3.28
Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
This commit is contained in:
1 parent
1aebb519ef
commit
fb6c76875c
15 files changed
+49
-31
No files matched your search
@@ -4,6 +4,37 @@
|
|||||||
|
|
||||||
## [Unreleased]
|
## [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 每集写一块 `<episodedetails>`;综艺按日期的期数写分集 NFO。
|
||||||
|
- 入库后自动刮削缺省开启(已保存过设置的沿用原值);没排上时在整理记录上记「未刮削」及原因。
|
||||||
|
- 平铺目录只刮本作品视频,多作品同目录时图片按视频名命名;图片扩展名按实际类型;取消时记录不停在进行中。
|
||||||
|
- 非洗版「替换」新建资产;不是视频的文件移入回收站并开待处理;混合包里明显不是本作品的视频降为待确认(`title_mismatch`)。
|
||||||
|
- 回收站清除先删文件再删记录;跨卷 Move 删源前全量校验;整理补元数据带超时。
|
||||||
|
|
||||||
## [0.3.27] - 2026-10-03
|
## [0.3.27] - 2026-10-03
|
||||||
|
|
||||||
按 2026-10-03 系统梳理(`docs/plan/system-review.md`)修第一批:静默卡死、刮削准确度、集数映射漏口。迁移 `0067`、`0069`、`0070`。
|
按 2026-10-03 系统梳理(`docs/plan/system-review.md`)修第一批:静默卡死、刮削准确度、集数映射漏口。迁移 `0067`、`0069`、`0070`。
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
内部使用、Agent 自动化优先的媒体整理入库平台。需求基线见 [media_automation_requirements_architecture_v0.7.md](media_automation_requirements_architecture_v0.7.md)。
|
内部使用、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)。
|
||||||
|
|
||||||
## 功能
|
## 功能
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@umt/server",
|
"name": "@umt/server",
|
||||||
"version": "0.3.27",
|
"version": "0.3.28",
|
||||||
"exports": { ".": "./src/main.ts" },
|
"exports": { ".": "./src/main.ts" },
|
||||||
"tasks": {
|
"tasks": {
|
||||||
"dev": "deno run -A --watch --env-file=../../.env src/main.ts",
|
"dev": "deno run -A --watch --env-file=../../.env src/main.ts",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@umt/web",
|
"name": "@umt/web",
|
||||||
"version": "0.3.27",
|
"version": "0.3.28",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"version": "0.3.27",
|
"version": "0.3.28",
|
||||||
"workspace": [
|
"workspace": [
|
||||||
"./packages/adapters",
|
"./packages/adapters",
|
||||||
"./packages/agent",
|
"./packages/agent",
|
||||||
|
|||||||
+1
-1
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
## 当前状态
|
## 当前状态
|
||||||
|
|
||||||
- 版本 v0.3.27,本机测试环境已部署。
|
- 版本 v0.3.28,本机测试环境已部署。
|
||||||
- 开发与发布约定见仓库根 [CLAUDE.md](../../CLAUDE.md)。
|
- 开发与发布约定见仓库根 [CLAUDE.md](../../CLAUDE.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 刮削准确度(剩余)**
|
- 规则组被订阅 / 收录版本引用时停用要拦截或提示(`routes/rule-groups.ts`)。
|
||||||
- 多集文件写多个 `<episodedetails>`(需 Kodi / Jellyfin 真机确认)。
|
- 合并作品后对目标作品重算集数。
|
||||||
|
- 集 NFO 的 uniqueid / 演职员(需改元数据存储;MP 金样集演职员为空,当前登记为偏离)。
|
||||||
**T3 获取正确性**
|
|
||||||
1. 订阅总带一个自己的收录版本(没有就建)。
|
|
||||||
2. 有升级目标的收录版本完成条件加 `pri ≥ targetPri`。
|
|
||||||
3. 「接续后续季」评估加季下界,与矩阵同口径。
|
|
||||||
4. 按收录版本重评时先排序再预留;去掉 50 条上限改为按缺集查;手动计划计入在途。
|
|
||||||
|
|
||||||
**T4 识别准确度**
|
|
||||||
1. bgm 候选用资源原标题再核对,不再取第一条直接用。
|
|
||||||
2. 识别缓存回填区分来源,人工 / Agent 指定不扩散到不同年份 / 类型;合并事项分组键带年份与类型。
|
|
||||||
3. 快照失败、TMDB 查询复查耗尽开待处理。
|
|
||||||
|
|
||||||
**T5 可见性**
|
|
||||||
- qB 离线、下载目录读不到容量、自动刮削没排上:开待处理或在记录上标原因(整理排除视频、卡住事项自动关闭已在 v0.3.27 完成)。
|
|
||||||
|
|
||||||
**T6 真机验收**
|
**T6 真机验收**
|
||||||
- 一套 Emby / Jellyfin 实例验 NFO 识别;补动画 / 公开 BT / 绝对集号的真实样本;在 4380 按四个场景(PT 追更剧、ANi 番、综艺、电影洗版)端到端追到 NFO。读部署库需要用户放行(自动模式把它归为生产数据读取)。
|
- 一套 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 真机验收。
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@umt/adapters",
|
"name": "@umt/adapters",
|
||||||
"version": "0.3.27",
|
"version": "0.3.28",
|
||||||
"exports": { ".": "./src/index.ts", "./fsworker": "./src/fs/fsworker.ts" },
|
"exports": { ".": "./src/index.ts", "./fsworker": "./src/fs/fsworker.ts" },
|
||||||
"tasks": {
|
"tasks": {
|
||||||
"test": "deno run -A npm:vitest run",
|
"test": "deno run -A npm:vitest run",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@umt/agent",
|
"name": "@umt/agent",
|
||||||
"version": "0.3.27",
|
"version": "0.3.28",
|
||||||
"exports": { ".": "./src/index.ts" },
|
"exports": { ".": "./src/index.ts" },
|
||||||
"tasks": {
|
"tasks": {
|
||||||
"test": "deno run -A npm:vitest run",
|
"test": "deno run -A npm:vitest run",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@umt/contracts",
|
"name": "@umt/contracts",
|
||||||
"version": "0.3.27",
|
"version": "0.3.28",
|
||||||
"exports": { ".": "./src/index.ts" },
|
"exports": { ".": "./src/index.ts" },
|
||||||
"tasks": {
|
"tasks": {
|
||||||
"test": "deno run -A npm:vitest run",
|
"test": "deno run -A npm:vitest run",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@umt/db",
|
"name": "@umt/db",
|
||||||
"version": "0.3.27",
|
"version": "0.3.28",
|
||||||
"exports": { ".": "./src/index.ts" },
|
"exports": { ".": "./src/index.ts" },
|
||||||
"tasks": {
|
"tasks": {
|
||||||
"test": "deno run -A npm:vitest run",
|
"test": "deno run -A npm:vitest run",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@umt/domain",
|
"name": "@umt/domain",
|
||||||
"version": "0.3.27",
|
"version": "0.3.28",
|
||||||
"exports": { ".": "./src/index.ts" },
|
"exports": { ".": "./src/index.ts" },
|
||||||
"tasks": {
|
"tasks": {
|
||||||
"test": "deno run -A npm:vitest run",
|
"test": "deno run -A npm:vitest run",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@umt/mapping",
|
"name": "@umt/mapping",
|
||||||
"version": "0.3.27",
|
"version": "0.3.28",
|
||||||
"exports": { ".": "./src/index.ts" },
|
"exports": { ".": "./src/index.ts" },
|
||||||
"tasks": {
|
"tasks": {
|
||||||
"test": "deno run -A npm:vitest run",
|
"test": "deno run -A npm:vitest run",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@umt/tasks",
|
"name": "@umt/tasks",
|
||||||
"version": "0.3.27",
|
"version": "0.3.28",
|
||||||
"exports": { ".": "./src/index.ts" },
|
"exports": { ".": "./src/index.ts" },
|
||||||
"tasks": {
|
"tasks": {
|
||||||
"test": "deno run -A npm:vitest run",
|
"test": "deno run -A npm:vitest run",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@umt/testkit",
|
"name": "@umt/testkit",
|
||||||
"version": "0.3.27",
|
"version": "0.3.28",
|
||||||
"exports": { ".": "./src/index.ts" },
|
"exports": { ".": "./src/index.ts" },
|
||||||
"tasks": {
|
"tasks": {
|
||||||
"test": "deno run -A npm:vitest run",
|
"test": "deno run -A npm:vitest run",
|
||||||
|
|||||||
Reference in new issue
Block a user