Files
UHD_Media_Tool/docs/plan/README.md
T
rootandClaude Opus 5.5 b61335eaf6 test: 测试按行为命名、server 测试统一到 test/、PG 测试分组并行
- server 的 src/modules/*/__tests__ 挪到 test/<模块>/;e2e 去掉 eN- 前缀,
  w5a2 / v2 / search2 / *-dh1 / *-md1 / *-md2、web 的 agui3 / search2、domain 的 id2 / id3 改为按行为命名
- vitest 分三组:unit、pg(真实 PG + 假引擎,文件并行,最多 6 个)、serial(真实引擎 / worker / e2e,串行);
  pg 组用例超时放宽到 60s(迁移类用例并行时排队等 schema 锁)。server 测试 615s → 约 350s
- CLAUDE.md 补测试约定;待办补 harness 去重与 continuous-series 偶发超时(疑似 Slot 评估竞争)
- ADR-004 补充:维持 Deno,记录实际只用到 --allow-run 白名单

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-02 16:54:04 +08:00

40 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 计划与待办
这里只放**正在推进**的计划和待办。做完的计划、验收和发布记录直接删除,版本变化只记在 CHANGELOG;需要追溯时查 git 历史(2026-10-02 清理前的全部过程文档在 `ceb66f8`)。
## 文档放哪
| 内容 | 位置 |
| --- | --- |
| 需求基线 | [media_automation_requirements_architecture_v0.7.md](../../media_automation_requirements_architecture_v0.7.md) |
| 架构决策 | [docs/adr/](../adr/) |
| 设计规范(界面、领域) | [docs/design/](../design/) |
| 怎么用、怎么运维 | [docs/runbook/](../runbook/)(开发环境见 [dev.md](../runbook/dev.md),部署见 [deploy.md](../runbook/deploy.md)) |
| 与 MoviePilot 的业务对照(持续维护) | [docs/porting/moviepilot-v3-comparison.md](../porting/moviepilot-v3-comparison.md) 及同目录各移植文档 |
| 版本变化 | 仓库根 [CHANGELOG.md](../../CHANGELOG.md),每个版本几行;发布前必须写好(`deno task release` 会检查) |
| 经验教训 | [lessons.md](lessons.md) |
| 证据、截图、构建日志 | `.local/`(不进 git) |
## 当前状态
- 版本 v0.3.14(`ceb66f8`),本机测试环境已部署。此前 v0.3.8~v0.3.13 由未提交工作区部署,源码已在 v0.3.14 统一提交。
- 开发与发布约定见仓库根 [CLAUDE.md](../../CLAUDE.md)。
## 待办
按需要再挑,挑中后在这里写清:从哪触发、最终看到什么、哪些失败需要人工处理、用什么样本验收。
### 工程
- 任务恢复的三处边界:升级前未结束任务的版本处置(发布前查在途任务版本,没有在途旧任务就不保留旧处理器);业务结果提交、run 关联、事件派发三个时点分别注入失败确认最终状态;引擎查询异常时只记录并跳过本轮,仅在明确查无 run 或终态时补投。
- 生产模块装配的处理器来源断言(防止漏注册的任务静默回显 todo),下次改任务注册时补。
- 测试装配去重:server 6 份 harness(约 1800 行)各自实现建 schema、迁移、假引擎、临时目录,抽公共部分到 `@umt/testkit`,各模块只留自己的装配;下次改到相关 harness 时做。
- 大文件拆分候选,改到相关功能时顺手拆,不单独重构:`packages/contracts/src/api.ts`(~2700 行)、`acquisition-organize/services/organize.ts`(~2600)、`browser/service.ts`(~2400)、`web/app/components/organize-wizard/organize-wizard.tsx`。
### 业务
- 疑似竞争:同一 Slot 两个版本几乎同时评估时,`evaluateForSlot`(`acquisition.ts`)读在途计划与写计划 / 延后之间没有锁,可能都不被延后。现象:`test/e2e/continuous-series.test.ts`「另一版本延后」在全量跑时偶发等待超时(2026-10-02 并行化后 3 次全量中 1 次,单跑 4 次均过)。先复现确认,再考虑按 Slot 加行锁。
- 与 MP 对照里仍未定的项,见 [对照 §6.4/6.5](../porting/moviepilot-v3-comparison.md#64-用户反馈与后续讨论2026-10-02)。
- 需求里仍是"部分实现"的:R06 通用 HTTP 失败转浏览器、真实 Cloudflare 挑战验收;R21 缓存阈值里未纳管占用的专项验收;四站与真实下载、媒体服务器的完整验收。