chore(release): v0.3.32

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-06 18:58:53 +08:00
1 parent 7972a8069e
commit 0f656f0f58
15 files changed
+27 -41

No files matched your search

+14
View File
@@ -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`。
+1 -1
View File
@@ -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)。
## 功能
+1 -1
View File
@@ -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",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@umt/web",
"version": "0.3.31",
"version": "0.3.32",
"private": true,
"type": "module",
"scripts": {
+1 -1
View File
@@ -1,5 +1,5 @@
{
"version": "0.3.31",
"version": "0.3.32",
"workspace": [
"./packages/adapters",
"./packages/agent",
+1 -2
View File
@@ -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),功能清单给智能体,前端插槽默认显示、不做开关;补字幕迁为样板。
-27
View File
@@ -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(只改文案字符串,不动其它线的逻辑)。
+1 -1
View File
@@ -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",
+1 -1
View File
@@ -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",
+1 -1
View File
@@ -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",
+1 -1
View File
@@ -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",
+1 -1
View File
@@ -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",
+1 -1
View File
@@ -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",
+1 -1
View File
@@ -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",
+1 -1
View File
@@ -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",