diff --git a/CHANGELOG.md b/CHANGELOG.md index 5be80821..2784d8c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,20 @@ ## [Unreleased] +## [0.3.32] - 2026-10-06 + +界面第二轮与 TMDB 多语言规则。迁移 `0083`。 + +### 调整 +- 智能体:切换会话不再整页闪烁重挂载;「对话 / 自动巡检」分栏跟随当前会话并写进地址,保留列表滚动位置、子会话所在父行自动展开;草稿按会话保留;切回看过的会话直接铺出历史;抽屉与整页互相切换(会话页加「在侧边打开」,在智能体页按 Ctrl+J 聚焦页面输入框)、关闭后焦点归还、路由变化时新对话上下文跟随;列表改用一行的紧凑分页。 +- 发现:分「推荐」与「探索」。推荐含 TMDB 流行趋势 / 正在热映 / 热门 / 即将上映 / 正在播出 / 高分、豆瓣各榜单、Bangumi 今日放送与热门趋势;探索按来源(TMDB / 豆瓣 / Bangumi)筛选与关键词搜索。卡片显示本地状态,可直接订阅、搜索资源。豆瓣 / Bangumi 走不登录的 HTTP 接口,请求统一缓存。 +- 整理:只保留「整理记录」,整理队列改为标题栏按钮展开;记录按状态、类型、整理方式、媒体库目录、分类、来源、时间筛选。 +- 界面上表示处理状态的「入库」统一改为「整理」(如已整理、未整理、整理后自动刮削);真正是否被媒体服务器收录由媒体服务器决定。 +- 系统只留日志、运行状态、设置:日志页合并任务、定时与自动、登录、审计,可实时追加、勾选后问智能体,定时任务作为日志页的页签;运行状态加入 CPU、内存、网络、磁盘读写与趋势、各进程 CPU,首页换成运行状态简版卡。登录失败写审计。 +- 设置按「接入 / 流程 / 系统」重排为 12 个分区,加搜索定位与缓存分区(按区查看与清空),旧链接自动跳转;同一设置的不同叫法统一。 +- TMDB 多语言数据只保留简体中文、繁体中文、英文与作品原语言(别名、译名、简介、识别与按作品搜资源都按此);旧数据清理脚本 `scripts/tmdb-alias-language-cleanup.ts`。 +- 发布:`.env.deploy` 配 `BUILD_PROXY` 时构建镜像自动经代理。 + ## [0.3.31] - 2026-10-06 迁移 `0078`。 diff --git a/README.md b/README.md index c117d9ec..0e421d2f 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.31,本机测试环境已部署;各版变化见 [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.32,本机测试环境已部署;各版变化见 [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 5c856240..f1a48489 100644 --- a/apps/server/deno.json +++ b/apps/server/deno.json @@ -1,6 +1,6 @@ { "name": "@umt/server", - "version": "0.3.31", + "version": "0.3.32", "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 d86e7537..bf413fb5 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -1,6 +1,6 @@ { "name": "@umt/web", - "version": "0.3.31", + "version": "0.3.32", "private": true, "type": "module", "scripts": { diff --git a/deno.json b/deno.json index 7ed7a623..4fed18b4 100644 --- a/deno.json +++ b/deno.json @@ -1,5 +1,5 @@ { - "version": "0.3.31", + "version": "0.3.32", "workspace": [ "./packages/adapters", "./packages/agent", diff --git a/docs/plan/README.md b/docs/plan/README.md index 0476b5b7..8d427893 100644 --- a/docs/plan/README.md +++ b/docs/plan/README.md @@ -17,7 +17,7 @@ ## 当前状态 -- 版本 v0.3.31,本机测试环境已部署。 +- 版本 v0.3.32,本机测试环境已部署。 - 开发与发布约定见仓库根 [CLAUDE.md](../../CLAUDE.md)。 ## 待办 @@ -31,7 +31,6 @@ ### 进行中 -- 界面第二轮:[ui-round-2.md](ui-round-2.md),5 路并行,用户最后验收。 - 下一轮(界面第二轮合并后): - 统一元数据缓存:TMDB / 豆瓣 / Bangumi 共用「来源 × 资源类型」TTL 策略;进程内存一级 + PG `kv_cache` 二级,LISTEN/NOTIFY 跨进程失效;过期先用旧值后台刷新;关注中作品续期不淘汰、进入关注时预热(各季、剧集组、图片);同请求合并;按 region 统计命中率。刮削顺带接 TMDB `logos` 写 `clearlogo.png`。fanart.tv 暂不接(用户 2026-10-06 定)。 - 生命周期事件与功能模块约定:广播事件 + 链式钩子(参考 MoviePilot EventType / ChainEventType),功能清单给智能体,前端插槽默认显示、不做开关;补字幕迁为样板。 diff --git a/docs/plan/ui-round-2.md b/docs/plan/ui-round-2.md deleted file mode 100644 index 36106a9d..00000000 --- a/docs/plan/ui-round-2.md +++ /dev/null @@ -1,27 +0,0 @@ -# 界面第二轮(2026-10-06 用户提出) - -用户最后统一验收。每条线独立 worktree、分支、测试库,迁移号与端口预分配,协调者合并后跑全量 ci 再发布。 - -## 需求与决定 - -1. **智能体**:对话切换(「对话」与「自动巡检」两栏、会话之间、抽屉与整页之间)有不少 bug;逐步检查前端切换流畅性与窗口位置变化。 -2. **发现**:资源不全、没有 TMDB 热门。参考 MoviePilot 的推荐 / 探索:做一个综合页,或按来源 / 类型可筛选、可拆分。 -3. **整理**:只保留「整理记录」一页;整理队列学 MP 做成一个按钮,点开展开看当前队列状态;记录加筛选。 -4. **「入库」口径**:真正入库取决于媒体服务器有没有扫到,我们只负责处理——元数据、NFO、图片、按规则归到正确的目录。界面上表示我们处理状态的「入库 / 已入库 / 未入库」改为「整理 / 已整理 / 未整理」,不暗示媒体服务器状态;术语表同步。 -5. **系统**:只保留三块—— - - **日志**:任务日志、登录日志、定时 / 自动任务运行日志、审计等合成一个日志模块,合理筛选,可流式查看(实时追加),可一键把选中的日志交给智能体分析问题;不拆得太细。 - - **运行状态**:首页放简版;详细版在系统里;参考 MP,加入 CPU、内存等资源监控。 - - **设置**:重新梳理分类与功能分区。 -6. 发布脚本:构建镜像时经宿主代理(`.env.deploy` 配置了就自动带构建参数),避免下载 Deno 运行时卡住。(协调者自己做) - -## 分线 - -| 线 | 内容 | 主要文件 | 迁移号 | 测试库 / API / web 端口 | -| --- | --- | --- | --- | --- | -| S 智能体切换 | 需求 1 | `apps/web/app/components/{agent,agentui}/`、`routes/console/agent*.tsx`、智能体抽屉、相关 server 接口最小改动 | 0080 | 55441 / 4391 / 5181 | -| T 发现 | 需求 2 | `routes/console/discover.tsx`、`components/discover/`、server 发现接口(search 模块的 discover、TMDB 适配器的列表接口、meta 源) | 0081 | 55442 / 4392 / 5182 | -| U 整理与入库口径 | 需求 3、4 | `routes/console/{organize,organize.$id,files,files.trash}.tsx`、`components/{organize,files}/`、`docs/design/glossary.md`、其余页面里「入库」文案的替换 | 0082 | 55443 / 4393 / 5183 | -| V 日志与运行状态 | 需求 5 的日志、运行状态 | `routes/console/{tasks,tasks.$id,audit,engine*,schedules,status,home}.tsx` 中相关部分、侧栏 `nav.ts`、新日志模块(server + web)、状态采集 | 0083 | 55444 / 4394 / 5184 | -| W 设置 | 需求 5 的设置 | `routes/console/settings.tsx`、`components/settings/`、`contracts/settings.ts` 只做分组展示所需 | 0084 | 55445 / 4395 / 5185 | - -冲突热点:`nav.ts` 归 V(其它线需要改侧栏时在汇报里说明,由协调者合并时处理);首页归 V;术语替换归 U(只改文案字符串,不动其它线的逻辑)。 diff --git a/packages/adapters/deno.json b/packages/adapters/deno.json index 6594f231..e64f76be 100644 --- a/packages/adapters/deno.json +++ b/packages/adapters/deno.json @@ -1,6 +1,6 @@ { "name": "@umt/adapters", - "version": "0.3.31", + "version": "0.3.32", "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 28a03429..f43eda78 100644 --- a/packages/agent/deno.json +++ b/packages/agent/deno.json @@ -1,6 +1,6 @@ { "name": "@umt/agent", - "version": "0.3.31", + "version": "0.3.32", "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 3714f1ca..43ca1632 100644 --- a/packages/contracts/deno.json +++ b/packages/contracts/deno.json @@ -1,6 +1,6 @@ { "name": "@umt/contracts", - "version": "0.3.31", + "version": "0.3.32", "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 5678f1be..4eb08dcb 100644 --- a/packages/db/deno.json +++ b/packages/db/deno.json @@ -1,6 +1,6 @@ { "name": "@umt/db", - "version": "0.3.31", + "version": "0.3.32", "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 6d6cd55c..87a12fde 100644 --- a/packages/domain/deno.json +++ b/packages/domain/deno.json @@ -1,6 +1,6 @@ { "name": "@umt/domain", - "version": "0.3.31", + "version": "0.3.32", "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 360f5442..86276d18 100644 --- a/packages/mapping/deno.json +++ b/packages/mapping/deno.json @@ -1,6 +1,6 @@ { "name": "@umt/mapping", - "version": "0.3.31", + "version": "0.3.32", "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 f42c41d1..4fc2e6b3 100644 --- a/packages/tasks/deno.json +++ b/packages/tasks/deno.json @@ -1,6 +1,6 @@ { "name": "@umt/tasks", - "version": "0.3.31", + "version": "0.3.32", "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 0423f0b0..49976696 100644 --- a/packages/testkit/deno.json +++ b/packages/testkit/deno.json @@ -1,6 +1,6 @@ { "name": "@umt/testkit", - "version": "0.3.31", + "version": "0.3.32", "exports": { ".": "./src/index.ts" }, "tasks": { "test": "deno run -A npm:vitest run",