Files
ArtPlayer/refactor/progress.md
T

219 lines
22 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.
# 进度与证据
## 当前实施:PKG-CHAPTER-03 首包 TS 源码拆分完成
chapter 已从单体 JS 入口改为五个 TS 文件,区间、DOM、生命周期和样式职责清楚;修复标题、NaN、销毁和重复样式问题。61 项 Node/基线检查、源码及安装产物各 54 项三浏览器测试通过;三格式产物已生成。见 [交付](changes/2026-09-10-PKG-CHAPTER-03-typescript-modules.md)。当前 214 项,33 完成、181 待办。生产迁移:chapter 自有运行时已 TS 化,核心尚未开始。ENG-07 提交 a0286c4e;下一项 PKG-CHAPTER-04 公开类型与消费者闭环。
## 当前实施:ENG-07 打包消费入口完成
实际重建、打包、仓库外安装及 23 项运行时检查通过;安装产物三浏览器 39 项通过,ci:check 57 项通过。精确的 11 条历史类型诊断仍阻止严格发布检查,未作为发布豁免。见 [交付](changes/2026-09-10-ENG-07-package-consumers.md)。当前 214 项,32 完成、182 待办;生产源码 TS 迁移仍为零。下一项直接实施 PKG-CHAPTER-03 的 TS 模块拆分,再以 04 完成公开类型和消费者闭环。
## 当前实施:PKG-CHAPTER-02 测试与声明修正完成
chapter 27 项真实浏览器回归通过,合并原 smoke 共 39 项;工厂 option 声明已扩展为可选并重新生成编辑器声明,新旧 TS 正反例通过,BASE-TYPE-02 关闭。见 [交付](changes/2026-09-10-PKG-CHAPTER-02-tests.md)。当前 214 项,31 完成、183 待办。PKG-CHAPTER-01 提交 70174952,本任务单独提交;下一项 ENG-07,随后直接以 TS 拆分 chapter 源码。运行时源码尚未迁移。
## 当前实施:PKG-CHAPTER-01 契约完成
源码/发布插件逻辑和元数据对照完成,冻结 chapter 调用、数组变更、DOM/事件和入口,登记待修问题;见 [契约](baselines/chapter-contract.md)。当前 214 项,30 完成、184 待办。ENG-05 提交 7318d338,下一项 PKG-CHAPTER-02 包特有测试与声明修正。生产源码 TS 迁移仍为零。
## 当前实施:ENG-05 真实浏览器入口完成
Playwright 三浏览器 12 项真实播放/失败/映射测试通过,指定候选 UMD 文件的 Firefox 4 项通过;新增 CI smoke、报告与自生成媒体。见 [ENG-05](changes/2026-09-10-ENG-05-browser-tests.md)。当前 214 项,29 完成、185 待办;生产源码 TS 迁移仍为零。已具备 chapter 试点所需浏览器入口,下一项 PKG-CHAPTER-01,接特有测试和 ENG-07,再迁移插件源码。远端 CI、完整编辑器及真机尚未验收。
## 当前实施:ENG-03 公共行为与单元入口完成
原 19 项播放/DASH 回归保留,JS/TS loader 与受控媒体夹具复用;同一份五组 Emitter 契约在发布 core 5.4.0、工作区和三格式候选上通过。统一 yarn test:unit/test 与 CI 入口已接入,见 [ENG-03](changes/2026-09-10-ENG-03-unit-entry.md)。当前 214 项,28 完成、186 待办;生产源码 TS 迁移仍为零。ENG-06 提交 b53461da,本任务独立提交,下一项 ENG-05 浏览器自动化。
## 当前实施:ENG-06 JS/TS 构建与开发完成
正常 build/dev 支持指定包与唯一 JS/TS 入口,dev 可禁止自动打开浏览器并串行重建。构建夹具复现并修复 AMD 全局参数错误;63 产物中 39 字节相同、24 仅该修复;内置浏览器 42 个 AMD 入口、TS worker/资源及首页真实播放通过。见 [ENG-06](changes/2026-09-10-ENG-06-build-development.md)。
当前 214 项,27 完成、187 待办。43 项 Node/基线测试通过,生产源码 TS 迁移仍为零;工具链代码已有实际修改。ENG-04 提交 77148242,本任务独立提交。下一项 ENG-03 公共行为/单元入口,再接 ENG-05 浏览器自动化与 chapter 特有测试和源码迁移。
## 当前实施:ENG-04 类型检查基础完成
根/核心/chapter 配置和 yarn typecheck 已接入 CI。TS 5.9.3 三种消费模式与 TS 4.3.5 旧解析通过,NodeNext ESM 七项历史诊断单独记录;40 项 Node/基线测试通过。见 [ENG-04](changes/2026-09-10-ENG-04-typechecking.md)。当前 214 项,26 完成、188 待办;工具代码已有实施,生产源码 TS 迁移仍为零。BASE-08 提交 09902b8b,本任务独立提交。下一项 ENG-06 构建 TS 与非交互入口,再完成测试服务和 chapter 源码迁移。
## 当前实施:BASE-08 环境矩阵完成
22 包的格式/类型/运行环境/codec/SDK/设备与样本缺口已分配任务和发布影响;见 [矩阵](environment-matrix.md)。只引用已有基线,没有新增浏览器通过结论。当前 214 项,25 完成、189 待办;生产源码 TS 迁移仍为零。BASE-07 提交 ed293231;本任务独立提交。下一项直接实施 ENG-04 类型检查配置,再推进构建与 chapter 试点。
## 当前实施:BASE-07 风险与第三方来源台账完成
39 项差异/来源缺口已关联责任任务、证据与关闭条件,22 包运行依赖、8 组内嵌资源(123 个文件)及 12 个集成边界可校验。全部风险仍 open,不能把清点完成视为已修复或获准发布。见 [BASE-07](changes/2026-09-10-BASE-07-risk-register.md)。
当前 214 项任务,24 完成、190 待办。生产源码 TS 迁移仍为零;已完成工作主要是规划、工程流程与基线,后续继续单独报告源码迁移进度。BASE-06 已提交 e01f39ff;本轮独立提交 BASE-07。下一任务 BASE-08,随后进入必要 TS 工程配置和 chapter 试点;没有推送或发布。
## 当前实施:BASE-06 性能与资源基线完成
内置浏览器两轮各 12 个计时样本和 6 组资源探针已保存;真实播放及基本清理通过,同时复现销毁后 resize 防抖重新安排 notice timer,已分配 CORE-17/04/18。28 个发布 JS 与 85 个工作区 JS 的压缩体积独立记录。阈值只用于复测/审查,无生产优化或无内存泄漏结论。见 [BASE-06](changes/2026-09-10-BASE-06-performance.md)。
当前 214 项任务,23 完成、191 待办。BASE-05 已提交 c7a375e1;本轮独立提交 BASE-06。没有生产 TS 迁移、推送或发布;下一任务 BASE-07 差异/外部依赖风险台账。
## 当前实施:BASE-05 分发与类型消费者完成
固定发布包隔离消费的 18 项 Node runtime 检查通过;16 项 strict TS 场景中 8 项编译通过、8 项历史失败独立登记,未掩盖 NodeNext ESM 与 chapter 声明问题。内置浏览器两轮各 5 项 SSR 节点复用/媒体/清理检查通过。全包 manifest 与 118 个工作区 dist/types 资源已清点,thumbnail tool 和站点分发差异有后续责任。见 [BASE-05](changes/2026-09-10-BASE-05-consumers.md)。
当前 214 项任务,22 完成、192 待办。BASE-04 已提交 2b7054d8;本轮独立提交 BASE-05。没有生产 TS 迁移、推送或发布;下一任务 BASE-06 性能与资源基线。
## 当前实施:BASE-04 DOM 与输入基线完成
内置浏览器最终两轮 16 项检查通过,模板/类名/变量、用户样式、控件/设置、Tab/热键与网页全屏已留证。320px 裁切和控件 Tab 不可达已分配 CORE-13/14/23,未把历史问题当成正常兼容要求。29 示例、36 HTML 和 22 包的路径已映射,官方 docs 页面仍待真实运行。见 [BASE-04](changes/2026-09-10-BASE-04-dom.md)。
当前 214 项任务,21 完成、193 待办。BASE-03 已提交 94893929;本轮独立提交 BASE-04。没有生产 TS 迁移、推送或发布。下一任务 BASE-05:入口、资源与类型消费者基线。
## 当前实施:BASE-03 生命周期基线完成
固定发布包在内置浏览器最终两次执行 27 项断言、真实媒体时间推进与关键事件顺序均通过,语义观察相同,保存 64 条事件 trace 和六项历史问题。受控恢复拒绝单独登记,其余 errors/unhandled 为空;无把历史缺陷当作正常兼容要求。见 [BASE-03](changes/2026-09-10-BASE-03-lifecycle.md) 和 [问题/覆盖台账](baselines/lifecycle-coverage.md)。CORE-04/08/09 验收已链接相应复现。
当前 214 项任务,20 完成、194 待办。BASE-02 已提交 b382ec08;本轮独立提交 BASE-03。没有生产 TS 迁移、推送或发布。下一任务 BASE-04:DOM/CSS 与基础交互基线。
## 当前实施:BASE-02 公共 API 基线完成
内置浏览器最终两次执行固定 core 5.4.0/chapter 1.1.0 的 14 项同步 API 断言,快照相同,error/warn 日志为空。已保存静态配置、默认选项、实例及继承 API、10 个子系统的描述符和来源指纹;比较器能拒绝描述符/方法/默认值等回归。见 [BASE-02](changes/2026-09-10-BASE-02-public-api.md) 与 [契约覆盖](baselines/api-coverage.md)。
当前 214 项任务,19 完成、195 待办。ENG-02 已提交 833cc116;本轮独立提交 BASE-02。没有生产 TS 迁移或发布结论。下一任务 BASE-03,捕获事件、异步和生命周期,并验证真实媒体场景;同步 API 快照不能替代该工作。
## 当前实施:ENG-02 只读检查与 CI 基础已完成
新增 PR/主线/复用检查与独立手动 Pages 流程;lint 与自动修复拆分,修复文档构建退出码和生成声明格式。23 项 Node/基线测试、3 个构建后导入 smoke、21 库包 63 产物与文档构建通过;426 个源/类型/测试文件只读检查前后不变,actionlint 静态和负例通过。详见 [ENG-02](changes/2026-09-10-ENG-02-readonly-ci.md) 与 [操作说明](ci-setup.md)。
当前 214 项任务,18 完成、196 待办。ENG-PM-01 已提交 9a6cfe5c;本轮独立提交 ENG-02。未推送、未启用远端 CI/Pages、未发布;CI-02/CI-04 继续负责远端验收。下一任务 BASE-02,使用内置浏览器保存并校验公共 API 基线。
## 当前实施:ENG-PM-01 已完成 Yarn 切换
标准工具链为 Node 24.21.0 / Yarn Classic 1.22.22,唯一维护 yarn.lock。最终干净冻结安装、20 项 Node 测试、只读工具检查、21 库包及文档站构建通过,63 个库产物与 npm 基线 SHA-256 全同。详见 [ENG-PM-01](changes/2026-09-10-ENG-PM-01-yarn-toolchain.md)。既有搜索 peer 警告交 SITE-05 验证。
DOC-13 已提交 9d1d5fda;内置浏览器的 9 项基础 API 检查通过,BASE-02 可继续完整快照。当前 214 项任务,17 完成、197 待办。下一项 ENG-02,接入 Yarn 冻结安装和只读 PR CI;随后继续浏览器基线。没有生产 TS 迁移、推送或发布。
## 当前实施:Yarn 选择与浏览器回退
用户指定 packageManager 使用 Yarn,正在准备 ENG-PM-01 替换 ENG-01 的 npm 默认工具选择。ENG-02 暂回待办,待 Yarn 锁定验证后接续。用户同时授权 Chrome 不可用时使用内置浏览器;9 项发布包基础 API 检查已通过,BASE-02 连接阻塞解除,完整快照任务仍待完成。详见 [DOC-13](changes/2026-09-10-DOC-13-browser-fallback.md)。历史 npm 和 Chrome 失败记录保留为当时事实。
## 当前实施:ENG-01 工具链已验证
Node 24.21.0/npm 11.19.0、16 个直接工具和 npm lock 已固定;干净安装 1141 包、原 19 项测试、21 库包 63 产物与文档站构建全部通过,已有依赖解析版本没有升级。详见 [ENG-01 交付](changes/2026-09-10-ENG-01-reproducible-toolchain.md)。
完成 12 项规划、3 项实施基础任务;BASE-02 仍因 Chrome 连接阻塞,196 项待办。BASE-HARNESS-01 提交为 `3c759f14`。没有生产 TS 迁移、推送或发布。下一项 ENG-02,拆分只读检查并更新 PR/主线 CI。
## 2026-09-10:浏览器夹具已保存
BASE-01 已提交 `1d705b30`。BASE-HARNESS-01 完成发布包采集页面/本地 HTTP 服务及 1 项真实 HTTP 测试,详见 [交付记录](changes/2026-09-10-BASE-HARNESS-01-browser-fixture.md)。BASE-02 因 Chrome 连接失败保持 blocked;用户要求先继续其他实施任务,没有伪造浏览器基线。
完成 12 项规划、2 项实施基础任务;BASE-02 阻塞,其余 197 项待办。没有生产 TS 迁移。下一项 ENG-01 固定依赖和运行环境,浏览器恢复后继续 BASE-02。
## 2026-09-10:BASE-01 已发布基线
2026-09-10,goal 开始执行。固定核心 5.4.0/chapter 1.1.0 的真实 tarball、47 个成员哈希和支持范围未知项。核心工作区 5.4.1 未发布,两包 registry gitHead 版本过旧,均已如实记录。详见 [BASE-01 交付](changes/2026-09-10-BASE-01-published-baseline.md)。
两个包完整性和入口存在性验证通过,损坏检测 1 项测试通过。完成 12 项规划及 1 项实施基础任务;198 项待办。没有生产 TS 迁移或浏览器通过结论,没有推送/发布。下一步 BASE-02 捕获公开 API,ENG-01 固定依赖与运行环境。
## 2026-09-10:DOC-12 开发前计划复审
2026-09-10,再次检查依赖和验收,修正首轮复盘间接等待 mask 设备、版本准备缺实施任务,补清基线启动、站点分发分类、SSR 边界与契约覆盖索引。详见 [DOC-12 记录](changes/2026-09-10-DOC-12-execution-readiness-review.md) 和 [执行门槛](execution-gates.md)。
现为 211 项任务:12 项规划完成、199 项待办,生产重构未开始。计划/链接/语义依赖、校验器语法及四类故障负例、Git 差异检查通过。DOC-11 提交为 `9b9739ab`;本轮独立提交 DOC-12,没有生产或浏览器测试、远端 CI 或发布。下一项仍为 BASE-01,后续实现细节随开发证据补充。
## 2026-09-10:DOC-11 全包大版本策略
2026-09-10,用户要求所有包各自升级到下一 major。已核对 22 个 manifest 并记录 [目标清单](version-policy.md),同步发布/CI/复盘及根指令,详见 [DOC-11 记录](changes/2026-09-10-DOC-11-major-version-policy.md)。现有 209 项任务:11 项规划完成、198 项待办。
版本目标对应与计划/链接/依赖、Git 差异检查通过。仅修改文档,未改 manifest/锁文件或运行生产测试;旧 API 兼容要求不变。DOC-10 提交为 `a9197f59`,本轮独立提交 DOC-11。下一项仍为 BASE-01。
## 2026-09-10:DOC-10 GitHub CI/CD 规划
2026-09-10,用户明确纳入 GitHub CI/CD 优化。已核对现有 workflow 源码,新增 CI-01 至 CI-04 并接入第三轮发布复盘,文档见 [CI/CD 规范](github-ci-cd.md) 和 [DOC-10 记录](changes/2026-09-10-DOC-10-github-ci-cd.md)。现有 208 项任务:10 项规划完成、198 项待办;生产重构和 CI 改造均未开始。
计划/链接/依赖和 Git 差异检查通过;未修改 workflow、执行远端作业或发布。DOC-09 提交为 `21fd40ec`,本轮独立提交 DOC-10。下一项仍为 BASE-01。
## 2026-09-10:DOC-09 docs 测试入口记录
2026-09-10,将现有 HTML/Monaco 编辑器纳入真实测试方案,补充已有实施任务的具体要求。现有 203 项任务:9 项规划完成、194 项待办;生产重构与浏览器验收尚未开始。DOC-08 提交为 `3af9becf`。
本轮仅静态核对页面与脚本并维护文档,计划生成/校验、原任务范围/状态/依赖保持和 Git 差异检查通过,没有构建或运行真实播放测试。详见 [入口规范](docs-browser-testing.md) 和 [DOC-09 记录](changes/2026-09-10-DOC-09-docs-test-surfaces.md)。本轮独立提交 DOC-09,无推送或发布。下一任务仍为 BASE-01。
## 2026-09-10:DOC-08 浏览器与发布复盘规范
2026-09-10,记录用户要求的 Chrome 验证方案和重构后的多轮复盘。新增 REVIEW-01/02/03 三项待办并接入候选发布依赖。现有 202 项任务:8 项规划完成,194 项待办;生产重构与三轮复盘均未开始。
本轮仅更新文档及任务数据,计划生成/校验、专项发布依赖断言与 Git 差异检查通过。Chrome 扩展连接已在工具清单确认,但未执行播放器测试;其余设备可用性未核实。DOC-07 提交为 `1fa0a578`;本轮按 `[DOC-08]` 独立提交,无推送或发布。
详情见 [浏览器与复盘规范](release-reviews.md) 和 [DOC-08 记录](changes/2026-09-10-DOC-08-browser-and-release-reviews.md)。下一任务仍为 BASE-01。
## 2026-09-10:DOC-07 计划复审
2026-09-10,针对实际依赖图审查并调整计划。现为 198 项任务:7 项规划任务、191 项待实施/验收任务;生产代码重构完成数仍为 0。DOC-06 已提交为 `d7b348f3`,本次审查按 `[DOC-07]` 主题独立提交。
主要调整:最小启动基线、旧核心上的早期 chapter 试点、消费者/环境矩阵、历史失败与测试可靠性、核心无障碍回归、提前建立分包发布准入及回退演练。新增 execution-gates.md,原 192 个任务 ID、包范围和完成状态均保留。
校验结果:
- plan.mjs 生成与检查通过:198 任务、22 包、依赖无环、本地链接与生成同步。
- 专项依赖断言通过:PILOT-01 无 CORE 前置;CORE-01 依赖试点;SITE-04/05、REL-01/02 无 Cast/VAST/DPiP/mask 设备验收前置;REL-03 仍包含这些门槛。
- 既有 192 项任务 ID、scope、status 未丢失或伪造完成;只有本次 DOC-07 新标完成,其余新增任务待执行。
- 本次未修改生产代码、依赖或测试实现,没有运行浏览器播放或生产测试。
完整发现、改动及回退见 [DOC-07 审查记录](changes/2026-09-10-DOC-07-plan-review.md)。下一任务仍是 BASE-01,先固定核心与 chapter 的最小发布基线。
## 2026-09-10:建立重构工作区
- 分支:`codex/compatible-modernization`,由干净 master 创建。
- 基线:`40fcda6a37d0049d42e49c1e64e70d4fd9ba5f7f`。
- 已清点:22 包、全部插件、proxy、工具、文档与 React/Vue 示例;逐步任务以 tasks.json 为准。
- 本轮修改仅包含重构文档、其生成/校验工具,以及 AGENTS.md 的文档入口。未修改生产源码、声明或发布产物。
- 初始化阶段 DOC-01 至 DOC-04 完成时尚未提交。用户随后要求每任务独立 commit;已有规划文件作为 DOC-05 初始文档基线入库,实际提交以 Git 日志中的 `[DOC-05]` 为准。未推送、未发布。
本轮交付共 190 个任务:4 个 DOC 规划任务完成,186 个实施/验收任务待执行。包括核心 22 步,普通生态包各 6 步,danmuku 9 步,MediaBunny 10 步,另含基线、工程、文档、消费者、工具链和发布任务。
本轮文档验证:
- `node refactor/scripts/plan.mjs --write` 与 `--check`:任务 ID/状态/依赖、无环检查、22 包覆盖、完成证据和计划同步通过。
- 本地 Markdown 文件链接共 30 个均存在;初始清单中的 manifest、源码、类型和 demo 路径均存在。manifest 自身声明的缺失目标仍如实登记,不伪造文件。
- `node --check refactor/scripts/plan.mjs`:通过。
- `git diff --check`:通过;工作区仅 AGENTS.md 和 refactor/ 变化。
- 本轮没有重跑生产源码测试或浏览器播放;没有生产源码修改。
## 先前评估证据
以下来自建立计划前的同一会话评估,属于初步诊断,不代替 BASE 阶段的已发布产物基线与完整浏览器测试:
| 检查 | 结果与限制 |
| --- | --- |
| `node --test test/playback.test.js test/dash-control.test.js` | Node 25.2.1,19 项通过;这是 mock/单元测试 |
| 核心 src/types、test、scripts/*.js 的 ESLint(不加 --fix) | 通过;没有把插件模板占位符作为普通源码 lint |
| 三个 TS 样例,TS 5.9.3、strict、types: [] | 通过;未隔离环境类型时存在第三方 DOM/WebCodecs/markdown 声明冲突 |
| 使用项目构建配置 write:false 进行 ESM/现代 UMD/legacy UMD 内存构建 | 成功;不是完整 npm pack 或全部发布构建;未写产物 |
| 销毁源码隔离探针 | 重复 destroy 可误删其他实例注册项;需要正式回归用例 |
| 连续切源源码隔离探针 | 一次 canplay 可结算两次切源;尚未真实浏览器复现影响 |
| `bun test ./test/playback.test.js ./test/dash-control.test.js` | Bun 1.3.14:1 通过、18 失败,mock.fn 不兼容;未来版本需重测 |
## 清点中新增的待核对项
- artplayer-tool-thumbnail:manifest 的 types 目标当前不存在,ESM 历史路径与统一构建命名不同;在包契约任务中核对发布内容。
- ads、VAST、auto-thumbnail、vtt-thumbnail 等包的声明与源码参数/同步异步形状需要逐项对照。
- JASSUB、字幕 parser、screenfull 等第三方复制代码需要来源与许可台账。
- package-inventory 是当前 checkout 的清单,npm 发布基线尚未获取。
## 下一步
2026-09-10 新增 DOC-06:用户授权自主安装需要的新依赖、添加或改进合理脚本。已写入根指令、质量要求、工具链规范、AI 流程和 ADR-015;没有在这次记录任务中安装依赖或修改生产脚本。当时总数为 192 项。DOC-05 已提交为 `570600d2`;DOC-06 已提交为 `d7b348f3`。
2026-09-10 新增 DOC-05,记录并落实“每完成一项任务立即独立本地 commit”。当时总任务为 191 项。DOC-05 的范围是文档初始化和提交纪律,不包含生产实现;具体检查与提交主题见 changes/2026-09-10-DOC-05-task-commits.md。
2026-09-10 用户补充要求已落实到 quality-contract.md、ADR-013、根 AGENTS.md、AI 工作流程和变更模板:自主改进不合理内部设计、TS 化同时拆清模块、增加风险对应的有效测试,并持续维护包内架构和后续 AI 接续文档。初始任务数量保持 190,可按后续发现扩展;这次更新不代表开始或完成任何生产代码重构。
从 BASE-01 开始取得并固定消费者版本基线;随后完成接口/事件/DOM/包分发清单及 ENG 测试基础。当前没有任何核心或插件重构任务被标为完成。
## 会话记录模板
```text
日期 / HEAD / 分支:
任务 ID 和实际修改:
兼容差异与决策:
验证命令、环境、结果、报告:
未验证项与阻塞:
变更记录链接:
下一步与依赖:
提交/推送/发布状态:
```