Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
3.2 KiB
3.2 KiB
计划与待办
这里只放正在推进的计划和待办。做完的计划、验收和发布记录直接删除,版本变化只记在 CHANGELOG;需要追溯时查 git 历史(2026-10-02 清理前的全部过程文档在 ceb66f8)。
文档放哪
| 内容 | 位置 |
|---|---|
| 需求基线 | media_automation_requirements_architecture_v0.7.md |
| 架构决策 | docs/adr/ |
| 设计规范(界面、领域) | docs/design/ |
| 怎么用、怎么运维 | docs/runbook/(开发环境见 dev.md,部署见 deploy.md) |
| 与 MoviePilot 的业务对照(持续维护) | docs/porting/moviepilot-v3-comparison.md 及同目录各移植文档 |
| 版本变化 | 仓库根 CHANGELOG.md,每个版本几行;发布前必须写好(deno task release 会检查) |
| 经验教训 | lessons.md |
| 证据、截图、构建日志 | .local/(不进 git) |
当前状态
- 版本 v0.3.30,本机测试环境已部署。
- 开发与发布约定见仓库根 CLAUDE.md。
待办
按需要再挑,挑中后在这里写清:从哪触发、最终看到什么、哪些失败需要人工处理、用什么样本验收。
工程
BrowserService(apps/server/src/modules/browser/service.ts,约 2300 行)仍是单个类。纯函数已移到session-view.ts;Cloudflare 挑战流程(beginChallenge~fetchSiteHtml,约 400 行)要拆成独立协作对象,需要先把它用到的私有方法改成公开接口,下次改挑战流程时做。- 超长函数:
planImport(organize-plan.ts,约 830 行)、finalizeRecord(organize-finalize.ts,约 460 行)、OrganizeWizard组件(约 800 行)。文件已按阶段拆开,函数内部等改到相关逻辑时再拆,不单独重构。
进行中
- 系统梳理后的待办:system-review.md,T0~T6 按优先级。
- 补字幕:subtitles.md,第 1、2 步已完成;待办:以后接进整理 / 订阅工作流。
- 沙箱第二批:站点网页、RSS、网页抓取的 HTML / XML 解析迁入常驻子进程池(ADR-005)。
业务(需要真实环境或决定)
- R06 通用 HTTP 失败转浏览器:要先定"哪些失败转浏览器、每站每小时上限、失败后怎么提示",再实现;真实 Cloudflare 挑战需要一个会触发挑战的站点账号验收。
- R21 缓存阈值里未纳管占用的专项验收:需要在真实下载盘上放一批不归本工具管理的文件,观察暂停 / 恢复水位。
- 四站与真实下载、媒体服务器的完整验收:需要真实站点账号、qB 与 Emby / Jellyfin 实例。
观察项
test/e2e/continuous-series.test.ts「另一版本延后」2026-10-02 全量跑时偶发等待超时 1 次。已核实不是业务竞争(reserve()在 Slot 行锁内复核单元重叠,冲突即延后);单跑 4 次、3 份 / 8 份并发均未复现,疑为负载下评估任务重试退避超过 60s 等待。再出现时保留.local/test-logs/日志再查。