From fec539dbe3ee2fc9c9d2e0798ab250f5bf3ac2ae Mon Sep 17 00:00:00 2001 From: Harvey Zhao Date: Wed, 16 Sep 2026 12:22:43 +0800 Subject: [PATCH] docs(refactor): [DOC-HANDOFF-01] defer remaining work for user self-testing --- AGENTS.md | 6 + refactor/README.md | 7 + .../baselines/self-test-handoff-stop.json | 63 + refactor/plan.md | 210 +- refactor/progress.md | 12 + refactor/remaining-issues.md | 1854 +++++++++++++++++ refactor/risks.json | 8 +- refactor/self-test-handoff.md | 57 + refactor/tasks.json | 524 +++-- 9 files changed, 2508 insertions(+), 233 deletions(-) create mode 100644 refactor/baselines/self-test-handoff-stop.json create mode 100644 refactor/remaining-issues.md create mode 100644 refactor/self-test-handoff.md diff --git a/AGENTS.md b/AGENTS.md index f84c5721d..5d56ead5e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -2,6 +2,12 @@ ## Compatibility Refactor +2026-09-16 user scope update: stop autonomous refactor implementation and hand off for +the user's extended self-testing. Read [refactor/self-test-handoff.md](refactor/self-test-handoff.md) +first. Remaining tasks are deferred, not passed; do not resume long tests, new fixes, +full matrices, release preparation, or formal reviews without a new user instruction. +Existing compatibility requirements and future publication gates remain in force. + The compatibility modernization plan is maintained in [refactor/README.md](refactor/README.md). For refactor work, read its compatibility contract, task plan, and progress log before editing. Use `refactor/tasks.json` as the task status source and regenerate the readable plan with diff --git a/refactor/README.md b/refactor/README.md index 1ebe708c2..7995f9ffd 100644 --- a/refactor/README.md +++ b/refactor/README.md @@ -2,6 +2,13 @@ 本目录是核心、插件、proxy、工具和开发流程重构的长期工作记录。目标是让实现、类型、测试和构建更易维护,同时让已有用户继续使用原来的接口。 +**2026-09-16 阶段交接:用户要求尽快停止当前长任务,转入用户主导的长期自测。** +当前以[自测交接与延期清单](self-test-handoff.md)为执行入口;未完成项明确延期, +不再自动追加修复、长测、完整矩阵或发布准备。以下完整计划保留为后续待办, +不代表必须在本轮结束前全部完成,也不代表当前已经通过发布验收。 +逐项处理时查看[遗留问题完整清单](remaining-issues.md):包含全部开放风险、 +独立修复分支、已按范围接受的差异,以及所有延期任务的索引。 + ## 基线与范围 - 创建日期:2026-09-10。 diff --git a/refactor/baselines/self-test-handoff-stop.json b/refactor/baselines/self-test-handoff-stop.json new file mode 100644 index 000000000..707a4cd9e --- /dev/null +++ b/refactor/baselines/self-test-handoff-stop.json @@ -0,0 +1,63 @@ +{ + "capturedAt": "2026-09-16T04:19:58.827Z", + "status": "interrupted-at-user-request", + "completed": false, + "reason": "User requested ending autonomous refactor and handing off for extended self-testing; no imminent npm publication.", + "sessionId": 34354, + "exitCode": 1, + "sourceCommit": "78e3107b688c940ef44b773d72327fd89b62481c", + "originalProcessesAbsent": [ + 36836, + 29524, + 23276, + 8156 + ], + "port8084Listening": false, + "cleanupAssertionsProven": false, + "samples": [ + { + "name": "mediabunny-MediaBunny-sust-71bde-layback-with-published-core-chromium", + "file": "refactor/.cache/soak/results/mediabunny-MediaBunny-sust-71bde-layback-with-published-core-chromium/progress.jsonl", + "sha256": "6d1275b3efc88f527b5a677397c6f9506ceaede72efa84db814cd2e1b0fbead7", + "samples": 695, + "lastUpdated": "2026-09-16T04:17:20.836Z", + "last": { + "kind": "sample", + "phase": "continuous-1x", + "wall": 3491745.399999976, + "time": 3492, + "rate": 1, + "active": 55, + "queued": 55, + "iterators": 2, + "draws": 83784, + "visibility": "visible", + "paused": false, + "error": null, + "maxAVError": 0.5489999999997508 + } + }, + { + "name": "mediabunny-MediaBunny-sust-828df-layback-with-candidate-core-chromium", + "file": "refactor/.cache/soak/results/mediabunny-MediaBunny-sust-828df-layback-with-candidate-core-chromium/progress.jsonl", + "sha256": "0c565c472fb418587b6fa7934501dac2ca7b669a16a8f04032b54dddbad4e78f", + "samples": 695, + "lastUpdated": "2026-09-16T04:17:20.370Z", + "last": { + "kind": "sample", + "phase": "continuous-1x", + "wall": 3491280, + "time": 3491.541333333333, + "rate": 1, + "active": 60, + "queued": 60, + "iterators": 2, + "draws": 83773, + "visibility": "visible", + "paused": false, + "error": null, + "maxAVError": 0.5699999999999363 + } + } + ] +} diff --git a/refactor/plan.md b/refactor/plan.md index 8a42e76e6..1a7384f96 100644 --- a/refactor/plan.md +++ b/refactor/plan.md @@ -2,9 +2,9 @@ > 由 tasks.json 生成。请修改数据后运行 `node refactor/scripts/plan.mjs --write`,不要手改本表。 -基线:`40fcda6a37d0049d42e49c1e64e70d4fd9ba5f7f`。总任务 286 项,范围 22 个包及工作区/示例。 +基线:`40fcda6a37d0049d42e49c1e64e70d4fd9ba5f7f`。总任务 287 项,范围 22 个包及工作区/示例。 -状态:todo 36 / doing 24 / blocked 0 / done 226 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。 +状态:todo 0 / doing 0 / blocked 0 / done 227 / deferred 60。风险 L/M/H 表示兼容风险,不表示工期。 前置依赖是启动条件;验收是完成条件。任务可以继续拆分,但不能复用或悄悄删除旧 ID。 @@ -55,6 +55,7 @@ | DOC-12 | workspace
复审开发启动、验收覆盖及发布依赖 | DOC-11 | 语义依赖修正、版本实施任务、基线/分发分类及契约映射要求、校验器保护 | 原范围状态保持,计划检查和故障负例通过,独立提交 DOC-12 | M | done | | DOC-13 | workspace
记录并验证内置浏览器回退规则 | DOC-08 | 根指令、复盘和夹具文档中的浏览器回退及实际环境证据 | 内置浏览器打开真实页面,报告基础检查结果及未覆盖项;独立提交 | L | done | | DOC-REVIEW-01 | workspace
记录用户主导复盘阶段启动 | DOC-08 | 实施及必要测试完成后交接、等待用户指导复盘的持久执行规则 | 根指令与复盘/AI流程一致;三轮保持待办,原依赖与发布门槛不变,不自动提前复盘 | L | done | +| DOC-HANDOFF-01 | workspace
停止自主推进并交接用户自测 | DOC-03 | 停止长测、保留问题和独立修复、登记延期范围及自测接续入口,汇总所有开放风险、已按范围接受的差异和延期任务 | 未完成项如实延期;运行进程停止;交接文档、计划与证据一致,不启动新修复或复盘 | L | done | ## 1 基线 @@ -94,10 +95,10 @@ | ID | 范围 / 步骤 | 前置依赖 | 交付物 | 验收条件 | 风险 | 状态 | | --- | --- | --- | --- | --- | --- | --- | -| CI-01 | workspace
增强兼容矩阵、并发缓存与 CI 报告 | DOC-10, ENG-08, ENG-09, ENG-10 | OS/Node/TS/浏览器与影响范围矩阵、缓存、超时、汇总检查和 artifact 报告 | 固定安装、失败/取消不误报、核心影响全生态;检查只读,失败证据可追溯 | H | doing | +| CI-01 | workspace
增强兼容矩阵、并发缓存与 CI 报告 | DOC-10, ENG-08, ENG-09, ENG-10 | OS/Node/TS/浏览器与影响范围矩阵、缓存、超时、汇总检查和 artifact 报告 | 固定安装、失败/取消不误报、核心影响全生态;检查只读,失败证据可追溯 | H | deferred | | CI-02 | workspace
分离并改进 GitHub Pages 部署 | DOC-10, ENG-02, SITE-03 | Pages artifact 部署配置、旧路径/域名核对、预检和迁移恢复指南 | 部署只取受信任已验证产物;本地实现可验收,远端 source/环境和实际部署状态单独登记 | H | done | -| CI-03 | workspace
建立 npm 分包候选与发布工作流 | DOC-10, CI-01, REL-08, REL-04, CI-NPM-01, CI-NPM-02, CI-NPM-03 | 候选准备、精确 artifact 发布配置、OIDC 评估、版本/tag/registry 预检和部分失败恢复 | 不自动发布;明确逐包信任前置和 dry run 限制,不能重建未验证内容或重发冲突版本;按版本清单校验各包下一 major 和预发布/正式 tag,保留旧核心支持范围 | H | todo | -| CI-04 | workspace
验收 GitHub 流水线与远端发布准入 | CI-01, CI-02, CI-03, SITE-06, CI-BROWSER-01, CI-TYPES-01, CI-TYPES-02, SITE-EDITOR-VAST-01, CI-JASSUB-SOURCE-01 | 静态/干净环境检查、真实 PR 正反例、候选 dry run、required checks/Pages/npm 必需配置状态及运维指南 | 必要 Actions 证据和远端配置核对齐全;缺失保持未完成,真实 publish/deploy 仍在授权发布步骤执行 | H | todo | +| CI-03 | workspace
建立 npm 分包候选与发布工作流 | DOC-10, CI-01, REL-08, REL-04, CI-NPM-01, CI-NPM-02, CI-NPM-03 | 候选准备、精确 artifact 发布配置、OIDC 评估、版本/tag/registry 预检和部分失败恢复 | 不自动发布;明确逐包信任前置和 dry run 限制,不能重建未验证内容或重发冲突版本;按版本清单校验各包下一 major 和预发布/正式 tag,保留旧核心支持范围 | H | deferred | +| CI-04 | workspace
验收 GitHub 流水线与远端发布准入 | CI-01, CI-02, CI-03, SITE-06, CI-BROWSER-01, CI-TYPES-01, CI-TYPES-02, SITE-EDITOR-VAST-01, CI-JASSUB-SOURCE-01 | 静态/干净环境检查、真实 PR 正反例、候选 dry run、required checks/Pages/npm 必需配置状态及运维指南 | 必要 Actions 证据和远端配置核对齐全;缺失保持未完成,真实 publish/deploy 仍在授权发布步骤执行 | H | deferred | | CI-BROWSER-01 | workspace
分离源码与已安装产物浏览器验证范围 | ENG-05, ENG-07 | 完整源码入口、明确已安装包子集、分开的报告目录与失败传播 | 混用输入旧红新绿;源码默认保留所有spec,已安装入口严格校验四包来源;两类报告都保留,源码失败不能误报全绿;不代表完整远端或全包验收 | M | done | | CI-NPM-01 | workspace
从已验收候选准备不可重建的npm交付包 | DOC-10, REL-08, REL-04 | 复用严格准入台账、复制精确tarball、绑定源码/工具链/证据/摘要的本地准备命令及反向测试;供CI-03后续受信任artifact工作流使用 | 缺候选或任一准入缺口即拒绝;不构建、不安装、不联网或发布;阻止路径越界、脏源码、复制期间漂移及半成品冒充完成,声明远端信任/OIDC/registry预检仍未实现 | H | done | | CI-TYPES-01 | workspace, artplayer-plugin-audio-track, artplayer-plugin-hls-control
接入 Audio/HLS 安装后严格类型消费者 | ENG-07, PKG-AUDIO-04, PKG-HLS-04 | 共享隔离编译器模块、真实 tarball 的五模式正反例和声明路径证据 | 旧/新编译器所有正例通过,每条无效调用实际报错;仓库外声明解析、缺声明/any/逃逸负例有效;保留独立运行时和浏览器验收 | M | done | @@ -151,8 +152,8 @@ | PKG-CHAPTER-02 | artplayer-plugin-chapter
建立特有行为与错误测试 | PKG-CHAPTER-01, ENG-03, ENG-05 | 区间重叠/空列表/边界 seek、hover 标题和 update 用例 | 旧版本行为可重跑,成功/失败/切源/销毁有必要断言;修正 BASE-TYPE-02 的可选参数声明并补正反例 | M | done | | PKG-CHAPTER-03 | artplayer-plugin-chapter
以 TypeScript 拆分内部职责与资源 | PKG-CHAPTER-02, ENG-07 | 以严格 TS 拆分区间计算、进度 DOM、事件生命周期与样式注入;公开声明消费在 04 闭环 | 不依赖新核心方法或大范围设置重构;旧 API/事件和资源通过,必要适配限包内 | M | done | | PKG-CHAPTER-04 | artplayer-plugin-chapter
迁移自有源码和公开类型 | PKG-CHAPTER-03, ENG-04, ENG-06 | 承接 03 的自有源码 TS 化,完善公开 Chapters/Option/Result 与 update 推导,关闭声明模块解析和旧消费差异 | 严格类型检查、旧消费样例通过;声明路径/导出和同步异步兼容;处理 BASE-TYPE-01/03,保持运行时和新旧 TS 模块解析消费 | M | done | -| PKG-CHAPTER-05 | artplayer-plugin-chapter
验证新旧核心和组合 | PKG-CHAPTER-04, CORE-22 | chapter + quality/thumbnail、移动和全屏进度场景 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | M | doing | -| PKG-CHAPTER-06 | artplayer-plugin-chapter
验证分发并同步文档 | PKG-CHAPTER-05, ENG-07, PKG-CHAPTER-HOVER-01 | chapter.js 示例、产物和变更记录 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | M | todo | +| PKG-CHAPTER-05 | artplayer-plugin-chapter
验证新旧核心和组合 | PKG-CHAPTER-04, CORE-22 | chapter + quality/thumbnail、移动和全屏进度场景 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | M | deferred | +| PKG-CHAPTER-06 | artplayer-plugin-chapter
验证分发并同步文档 | PKG-CHAPTER-05, ENG-07, PKG-CHAPTER-HOVER-01 | chapter.js 示例、产物和变更记录 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | M | deferred | | PKG-CHAPTER-HOVER-01 | artplayer-plugin-chapter
定位并修复原生全屏章节悬停时序 | PKG-CHAPTER-04, CI-BROWSER-01 | 原生全屏动态几何与指针时序复现、针对根因的修复和真实浏览器回归 | 解释 Chromium 旧核心+新章节的 opacity 失败;保留标题、缩略图和全屏退出断言,不以重试或扩大等待掩盖;区分测试同步与生产缺陷 | M | done | ## 5 包迁移:artplayer-plugin-ambilight @@ -164,8 +165,8 @@ | PKG-AMBILIGHT-03 | artplayer-plugin-ambilight
整理内部职责与资源 | PKG-AMBILIGHT-02, CORE-03, CORE-12 | 取色计算与绘帧分离,统一 RAF 和 DOM 清理 | 结构变化和缺陷修复分开记录;原 API/事件/资源生命周期通过 | M | done | | PKG-AMBILIGHT-04 | artplayer-plugin-ambilight
迁移自有源码和公开类型 | PKG-AMBILIGHT-03, ENG-04, ENG-06, CORE-07 | canvas 上下文、参数及 start/stop 的明确类型 | 严格类型检查、旧消费样例通过;声明路径/导出和同步异步兼容 | M | done | | PKG-AMBILIGHT-PROXY-01 | artplayer-plugin-ambilight, artplayer-proxy-canvas
修复Canvas代理输出尺寸与取色区域 | PKG-AMBILIGHT-04, CORE-22 | 按Canvas实际输出buffer取色,原生video保留intrinsic尺寸,明确5.1.7没有proxy配置 | 旧错误复现、三引擎实际代理九色区域对照及原生视频回归通过;不把本子项当作最终代理/设备验收 | M | done | -| PKG-AMBILIGHT-05 | artplayer-plugin-ambilight
验证新旧核心和组合 | PKG-AMBILIGHT-04, CORE-22, PKG-AMBILIGHT-PROXY-01, PKG-CANVAS-04, PKG-FACTORY-01 | 原生 video、canvas proxy 的能力边界及销毁无帧循环 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | M | doing | -| PKG-AMBILIGHT-06 | artplayer-plugin-ambilight
验证分发并同步文档 | PKG-AMBILIGHT-05, ENG-07 | ambilight.js 示例及样式/分发验证 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | M | todo | +| PKG-AMBILIGHT-05 | artplayer-plugin-ambilight
验证新旧核心和组合 | PKG-AMBILIGHT-04, CORE-22, PKG-AMBILIGHT-PROXY-01, PKG-CANVAS-04, PKG-FACTORY-01 | 原生 video、canvas proxy 的能力边界及销毁无帧循环 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | M | deferred | +| PKG-AMBILIGHT-06 | artplayer-plugin-ambilight
验证分发并同步文档 | PKG-AMBILIGHT-05, ENG-07 | ambilight.js 示例及样式/分发验证 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | M | deferred | ## 5 包迁移:artplayer-plugin-audio-track @@ -175,8 +176,8 @@ | PKG-AUDIO-02 | artplayer-plugin-audio-track
建立特有行为与错误测试 | PKG-AUDIO-01, ENG-03, ENG-05 | 偏移、倍率、seek、waiting/playing、加载错误和 autoplay 拒绝 | 旧版本行为可重跑,成功/失败/切源/销毁有必要断言 | H | done | | PKG-AUDIO-03 | artplayer-plugin-audio-track
整理内部职责与资源 | PKG-AUDIO-02, CORE-10 | 外部 audio 的同步策略、监听与源更新生命周期 | 结构变化和缺陷修复分开记录;原 API/事件/资源生命周期通过 | H | done | | PKG-AUDIO-04 | artplayer-plugin-audio-track
迁移自有源码和公开类型 | PKG-AUDIO-03, ENG-04, ENG-06, CORE-07 | Option/Result/audio、update 输入和事件类型 | 严格类型检查、旧消费样例通过;声明路径/导出和同步异步兼容 | H | done | -| PKG-AUDIO-05 | artplayer-plugin-audio-track
验证新旧核心和组合 | PKG-AUDIO-04, CORE-22, CORE-24, PKG-AUDIO-BUFFER-01 | 主视频切源和缓冲恢复,多实例独立音频、旧核心 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | doing | -| PKG-AUDIO-06 | artplayer-plugin-audio-track
验证分发并同步文档 | PKG-AUDIO-05, ENG-07 | audio.track.js 示例与运行返回值一致的声明 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | todo | +| PKG-AUDIO-05 | artplayer-plugin-audio-track
验证新旧核心和组合 | PKG-AUDIO-04, CORE-22, CORE-24, PKG-AUDIO-BUFFER-01 | 主视频切源和缓冲恢复,多实例独立音频、旧核心 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | deferred | +| PKG-AUDIO-06 | artplayer-plugin-audio-track
验证分发并同步文档 | PKG-AUDIO-05, ENG-07 | audio.track.js 示例与运行返回值一致的声明 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | deferred | | PKG-AUDIO-BUFFER-01 | artplayer-plugin-audio-track
修正断流测试的切源等待顺序 | PKG-AUDIO-04, CORE-22 | 网络扣留时独立观察切源Promise;完整元数据扣帧回归与阶段诊断 | 旧顺序复现死等,三浏览器新旧组合可放行并验证恢复;保留真实缓冲失败,不以本项关闭Audio-05或设备门槛 | M | done | ## 5 包迁移:artplayer-plugin-auto-thumbnail @@ -185,10 +186,10 @@ | --- | --- | --- | --- | --- | --- | --- | | PKG-AUTO-THUMB-01 | artplayer-plugin-auto-thumbnail
核对包契约与历史用法 | BASE-05 | url/width/number/scale、异步工厂和渐进缩略图更新 | 源码/声明/README/demo/发布包差异已登记;公开形状和版本范围冻结 | H | done | | PKG-AUTO-THUMB-02 | artplayer-plugin-auto-thumbnail
建立特有行为与错误测试 | PKG-AUTO-THUMB-01, ENG-03, ENG-05 | 抽帧边界、短视频、失败、连续来源和销毁中的抽帧 | 旧版本行为可重跑,成功/失败/切源/销毁有必要断言 | H | done | -| PKG-AUTO-THUMB-03 | artplayer-plugin-auto-thumbnail
整理内部职责与资源 | PKG-AUTO-THUMB-02, CORE-09, CORE-19, PKG-AUTO-THUMB-07 | 隐藏 video、seek 队列、canvas 编码与 Blob URL 清理 | 结构变化和缺陷修复分开记录;原 API/事件/资源生命周期通过 | H | doing | +| PKG-AUTO-THUMB-03 | artplayer-plugin-auto-thumbnail
整理内部职责与资源 | PKG-AUTO-THUMB-02, CORE-09, CORE-19, PKG-AUTO-THUMB-07 | 隐藏 video、seek 队列、canvas 编码与 Blob URL 清理 | 结构变化和缺陷修复分开记录;原 API/事件/资源生命周期通过 | H | deferred | | PKG-AUTO-THUMB-04 | artplayer-plugin-auto-thumbnail
迁移自有源码和公开类型 | PKG-AUTO-THUMB-02, CORE-09, CORE-19, PKG-AUTO-THUMB-07, PKG-AUTO-THUMB-12, ENG-04, ENG-06, CORE-07, PKG-AUTO-THUMB-08, PKG-AUTO-THUMB-09, PKG-AUTO-THUMB-10, PKG-AUTO-THUMB-11 | 抽帧结果和真实异步插件返回类型兼容 | 严格类型检查、旧消费样例通过;声明路径/导出和同步异步兼容 | H | done | -| PKG-AUTO-THUMB-05 | artplayer-plugin-auto-thumbnail
验证新旧核心和组合 | PKG-AUTO-THUMB-04, CORE-22, PKG-AUTO-THUMB-12, PKG-AUTO-THUMB-03, PKG-AUTO-THUMB-13 | 旧核心/候选核心预览、多次加载无过期缩略图覆盖 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | todo | -| PKG-AUTO-THUMB-06 | artplayer-plugin-auto-thumbnail
验证分发并同步文档 | PKG-AUTO-THUMB-05, ENG-07 | auto.thumbnail.js、三种产物和内存/URL 证据 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | todo | +| PKG-AUTO-THUMB-05 | artplayer-plugin-auto-thumbnail
验证新旧核心和组合 | PKG-AUTO-THUMB-04, CORE-22, PKG-AUTO-THUMB-12, PKG-AUTO-THUMB-03, PKG-AUTO-THUMB-13 | 旧核心/候选核心预览、多次加载无过期缩略图覆盖 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | deferred | +| PKG-AUTO-THUMB-06 | artplayer-plugin-auto-thumbnail
验证分发并同步文档 | PKG-AUTO-THUMB-05, ENG-07 | auto.thumbnail.js、三种产物和内存/URL 证据 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | deferred | | PKG-AUTO-THUMB-07 | artplayer-plugin-auto-thumbnail
终止抽帧时清空私有画布像素尺寸 | PKG-AUTO-THUMB-02, CORE-09, CORE-19 | 将私有 canvas 尺寸归入 job 清理;完成、取消、失败及分配重入均有回归,保留已编码 JPEG | 旧红新绿证明保留回调时画布归零,单项清理失败不阻断其他资源;原生取消和完成后 JPEG 仍可解码,原 API/时间公式/类型不变 | M | done | | PKG-AUTO-THUMB-08 | artplayer-plugin-auto-thumbnail
保留旧声明并提供准确异步类型入口 | PKG-AUTO-THUMB-02, ENG-04, ENG-06, CORE-07 | 保留实际 npm 1.1.0 根声明;新增同实现 /runtime 类型、编辑器声明及隔离安装消费者 | 原 Parameters/ReturnType/替代函数不变;准确 Promise 类型正反例、CJS/ESM 条件入口和声明解析通过;不把像素与设备缺口计为通过 | M | done | | PKG-AUTO-THUMB-09 | artplayer-plugin-auto-thumbnail
兼容旧 CommonJS default 与直接工厂调用 | PKG-AUTO-THUMB-02, PKG-AUTO-THUMB-08 | 同一 callable 上的 default 自别名,保留最新根声明并补准确 runtime 别名类型;旧/新实际包入口证据 | 旧红新绿、直接/default/ESM/legacy/global 调用一致;旧根类型提取不变,公开准确类型与实际别名匹配;不关闭抽帧像素和设备缺口 | M | done | @@ -205,8 +206,8 @@ | PKG-VTT-THUMB-02 | artplayer-plugin-vtt-thumbnail
建立特有行为与错误测试 | PKG-VTT-THUMB-01, ENG-03, ENG-05 | VTT 解析、xywh、相对 URL、时间边界、请求失败和定位 | 旧版本行为可重跑,成功/失败/切源/销毁有必要断言 | M | done | | PKG-VTT-THUMB-03 | artplayer-plugin-vtt-thumbnail
整理内部职责与资源 | PKG-VTT-THUMB-02, CORE-09, CORE-19 | 纯解析/区间查找与 DOM、请求/定时器生命周期分离 | 结构变化和缺陷修复分开记录;原 API/事件/资源生命周期通过 | M | done | | PKG-VTT-THUMB-04 | artplayer-plugin-vtt-thumbnail
迁移自有源码和公开类型 | PKG-VTT-THUMB-03, ENG-04, ENG-06, CORE-07 | cue/rect/result 和参数可选性保持兼容 | 严格类型检查、旧消费样例通过;声明路径/导出和同步异步兼容 | M | done | -| PKG-VTT-THUMB-05 | artplayer-plugin-vtt-thumbnail
验证新旧核心和组合 | PKG-VTT-THUMB-04, CORE-22 | 鼠标和移动进度、全屏、切源、chapter 组合 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | M | doing | -| PKG-VTT-THUMB-06 | artplayer-plugin-vtt-thumbnail
验证分发并同步文档 | PKG-VTT-THUMB-05, ENG-07 | vtt.thumbnail.js、VTT/图片资源解析和产物验证 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | M | todo | +| PKG-VTT-THUMB-05 | artplayer-plugin-vtt-thumbnail
验证新旧核心和组合 | PKG-VTT-THUMB-04, CORE-22 | 鼠标和移动进度、全屏、切源、chapter 组合 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | M | deferred | +| PKG-VTT-THUMB-06 | artplayer-plugin-vtt-thumbnail
验证分发并同步文档 | PKG-VTT-THUMB-05, ENG-07 | vtt.thumbnail.js、VTT/图片资源解析和产物验证 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | M | deferred | ## 5 包迁移:artplayer-plugin-hls-control @@ -216,9 +217,9 @@ | PKG-HLS-02 | artplayer-plugin-hls-control
建立特有行为与错误测试 | PKG-HLS-01, ENG-03, ENG-05 | Auto/手动实际 level、音轨、去重/过滤和拓扑变化 | 旧版本行为可重跑,成功/失败/切源/销毁有必要断言 | H | done | | PKG-HLS-03 | artplayer-plugin-hls-control
整理内部职责与资源 | PKG-HLS-02, CORE-11, CORE-14 | 映射计算与 selector 更新/删除、Hls 事件订阅分离 | 结构变化和缺陷修复分开记录;原 API/事件/资源生命周期通过 | H | done | | PKG-HLS-04 | artplayer-plugin-hls-control
迁移自有源码和公开类型 | PKG-HLS-03, ENG-04, ENG-06, CORE-07 | HLS 能力适配类型、回调上下文和旧 getName 参数 | 严格类型检查、旧消费样例通过;声明路径/导出和同步异步兼容 | H | done | -| PKG-HLS-SDK-01 | artplayer-plugin-hls-control
验证真实 SDK worker 与分组轨道组合 | PKG-HLS-04, CORE-22 | 固定历史及当前 SDK 归档、真实 worker/多音轨组、外部选择与重绑定浏览器证据 | 受支持桌面 MSE 引擎与新旧核心通过;无 worker 回退伪通过,设备缺口仍由 PKG-HLS-05 保持未完成 | H | doing | -| PKG-HLS-05 | artplayer-plugin-hls-control
验证新旧核心和组合 | PKG-HLS-04, CORE-22, PKG-HLS-SDK-01 | 本地多码率 HLS、换成无轨道来源、旧核心和最终核心 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | todo | -| PKG-HLS-06 | artplayer-plugin-hls-control
验证分发并同步文档 | PKG-HLS-05, ENG-07, PKG-HLS-PACK-01 | hls.control.js、依赖范围与回退记录 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | todo | +| PKG-HLS-SDK-01 | artplayer-plugin-hls-control
验证真实 SDK worker 与分组轨道组合 | PKG-HLS-04, CORE-22 | 固定历史及当前 SDK 归档、真实 worker/多音轨组、外部选择与重绑定浏览器证据 | 受支持桌面 MSE 引擎与新旧核心通过;无 worker 回退伪通过,设备缺口仍由 PKG-HLS-05 保持未完成 | H | deferred | +| PKG-HLS-05 | artplayer-plugin-hls-control
验证新旧核心和组合 | PKG-HLS-04, CORE-22, PKG-HLS-SDK-01 | 本地多码率 HLS、换成无轨道来源、旧核心和最终核心 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | deferred | +| PKG-HLS-06 | artplayer-plugin-hls-control
验证分发并同步文档 | PKG-HLS-05, ENG-07, PKG-HLS-PACK-01 | hls.control.js、依赖范围与回退记录 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | deferred | | PKG-HLS-PACK-01 | artplayer-plugin-hls-control
排除发布包内的实现 TypeScript 配置 | PKG-HLS-04, ENG-07 | 修正 npm 排除规则,真实打包核验公开入口与声明不变 | 旧归档复现 tsconfig 泄漏,新归档排除内部配置,全部历史 dist/types 保留且 JS/声明字节相同;正常 Yarn 打包与通用包校验通过 | M | done | ## 5 包迁移:artplayer-plugin-dash-control @@ -231,8 +232,8 @@ | PKG-DASH-04 | artplayer-plugin-dash-control
迁移自有源码和公开类型 | PKG-DASH-03, ENG-04, ENG-06, CORE-07 | dash.js adapter、selector 和回调类型 | 严格类型检查、旧消费样例通过;声明路径/导出和同步异步兼容 | H | done | | PKG-DASH-SEEK-01 | artplayer-plugin-dash-control
修复 SDK 4.5.2 暂停跳转后的缓冲指标停滞 | PKG-DASH-04 | 按版本和实测空缓冲限定的指标同步、生命周期守卫及真实 SDK 旧红新绿 | 新插件在新旧核心及 Chromium/Firefox 原位置回归通过;不修改 SDK 方法/配置、媒体时间或删除缓冲;旧 SDK 原生缺陷与旧插件限制独立记录,不宣称第三方本体已修复 | H | done | | PKG-DASH-MENU-01 | artplayer-plugin-dash-control
定位并修复 SDK 刷新期间设置选项不可见 | PKG-DASH-SEEK-01 | 真实 SDK 菜单点击失败根因、对应兼容修复及新旧核心回归 | 保留 legacy/旧核心/SDK5.2.1 的原失败;确定菜单在点击过程中不可见的原因;不靠 force 点击、扩大超时或重复运行覆盖问题;main/legacy 质量与音轨设置及 SDK 刷新组合通过 | H | done | -| PKG-DASH-05 | artplayer-plugin-dash-control
验证新旧核心和组合 | PKG-DASH-04, CORE-22, PKG-DASH-SEEK-01, PKG-DASH-CLEANUP-01 | 固定 dash.js 4.5.2/5.2.1 与本地 DASH 实际清晰度/音轨、高亮、Auto 和换源组合 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | doing | -| PKG-DASH-06 | artplayer-plugin-dash-control
验证分发并同步文档 | PKG-DASH-05, ENG-07, PKG-DASH-MENU-01 | dash.control.js、支持的 dash.js 版本与产物 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | todo | +| PKG-DASH-05 | artplayer-plugin-dash-control
验证新旧核心和组合 | PKG-DASH-04, CORE-22, PKG-DASH-SEEK-01, PKG-DASH-CLEANUP-01 | 固定 dash.js 4.5.2/5.2.1 与本地 DASH 实际清晰度/音轨、高亮、Auto 和换源组合 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | deferred | +| PKG-DASH-06 | artplayer-plugin-dash-control
验证分发并同步文档 | PKG-DASH-05, ENG-07, PKG-DASH-MENU-01 | dash.control.js、支持的 dash.js 版本与产物 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | deferred | | PKG-DASH-CLEANUP-01 | artplayer-plugin-dash-control
保留菜单和SDK清理的首个原始异常 | PKG-DASH-04 | 集中DASH清理调度与首错传播,保留重入保护;falsy异常、真实控件beforeUnmount、分发及文档验证 | 七种falsy值不被吞掉或后续错误覆盖;后续资源释放和生命周期回归通过,不更改公开API、SDK归属或异步刷新边界 | M | done | ## 5 包迁移:artplayer-plugin-multiple-subtitles @@ -245,8 +246,8 @@ | PKG-MULTI-SUB-04 | artplayer-plugin-multiple-subtitles
迁移自有源码和公开类型 | PKG-MULTI-SUB-03, ENG-04, ENG-06, CORE-07 | 准确 parser/cue/tree/result 类型与真实异步形状 | 严格类型检查、旧消费样例通过;声明路径/导出和同步异步兼容 | H | done | | PKG-MULTI-SUB-07 | artplayer-plugin-multiple-subtitles
修复字幕内嵌时间戳序列化 | PKG-MULTI-SUB-03 | 保留数字时间戳节点、修正无效 NaN 输出、明确旧/新字幕输出差异 | 旧九份实现可复现,候选有效内嵌时间戳及文字/CSS/原生字幕通过,公开工厂与选择接口不变 | H | done | | PKG-MULTI-SUB-08 | artplayer-plugin-multiple-subtitles
修复字幕实体解码与嵌套标签包装 | PKG-MULTI-SUB-04, PKG-MULTI-SUB-07 | 使用解析器既有实体表入口修复多余分号;保护字面文本并以兄弟节点包装标签,保留CSS钩子和时间戳 | 冻结旧实现复现、实体/双重编码/标签/选择重置回归、新旧核心真实字幕显示通过;vendor原文与来源校验不变,类型/分发兼容 | M | done | -| PKG-MULTI-SUB-05 | artplayer-plugin-multiple-subtitles
验证新旧核心和组合 | PKG-MULTI-SUB-04, CORE-22, PKG-MULTI-SUB-07, PKG-MULTI-SUB-08 | 与核心字幕/偏移/全屏组合,旧名称调用不变 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | doing | -| PKG-MULTI-SUB-06 | artplayer-plugin-multiple-subtitles
验证分发并同步文档 | PKG-MULTI-SUB-05, ENG-07, CORE-SUBTITLE-OFFSET-01, PKG-MULTI-SUB-09, PKG-MULTI-SUB-10, PKG-MULTI-SUB-11 | multiple.subtitles.js、parser 来源许可及打包边界 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | todo | +| PKG-MULTI-SUB-05 | artplayer-plugin-multiple-subtitles
验证新旧核心和组合 | PKG-MULTI-SUB-04, CORE-22, PKG-MULTI-SUB-07, PKG-MULTI-SUB-08 | 与核心字幕/偏移/全屏组合,旧名称调用不变 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | deferred | +| PKG-MULTI-SUB-06 | artplayer-plugin-multiple-subtitles
验证分发并同步文档 | PKG-MULTI-SUB-05, ENG-07, CORE-SUBTITLE-OFFSET-01, PKG-MULTI-SUB-09, PKG-MULTI-SUB-10, PKG-MULTI-SUB-11 | multiple.subtitles.js、parser 来源许可及打包边界 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | deferred | | PKG-MULTI-SUB-09 | artplayer-plugin-multiple-subtitles, artplayer
定位旧核心切源寻址与字幕显示边界 | PKG-MULTI-SUB-08, CORE-19 | 无插件及旧新插件对照、真实事件轨迹、原切源失败归因和组合测试顺序 | 保留旧核心立即寻址观察,候选首次寻址与正常字幕组合通过;不把原生时钟失败误归为字幕丢失 | M | done | | PKG-MULTI-SUB-10 | artplayer-plugin-multiple-subtitles
适配旧核心的多条活动字幕渲染 | PKG-MULTI-SUB-08, PKG-MULTI-SUB-09 | 独立旧宿主显示适配、原生异步字幕重叠回归和兼容边界说明 | 旧5.1.2/5.1.7复现先红后绿;保持原生cue对象/时间、旧事件标量和方法身份;多格式显示及清理通过,保留其他组合和设备缺口 | M | done | | PKG-MULTI-SUB-11 | artplayer-plugin-multiple-subtitles
处理旧发布核心 ASS 转换器丢失换行 | PKG-MULTI-SUB-10 | 冻结5.1.2发布/源码转换差异,兼容转换适配与真实ASS字幕回归 | 保持已有效转换行为,旧发布ASS缺陷有先红后绿与实际产物证据;不得将VTT替代夹具算作ASS通过 | M | done | @@ -259,11 +260,11 @@ | PKG-JASSUB-02 | artplayer-plugin-jassub
建立特有行为与错误测试 | PKG-JASSUB-01, ENG-03, ENG-05 | ASS 字体、时钟/seek/倍率/resize、加载失败和销毁 | 旧版本行为可重跑,成功/失败/切源/销毁有必要断言 | H | done | | PKG-JASSUB-03 | artplayer-plugin-jassub
整理内部职责与资源 | PKG-JASSUB-02, CORE-15, CORE-16 | 仅整理自有 adapter/销毁;保留第三方文件及来源 | 结构变化和缺陷修复分开记录;原 API/事件/资源生命周期通过 | H | done | | PKG-JASSUB-04 | artplayer-plugin-jassub
迁移自有源码和公开类型 | PKG-JASSUB-03, ENG-04, ENG-06, CORE-07 | JASSUB option/instance 的兼容类型包装,vendor JS 例外记录 | 严格类型检查、旧消费样例通过;声明路径/导出和同步异步兼容 | H | done | -| PKG-JASSUB-05 | artplayer-plugin-jassub
验证新旧核心和组合 | PKG-JASSUB-04, CORE-22, PKG-JASSUB-07, PKG-JASSUB-08, PKG-JASSUB-09, PKG-JASSUB-10 | 真实 worker/WASM 字幕渲染与全屏、旧核心测试 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | todo | -| PKG-JASSUB-06 | artplayer-plugin-jassub
验证分发并同步文档 | PKG-JASSUB-05, ENG-07, CI-JASSUB-SOURCE-01 | jassub.js、外部资源路径、许可和离线失败记录;接续 VENDOR-04/05 完整组件/字体通知、LGPL 源码分发核对及六份未明确字体的分发处置 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录;来源身份已由01冻结,完整通知和未明确字体的发布处理必须闭环,不能以来源相同替代许可结论 | H | todo | +| PKG-JASSUB-05 | artplayer-plugin-jassub
验证新旧核心和组合 | PKG-JASSUB-04, CORE-22, PKG-JASSUB-07, PKG-JASSUB-08, PKG-JASSUB-09, PKG-JASSUB-10 | 真实 worker/WASM 字幕渲染与全屏、旧核心测试 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | deferred | +| PKG-JASSUB-06 | artplayer-plugin-jassub
验证分发并同步文档 | PKG-JASSUB-05, ENG-07, CI-JASSUB-SOURCE-01 | jassub.js、外部资源路径、许可和离线失败记录;接续 VENDOR-04/05 完整组件/字体通知、LGPL 源码分发核对及六份未明确字体的分发处置 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录;来源身份已由01冻结,完整通知和未明确字体的发布处理必须闭环,不能以来源相同替代许可结论 | H | deferred | | PKG-JASSUB-07 | artplayer-plugin-jassub
修复 vendor 生命周期与字幕时钟 | PKG-JASSUB-03, PKG-JASSUB-02 | 独立记录 vendor 适配差异;幂等销毁、跨容器 setVideo、构造回滚、逐帧归属和倍率/能力边界;查询 timeout/Worker error 的缺失数据回调及每请求监听器/定时器清理(JASSUB-QUERY-01) | 保持公开真实 instance、同步方法与资源路径;保留原 vendor 来源指纹并记录每项实际补丁;候选修复正例和真实字幕/失败/时钟验证通过,未证实设备不得冒充通过 | H | done | | PKG-JASSUB-08 | artplayer-plugin-jassub
修复默认 offscreen 初始化消息顺序 | PKG-JASSUB-07 | 在释放排队绘制消息前转移初始画布;独立 vendor 补丁、默认模式原生回归和维护文档 | 保留默认能力选择、Worker/资源和公开同步 API;旧红新绿消息顺序测试及真实默认 offscreen 播放/seek/全屏通过,主线程绘制保持 | H | done | -| PKG-JASSUB-09 | artplayer-plugin-jassub
修复 hybrid 迟到绘制与销毁后画布重建 | PKG-JASSUB-08 | 释放旧混合绘制 bitmap,不改变新模式的画布/时钟;销毁后切字幕不重新分配画布;来源补丁、原生排队消息及维护记录 | 旧红新绿验证旧帧不能重建画布/解除新绘制等待;正常 hybrid 绘制保持;真实 Worker/ImageBitmap 交错、主线程及默认模式回归通过,能力缺口明确 | H | doing | +| PKG-JASSUB-09 | artplayer-plugin-jassub
修复 hybrid 迟到绘制与销毁后画布重建 | PKG-JASSUB-08 | 释放旧混合绘制 bitmap,不改变新模式的画布/时钟;销毁后切字幕不重新分配画布;来源补丁、原生排队消息及维护记录 | 旧红新绿验证旧帧不能重建画布/解除新绘制等待;正常 hybrid 绘制保持;真实 Worker/ImageBitmap 交错、主线程及默认模式回归通过,能力缺口明确 | H | deferred | | PKG-JASSUB-10 | artplayer-plugin-jassub
释放绘制异常后的整批 ImageBitmap | PKG-JASSUB-08 | 主线程异步绘制异常时释放整批位图;同步路径保持;原生异常/恢复测试和可逆vendor补丁记录 | 旧红新绿验证清屏、尺寸和首/后续绘制异常的释放及原异常传播;真实Worker位图和原生Canvas异常后恢复字幕;源码/main/legacy回归、类型、来源及构建通过 | M | done | ## 5 包迁移:artplayer-plugin-danmuku-mask @@ -274,8 +275,8 @@ | PKG-MASK-02 | artplayer-plugin-danmuku-mask
建立特有行为与错误测试 | PKG-MASK-01, ENG-03, ENG-05 | 加载期间停止/销毁、重复启动、推理失败、WebGL/CPU 边界 | 旧版本行为可重跑,成功/失败/切源/销毁有必要断言 | H | done | | PKG-MASK-03 | artplayer-plugin-danmuku-mask
整理内部职责与资源 | PKG-MASK-02, CORE-18, PKG-DANMUKU-07 | 模型加载/推理/画布输出分离,阻止重叠推理与过期写入 | 结构变化和缺陷修复分开记录;原 API/事件/资源生命周期通过 | H | done | | PKG-MASK-04 | artplayer-plugin-danmuku-mask
迁移自有源码和公开类型 | PKG-MASK-03, ENG-04, ENG-06, CORE-07 | 模型 adapter、canvas 和选项的精确类型 | 严格类型检查、旧消费样例通过;声明路径/导出和同步异步兼容 | H | done | -| PKG-MASK-05 | artplayer-plugin-danmuku-mask
验证新旧核心和组合 | PKG-MASK-04, CORE-22 | 真实模型和 danmuku/seek/全屏组合,GPU 资源释放 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | doing | -| PKG-MASK-06 | artplayer-plugin-danmuku-mask
验证分发并同步文档 | PKG-MASK-05, ENG-07, PKG-DANMUKU-MASK-LOAD-01 | danmuku.mask.js、资源版本/许可、CPU fallback 和包体积证据 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | todo | +| PKG-MASK-05 | artplayer-plugin-danmuku-mask
验证新旧核心和组合 | PKG-MASK-04, CORE-22 | 真实模型和 danmuku/seek/全屏组合,GPU 资源释放 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | deferred | +| PKG-MASK-06 | artplayer-plugin-danmuku-mask
验证分发并同步文档 | PKG-MASK-05, ENG-07, PKG-DANMUKU-MASK-LOAD-01 | danmuku.mask.js、资源版本/许可、CPU fallback 和包体积证据 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | deferred | ## 5 包迁移:artplayer-plugin-asr @@ -285,8 +286,8 @@ | PKG-ASR-02 | artplayer-plugin-asr
建立特有行为与错误测试 | PKG-ASR-01, ENG-03, ENG-05 | PCM/WAV、chunk 时序、回调慢/拒绝、重复初始化与停止 | 旧版本行为可重跑,成功/失败/切源/销毁有必要断言 | H | done | | PKG-ASR-03 | artplayer-plugin-asr
整理内部职责与资源 | PKG-ASR-02, CORE-10, CORE-18 | AudioContext/Worklet/Stream 生命周期和背压分离 | 结构变化和缺陷修复分开记录;原 API/事件/资源生命周期通过 | H | done | | PKG-ASR-04 | artplayer-plugin-asr
迁移自有源码和公开类型 | PKG-ASR-03, ENG-04, ENG-06, CORE-07 | 主线程/Worklet/音频 buffer 与异步回调类型 | 严格类型检查、旧消费样例通过;声明路径/导出和同步异步兼容 | H | done | -| PKG-ASR-05 | artplayer-plugin-asr
验证新旧核心和组合 | PKG-ASR-04, CORE-22, PKG-ASR-07, PKG-ASR-08, PKG-ASR-09, PKG-ASR-10 | 真实 WebAudio 分块、播放暂停/切源/销毁,不引入网络 ASR | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | doing | -| PKG-ASR-06 | artplayer-plugin-asr
验证分发并同步文档 | PKG-ASR-05, ENG-07 | asr.js、Worklet 资源、输出格式与声明证据 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | todo | +| PKG-ASR-05 | artplayer-plugin-asr
验证新旧核心和组合 | PKG-ASR-04, CORE-22, PKG-ASR-07, PKG-ASR-08, PKG-ASR-09, PKG-ASR-10 | 真实 WebAudio 分块、播放暂停/切源/销毁,不引入网络 ASR | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | deferred | +| PKG-ASR-06 | artplayer-plugin-asr
验证分发并同步文档 | PKG-ASR-05, ENG-07 | asr.js、Worklet 资源、输出格式与声明证据 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | deferred | | PKG-ASR-07 | artplayer-plugin-asr
修复原生播放音量二次衰减 | PKG-ASR-04 | 移除重复音量应用;保留新旧原生音频振幅对照及正式产物验收 | Chromium/Firefox 两核心和 source/main/legacy 输出音量线性、静音和 stop/restart 正确;旧版平方衰减单独保留;单元/类型/真实安装通过,不代替设备验收 | H | done | | PKG-ASR-08 | artplayer-plugin-asr
修复捕获回退重复播放与静音漏声 | PKG-ASR-07 | 捕获回退静音输出图、非零PCM与外部播放归属;真实红绿证据及产物验证 | 已进入回退后不产生额外输出、静音不漏声、外部播放图不被关闭、stop/restart/换源清理正确;明确Firefox受控拒绝不代表自然选择回退 | H | done | | PKG-ASR-09 | artplayer-plugin-asr
提供显式捕获归属并取消过期切源重启 | PKG-ASR-04, PKG-ASR-08 | 保留默认API的capture模式、精确runtime类型、可取消重启和原生外部归属/CORS证据 | 显式模式零直接绑定、不增加输出、拥有资源正确清理;Firefox不强制异常,CORS无绕过;旧工厂类型保持;延迟关闭期间pause/stop取消旧重启 | H | done | @@ -300,8 +301,8 @@ | PKG-ADS-02 | artplayer-plugin-ads
建立特有行为与错误测试 | PKG-ADS-01, ENG-03, ENG-05 | 固定 npm 1.0.6 与工作区契约;HTML/视频/图片 HTML、跳过阈值、计时链、工厂复用、多实例、过早/重复方法、播放拒绝与销毁 | 旧版本行为可重跑,成功/失败/切源/销毁有必要断言 | H | done | | PKG-ADS-03 | artplayer-plugin-ads
整理内部职责与资源 | PKG-ADS-02, CORE-10, CORE-13 | 配置/广告状态/计时/视图/主视频恢复分离,保留产品规则;资源与版本检查改用经验证的旧核心能力边界 | 结构变化和缺陷修复分开记录;原 API/事件/资源生命周期通过 | H | done | | PKG-ADS-04 | artplayer-plugin-ads
迁移自有源码和公开类型 | PKG-ADS-03, ENG-04, ENG-06, CORE-07 | 兼容真实 html/video/url/i18n、旧 export= 与工作区 source/type 类型接受面;时长 string/number 漂移与未实现别名单独处置 | 严格类型检查、旧消费样例通过;声明路径/导出和同步异步兼容 | H | done | -| PKG-ADS-05 | artplayer-plugin-ads
验证新旧核心和组合 | PKG-ADS-04, CORE-22 | 本地广告 fixture、多实例、正常结束/跳过/销毁;核验历史关联核心 4.5.5、发布 5.4.1 与候选核心的实际归档/能力/媒体组合 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | doing | -| PKG-ADS-06 | artplayer-plugin-ads
验证分发并同步文档 | PKG-ADS-05, ENG-07 | ads.js/README/声明一致;旧 require(pkg).default、原 dist 路径、当前 callable/ESM/legacy 的隔离 tarball 及浏览器验收 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | todo | +| PKG-ADS-05 | artplayer-plugin-ads
验证新旧核心和组合 | PKG-ADS-04, CORE-22 | 本地广告 fixture、多实例、正常结束/跳过/销毁;核验历史关联核心 4.5.5、发布 5.4.1 与候选核心的实际归档/能力/媒体组合 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | deferred | +| PKG-ADS-06 | artplayer-plugin-ads
验证分发并同步文档 | PKG-ADS-05, ENG-07 | ads.js/README/声明一致;旧 require(pkg).default、原 dist 路径、当前 callable/ESM/legacy 的隔离 tarball 及浏览器验收 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | deferred | ## 5 包迁移:artplayer-plugin-vast @@ -311,8 +312,8 @@ | PKG-VAST-02 | artplayer-plugin-vast
建立特有行为与错误测试 | PKG-VAST-01, ENG-03, ENG-05 | SDK 失败、重复初始化、广告事件、内容恢复和销毁竞态;发布 id/$container/eager 与工作区 lazy/config 覆盖、callback拒绝、加载中销毁、同毫秒多实例与晚到事件 | 旧版本行为可重跑,成功/失败/切源/销毁有必要断言 | H | done | | PKG-VAST-03 | artplayer-plugin-vast
整理内部职责与资源 | PKG-VAST-02, CORE-10, CORE-13 | SDK loader、IMA adapter、广告状态和 DOM 清理分离;保持发布 callback 别名,明确初始化冲突;核心终止与显式 destroy 后重建区分 | 结构变化和缺陷修复分开记录;原 API/事件/资源生命周期通过 | H | done | | PKG-VAST-04 | artplayer-plugin-vast
迁移自有源码和公开类型 | PKG-VAST-03, ENG-04, ENG-06, CORE-07, PKG-VAST-07 | IMA/context/Promise 真实类型,外部 SDK 动态对象限定边界;修复 @alugha/ima 声明依赖链,保留 export= 和 require.default 消费;同步错误声明的兼容决策单列 | 严格类型检查、旧消费样例通过;声明路径/导出和同步异步兼容 | H | done | -| PKG-VAST-05 | artplayer-plugin-vast
验证新旧核心和组合 | PKG-VAST-04, CORE-22 | 真实IMA广告播放、错误后主视频恢复、会话重建与销毁;核验npm5.1.7/npm5.4.0/候选5.4.1核心,VAST VPN外部脚本例外逐项记录,不将受控SDK当作实际IMA验收 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | doing | -| PKG-VAST-06 | artplayer-plugin-vast
验证分发并同步文档 | PKG-VAST-05, ENG-07 | vast.js、SDK 资源、声明消费和独立版本记录;核验实际发布 namespace default、历史深路径、ESM和准确声明,版本按政策2.0.0由REL-09统一处理 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | todo | +| PKG-VAST-05 | artplayer-plugin-vast
验证新旧核心和组合 | PKG-VAST-04, CORE-22 | 真实IMA广告播放、错误后主视频恢复、会话重建与销毁;核验npm5.1.7/npm5.4.0/候选5.4.1核心,VAST VPN外部脚本例外逐项记录,不将受控SDK当作实际IMA验收 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | deferred | +| PKG-VAST-06 | artplayer-plugin-vast
验证分发并同步文档 | PKG-VAST-05, ENG-07 | vast.js、SDK 资源、声明消费和独立版本记录;核验实际发布 namespace default、历史深路径、ESM和准确声明,版本按政策2.0.0由REL-09统一处理 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | deferred | | PKG-VAST-07 | artplayer-plugin-vast
恢复旧发布VAST工厂default调用入口 | PKG-VAST-01, PKG-VAST-02 | 保留当前直接工厂并增加default自身别名,验证四类分发调用及异步注册,初始化决策独立保留 | 旧产物default用例失败,新源码/实际main/legacy/ESM通过;真实核心三浏览器控制SDK注册验证、模块文档/构建/测试入口同步;不冒充namespace反射、声明和IMA验收 | M | done | ## 5 包迁移:artplayer-plugin-chromecast @@ -323,8 +324,8 @@ | PKG-CAST-02 | artplayer-plugin-chromecast
建立特有行为与错误测试 | PKG-CAST-01, ENG-03, ENG-05 | SDK 脚本加载失败/重入、无设备/拒绝、重复实例与销毁 | 旧版本行为可重跑,成功/失败/切源/销毁有必要断言 | H | done | | PKG-CAST-03 | artplayer-plugin-chromecast
整理内部职责与资源 | PKG-CAST-02, CORE-11, CORE-13 | SDK singleton/实例订阅/会话与控件职责分离 | 结构变化和缺陷修复分开记录;原 API/事件/资源生命周期通过 | H | done | | PKG-CAST-04 | artplayer-plugin-chromecast
迁移自有源码和公开类型 | PKG-CAST-03, ENG-04, ENG-06, CORE-07 | Cast 能力 adapter、全局对象和元数据类型 | 严格类型检查、旧消费样例通过;声明路径/导出和同步异步兼容 | H | done | -| PKG-CAST-05 | artplayer-plugin-chromecast
验证新旧核心和组合 | PKG-CAST-04, CORE-22 | stub 测试之外记录实际 Cast 设备会话、源更新和断开 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | doing | -| PKG-CAST-06 | artplayer-plugin-chromecast
验证分发并同步文档 | PKG-CAST-05, ENG-07 | chromecast.js、SDK URL/权限能力及待支持环境说明 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | todo | +| PKG-CAST-05 | artplayer-plugin-chromecast
验证新旧核心和组合 | PKG-CAST-04, CORE-22 | stub 测试之外记录实际 Cast 设备会话、源更新和断开 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | deferred | +| PKG-CAST-06 | artplayer-plugin-chromecast
验证分发并同步文档 | PKG-CAST-05, ENG-07 | chromecast.js、SDK URL/权限能力及待支持环境说明 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | deferred | ## 5 包迁移:artplayer-plugin-document-pip @@ -334,8 +335,8 @@ | PKG-DPIP-02 | artplayer-plugin-document-pip
建立特有行为与错误测试 | PKG-DPIP-01, ENG-03, ENG-05 | 不支持/拒绝、重复打开、pagehide、核心销毁和视频 PiP fallback | 旧版本行为可重跑,成功/失败/切源/销毁有必要断言 | H | done | | PKG-DPIP-03 | artplayer-plugin-document-pip
整理内部职责与资源 | PKG-DPIP-02, CORE-16, CORE-17 | 窗口生命周期、DOM 迁移、样式与事件 document 重绑分离 | 结构变化和缺陷修复分开记录;原 API/事件/资源生命周期通过 | H | done | | PKG-DPIP-04 | artplayer-plugin-document-pip
迁移自有源码和公开类型 | PKG-DPIP-03, ENG-04, ENG-06, CORE-07 | Document PiP 可选能力和真实状态/返回类型 | 严格类型检查、旧消费样例通过;声明路径/导出和同步异步兼容 | H | done | -| PKG-DPIP-05 | artplayer-plugin-document-pip
验证新旧核心和组合 | PKG-DPIP-04, CORE-22, PKG-CANVAS-04, PKG-MB-04 | 原生视频及两个 proxy、键盘/焦点/全屏与关闭还原 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | doing | -| PKG-DPIP-06 | artplayer-plugin-document-pip
验证分发并同步文档 | PKG-DPIP-05, ENG-07 | document.pip.js、浏览器能力矩阵、旧接口与恢复证据 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | todo | +| PKG-DPIP-05 | artplayer-plugin-document-pip
验证新旧核心和组合 | PKG-DPIP-04, CORE-22, PKG-CANVAS-04, PKG-MB-04 | 原生视频及两个 proxy、键盘/焦点/全屏与关闭还原 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | deferred | +| PKG-DPIP-06 | artplayer-plugin-document-pip
验证分发并同步文档 | PKG-DPIP-05, ENG-07 | document.pip.js、浏览器能力矩阵、旧接口与恢复证据 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | deferred | ## 5 包迁移:artplayer-plugin-danmuku @@ -348,8 +349,8 @@ | PKG-DANMUKU-05 | artplayer-plugin-danmuku
整理 DOM 渲染、设置、热力图与 worker | PKG-DANMUKU-04, CORE-14, CORE-18 | renderer/setting/heatmap/worker 职责及资源归属 | mount/icons/设置和 worker 协议保持,销毁无后台工作 | H | done | | PKG-DANMUKU-06 | artplayer-plugin-danmuku
迁移 TS 与公开声明 | PKG-DANMUKU-05, ENG-04, ENG-06 | 自有模块、worker 消息、option/item/result 类型 | 旧参数、扩展字段和事件消费通过,vendored 边界清楚 | H | done | | PKG-DANMUKU-07 | artplayer-plugin-danmuku
弹幕能力稳定性验收 | PKG-DANMUKU-06, PKG-DANMUKU-10, PKG-DANMUKU-11, PKG-DANMUKU-12 | 负载/渲染/资源对比及 mask 可依赖的稳定边界 | 在试点核心中旧插件 API 与关键帧路径通过 | H | done | -| PKG-DANMUKU-08 | artplayer-plugin-danmuku
完成新旧核心与组合验收 | PKG-DANMUKU-07, CORE-22, PKG-DANMUKU-START-01 | 最终核心/旧核心、mask/fullscreen/PiP 组合报告 | 性能无未解释退化,反复装卸无累计资源 | H | doing | -| PKG-DANMUKU-09 | artplayer-plugin-danmuku
完成分发、示例与文档 | PKG-DANMUKU-08, ENG-07, PKG-DANMUKU-MASK-LOAD-01, PKG-DANMUKU-START-01 | danmuku.js、README、声明、worker 与产物 | tarball 和静态 icons 等旧调用通过,有独立回退版本 | H | todo | +| PKG-DANMUKU-08 | artplayer-plugin-danmuku
完成新旧核心与组合验收 | PKG-DANMUKU-07, CORE-22, PKG-DANMUKU-START-01 | 最终核心/旧核心、mask/fullscreen/PiP 组合报告 | 性能无未解释退化,反复装卸无累计资源 | H | deferred | +| PKG-DANMUKU-09 | artplayer-plugin-danmuku
完成分发、示例与文档 | PKG-DANMUKU-08, ENG-07, PKG-DANMUKU-MASK-LOAD-01, PKG-DANMUKU-START-01 | danmuku.js、README、声明、worker 与产物 | tarball 和静态 icons 等旧调用通过,有独立回退版本 | H | deferred | | PKG-DANMUKU-10 | artplayer-plugin-danmuku
修复 issue958 密集热力图过高与曲线裁平 | PKG-DANMUKU-05 | 自动密度缩放与曲线边界、历史自定义坐标兼容及真实浏览器红绿证据 | 16000条三种分布在两核心三引擎和source/main/legacy不遮挡;显式轴和自定义points保持旧解释,有单独commit | M | done | | PKG-DANMUKU-11 | artplayer-plugin-danmuku
修复 Worker 隐藏等待吞掉可见寿命 | PKG-DANMUKU-06 | 成功放置时的可见计时与延迟回复回归 | 真实 Worker 延迟下完整显示寿命;保留暂停/回收/取消和公开契约 | M | done | | PKG-DANMUKU-12 | artplayer-plugin-danmuku
保持异步放置期间的原生帧采样与寿命维护 | PKG-DANMUKU-11 | 每帧采样与串行dispatcher、代际buffer及回归 | 异步等待不丢已到时采样、不延迟既有寿命维护;保留顺序、取消与公开readys窗口 | H | done | @@ -363,8 +364,8 @@ | PKG-CANVAS-02 | artplayer-proxy-canvas
建立特有行为与错误测试 | PKG-CANVAS-01, ENG-03, ENG-05 | ready/loadeddata/canplay、play/seek、回调、resize 与销毁 | 旧版本行为可重跑,成功/失败/切源/销毁有必要断言 | H | done | | PKG-CANVAS-03 | artplayer-proxy-canvas
整理内部职责与资源 | PKG-CANVAS-02, CORE-06, CORE-11, CORE-16 | video adapter/原 canvas 方法/RAF 绘制/事件订阅分离 | 结构变化和缺陷修复分开记录;原 API/事件/资源生命周期通过 | H | done | | PKG-CANVAS-04 | artplayer-proxy-canvas
迁移自有源码和公开类型 | PKG-CANVAS-03, ENG-04, ENG-06, CORE-07 | canvas 与媒体能力的精确组合类型,保持 Result | 严格类型检查、旧消费样例通过;声明路径/导出和同步异步兼容 | H | done | -| PKG-CANVAS-05 | artplayer-proxy-canvas
验证新旧核心和组合 | PKG-CANVAS-04, CORE-22, PKG-DPIP-04, PKG-FACTORY-01, PKG-CANVAS-SUBTITLE-01 | 真实 video/canvas 绘制、字幕和 document PiP 恢复 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | doing | -| PKG-CANVAS-06 | artplayer-proxy-canvas
验证分发并同步文档 | PKG-CANVAS-05, ENG-07 | canvas.js、三种产物、调用兼容与资源证据 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | todo | +| PKG-CANVAS-05 | artplayer-proxy-canvas
验证新旧核心和组合 | PKG-CANVAS-04, CORE-22, PKG-DPIP-04, PKG-FACTORY-01, PKG-CANVAS-SUBTITLE-01 | 真实 video/canvas 绘制、字幕和 document PiP 恢复 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | deferred | +| PKG-CANVAS-06 | artplayer-proxy-canvas
验证分发并同步文档 | PKG-CANVAS-05, ENG-07 | canvas.js、三种产物、调用兼容与资源证据 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | deferred | | PKG-CANVAS-SUBTITLE-01 | artplayer-proxy-canvas
修复 Canvas 代理原生字幕轨道挂载 | PKG-CANVAS-04 | 初始字幕能力、原生轨道挂载与资源生命周期适配及新旧核心回归 | 复现旧字幕 cues 为空;新旧核心加载、寻址、切换、销毁通过;普通 Canvas 节点行为和分发入口保持兼容 | M | done | ## 5 包迁移:artplayer-proxy-mediabunny @@ -379,8 +380,8 @@ | PKG-MB-06 | artplayer-proxy-mediabunny
整理音频解码、时钟与同步 | PKG-MB-04 | AudioEngine 时钟、缓冲和 AudioContext 归属 | AV sync、倍速、无音轨、静音/音量和暂停恢复通过 | H | done | | PKG-MB-07 | artplayer-proxy-mediabunny
整理 HLS 配对轨道与 selector | PKG-MB-05, PKG-MB-06, CORE-14 | m3u8 配对、质量/音频选择及拓扑清理 | 实际选择高亮、切到无轨道来源清理、无重复 readiness | H | done | | PKG-MB-08 | artplayer-proxy-mediabunny
完成 TS 与媒体能力声明 | PKG-MB-07, ENG-04, ENG-06 | 8 个自有 JS 模块迁移与 Result/shim 类型 | 解码器/Stream/DOM 类型清楚,旧 Option 和 art.mediabunny 使用保持 | H | done | -| PKG-MB-09 | artplayer-proxy-mediabunny
完成新旧核心和真实媒体组合 | PKG-MB-08, CORE-22 | 跨浏览器能力、长播放、DPiP、HLS 音轨/质量报告 | 资源释放、事件顺序、AV sync 与支持范围满足基线 | H | doing | -| PKG-MB-10 | artplayer-proxy-mediabunny
完成分发和文档 | PKG-MB-09, ENG-07 | mediabunny.js、README、依赖版本、三产物和许可; 拆分media声明后的独立编辑器生成/辅助文件过滤与语义检查(IFRAME-04全量生成时暴露) | tarball 可消费、无意外依赖升级、旧调用与回退可用 | H | todo | +| PKG-MB-09 | artplayer-proxy-mediabunny
完成新旧核心和真实媒体组合 | PKG-MB-08, CORE-22 | 跨浏览器能力、长播放、DPiP、HLS 音轨/质量报告 | 资源释放、事件顺序、AV sync 与支持范围满足基线 | H | deferred | +| PKG-MB-10 | artplayer-proxy-mediabunny
完成分发和文档 | PKG-MB-09, ENG-07 | mediabunny.js、README、依赖版本、三产物和许可; 拆分media声明后的独立编辑器生成/辅助文件过滤与语义检查(IFRAME-04全量生成时暴露) | tarball 可消费、无意外依赖升级、旧调用与回退可用 | H | deferred | ## 5 包迁移:artplayer-tool-iframe @@ -390,8 +391,8 @@ | PKG-IFRAME-02 | artplayer-tool-iframe
建立特有行为与错误测试 | PKG-IFRAME-01, ENG-03, ENG-05 | 跨窗口消息、ID 匹配、请求失败、重复 inject、销毁中请求 | 旧版本行为可重跑,成功/失败/切源/销毁有必要断言 | H | done | | PKG-IFRAME-03 | artplayer-tool-iframe
整理内部职责与资源 | PKG-IFRAME-02, CORE-02, BASE-07 | 请求注册/响应匹配/监听清理分离;origin/source 安全边界独立决策 | 结构变化和缺陷修复分开记录;原 API/事件/资源生命周期通过 | H | done | | PKG-IFRAME-04 | artplayer-tool-iframe
迁移自有源码和公开类型 | PKG-IFRAME-03, ENG-04, ENG-06, CORE-07 | 消息联合类型、回调/Promise 推导、旧公开字段兼容;旧npm export=与实际namespace、额外helper协议分别核验 | 严格类型检查、旧消费样例通过;声明路径/导出和同步异步兼容 | H | done | -| PKG-IFRAME-05 | artplayer-tool-iframe
验证新旧核心和组合 | PKG-IFRAME-04, CORE-22 | 真实同源/跨源 iframe、既有 commit 协议;安全变化有独立结论;新旧核心/demo、实际 BFCache/设备和外部中断导航验收,旧端无文档标记的限制明确 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | doing | -| PKG-IFRAME-06 | artplayer-tool-iframe
验证分发并同步文档 | PKG-IFRAME-05, ENG-07 | iframe.js、示例集成和原 script/class 导出验证;旧包名/额外helper深入口与新工具名的迁移结论; 保留旧npm Function回调及namespace/helper与工具类的区别,核验实际编译后消费而非仅声明通过 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | todo | +| PKG-IFRAME-05 | artplayer-tool-iframe
验证新旧核心和组合 | PKG-IFRAME-04, CORE-22 | 真实同源/跨源 iframe、既有 commit 协议;安全变化有独立结论;新旧核心/demo、实际 BFCache/设备和外部中断导航验收,旧端无文档标记的限制明确 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | deferred | +| PKG-IFRAME-06 | artplayer-tool-iframe
验证分发并同步文档 | PKG-IFRAME-05, ENG-07 | iframe.js、示例集成和原 script/class 导出验证;旧包名/额外helper深入口与新工具名的迁移结论; 保留旧npm Function回调及namespace/helper与工具类的区别,核验实际编译后消费而非仅声明通过 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | deferred | ## 5 包迁移:artplayer-tool-thumbnail @@ -401,8 +402,8 @@ | PKG-TOOL-THUMB-02 | artplayer-tool-thumbnail
建立特有行为与错误测试 | PKG-TOOL-THUMB-01, ENG-03, ENG-05 | 文件输入/拖放、抽帧网格、begin/end、进度/失败/重复任务 | 旧版本行为可重跑,成功/失败/切源/销毁有必要断言 | H | done | | PKG-TOOL-THUMB-03 | artplayer-tool-thumbnail
整理内部职责与资源 | PKG-TOOL-THUMB-02, CORE-01 | 输入、抽帧队列、网格导出、URL/监听清理分离 | 结构变化和缺陷修复分开记录;原 API/事件/资源生命周期通过 | H | done | | PKG-TOOL-THUMB-04 | artplayer-tool-thumbnail
迁移自有源码和公开类型 | PKG-TOOL-THUMB-03, ENG-04, ENG-06, CORE-07, PKG-TOOL-THUMB-07 | 补齐真实 API 声明,自有 emitter/utils TS 化 | 严格类型检查、旧消费样例通过;声明路径/导出和同步异步兼容;为 BASE-DIST-01 提供兼容入口/声明及消费者验证 | H | done | -| PKG-TOOL-THUMB-05 | artplayer-tool-thumbnail
验证新旧核心和组合 | PKG-TOOL-THUMB-04, CORE-22 | 工具独立浏览器使用,生成缩略图在核心中显示 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | doing | -| PKG-TOOL-THUMB-06 | artplayer-tool-thumbnail
验证分发并同步文档 | PKG-TOOL-THUMB-05, ENG-07 | tool.thumbnail.js、历史 ESM 兼容文件、types 路径和 tarball | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | todo | +| PKG-TOOL-THUMB-05 | artplayer-tool-thumbnail
验证新旧核心和组合 | PKG-TOOL-THUMB-04, CORE-22 | 工具独立浏览器使用,生成缩略图在核心中显示 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | deferred | +| PKG-TOOL-THUMB-06 | artplayer-tool-thumbnail
验证分发并同步文档 | PKG-TOOL-THUMB-05, ENG-07 | tool.thumbnail.js、历史 ESM 兼容文件、types 路径和 tarball | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | deferred | | PKG-TOOL-THUMB-07 | artplayer-tool-thumbnail
恢复清理和销毁中的原始异常传播 | PKG-TOOL-THUMB-03 | 清理记录与异常值分离,保留首个 falsy 抛出值并继续释放资源;历史对照、真实DOM、分发验证及维护记录 | 恢复旧 destroy 监听器同步异常语义,0/false/undefined/NaN等不被吞掉或覆盖;后续清理、重复销毁与正常抽帧回归通过,默认兼容决策不受影响 | M | done | ## 6 文档与消费者 @@ -418,12 +419,12 @@ | SITE-03 | artplayer-vitepress
整理 i18n/文档/LLM 生成流程 | SITE-02, SITE-LOAD-01, SITE-AI-DOCS-01, SITE-BUILD-01 | build-i18n/build-docs/build-llm/trans-docs 的任务边界和错误处理;桌面 common.js 自有 UI 的 TS 迁移与模块拆分 | 原命令兼容、生成可复现,翻译步骤不隐式运行远程服务;覆盖移动 loader 失败恢复 define、脚本依赖顺序、localhost/127.0.0.1 Run Code 目标和语言重定向;桌面剩余 UI 完成 TS 职责拆分并回归运行、导入与持久设置 | M | done | | SITE-DANMUKU-01 | artplayer-vitepress, artplayer-plugin-danmuku
核对弹幕双语指南并补齐英文入口 | SITE-03, PKG-DANMUKU-07 | 按实现修正中文调用说明,新增英文完整选项/API/热力图/类型指南和导航;同步生成站点与LLM资料,新增双语示例浏览器验收 | 旧中文URL和标题保留;实际方法返回、加载语义、回调与points边界准确;双语页面、Run Code及示例实测,完整插件组合和设备验收不冒充完成 | L | done | | SITE-04 | artplayer-vitepress
交叉核对逐包持续维护的文档 | CORE-21, SITE-03, PKG-CHAPTER-04, PKG-AMBILIGHT-04, PKG-AUDIO-04, PKG-AUTO-THUMB-04, PKG-VTT-THUMB-04, PKG-HLS-04, PKG-DASH-04, PKG-MULTI-SUB-04, PKG-JASSUB-04, PKG-MASK-04, PKG-ASR-04, PKG-ADS-04, PKG-VAST-04, PKG-CAST-04, PKG-DPIP-04, PKG-CANVAS-04, PKG-IFRAME-04, PKG-TOOL-THUMB-04, PKG-DANMUKU-06, PKG-MB-08, SITE-DANMUKU-01, SITE-HLS-01, SITE-DASH-01, SITE-AUDIO-01, SITE-VTT-01, SITE-ROUTES-01, SITE-EDITOR-VAST-01 | 已随实现更新的中文/英文 API、包内实现地图、旧 JS 示例及已知能力限制的全包核对 | 未把缺环境的能力写成已验证,静态核对不等待设备任务;最终 demo 仍由 EX-03 验收;按 SITE-01 声明成员/候选标题清单逐项语义核对,补齐缺失的双语插件说明和 Danmuku 英文入口 | M | done | -| SITE-05 | artplayer-vitepress
构建文档站和验证链接/示例 | SITE-04, EX-01, EX-02, SITE-VCONSOLE-01, SITE-CONSOLE-01 | VitePress 构建、链接与嵌入 demo 检查 | 文档构建、链接、嵌入路径与声明注入通过;真实完整 demo 保留 EX-03 独立门槛;核对 ENG-PM-01 登记的搜索 peer 范围和真实搜索行为 | M | doing | -| SITE-06 | artplayer-vitepress
文档站交付验收 | SITE-05, SITE-07 | 维护指南和站点变更记录 | 未手改 generated 目录,旧 URL 可用、部署与检查分离 | M | todo | -| SITE-07 | artplayer-vitepress, workspace
整理站点第三方资产与来源说明 | SITE-01 | Monaco/vConsole/console bundle/字体和样本的冻结来源、可复现构建或替代与站点 notices | 接续 SITE-01 的字节与换行差异证据;完整许可随实际分发,consoleLog/global/CSS/worker 与旧 URL 兼容;缺字体/媒体使用依据明确处置;资产变更后执行编辑器/移动/字幕/示例回归,不以来源指纹替代授权或运行证据 | H | doing | +| SITE-05 | artplayer-vitepress
构建文档站和验证链接/示例 | SITE-04, EX-01, EX-02, SITE-VCONSOLE-01, SITE-CONSOLE-01 | VitePress 构建、链接与嵌入 demo 检查 | 文档构建、链接、嵌入路径与声明注入通过;真实完整 demo 保留 EX-03 独立门槛;核对 ENG-PM-01 登记的搜索 peer 范围和真实搜索行为 | M | deferred | +| SITE-06 | artplayer-vitepress
文档站交付验收 | SITE-05, SITE-07 | 维护指南和站点变更记录 | 未手改 generated 目录,旧 URL 可用、部署与检查分离 | M | deferred | +| SITE-07 | artplayer-vitepress, workspace
整理站点第三方资产与来源说明 | SITE-01 | Monaco/vConsole/console bundle/字体和样本的冻结来源、可复现构建或替代与站点 notices | 接续 SITE-01 的字节与换行差异证据;完整许可随实际分发,consoleLog/global/CSS/worker 与旧 URL 兼容;缺字体/媒体使用依据明确处置;资产变更后执行编辑器/移动/字幕/示例回归,不以来源指纹替代授权或运行证据 | H | deferred | | EX-01 | example/react.js, workspace
验证 React 消费者与 TS | CORE-22, ENG-07 | React 挂载/卸载/重挂载、引用和插件样例 | 真实 tarball + TS 消费通过,保留既有 React 集成 API | M | done | | EX-02 | example/vue.js, workspace
验证 Vue 消费者与更新卸载 | CORE-22, ENG-07 | Vue 实例/ref、参数更新、卸载及插件样例 | 旧 JS 组件用法无需修改,重复挂载不泄漏 | M | done | -| EX-03 | workspace
验证全部原生 demo 与外部播放集成 | EX-01, EX-02, PKG-CHAPTER-06, PKG-AMBILIGHT-06, PKG-AUDIO-06, PKG-AUTO-THUMB-06, PKG-VTT-THUMB-06, PKG-HLS-06, PKG-DASH-06, PKG-MULTI-SUB-06, PKG-JASSUB-06, PKG-MASK-06, PKG-ASR-06, PKG-ADS-06, PKG-VAST-06, PKG-CAST-06, PKG-DPIP-06, PKG-DANMUKU-09, PKG-CANVAS-06, PKG-MB-10, PKG-IFRAME-06, PKG-TOOL-THUMB-06 | 8082 全 demo、HLS/DASH/FLV/MPEGTS/WebTorrent 集成记录 | 旧 URL/参数/脚本加载保持;网络/SDK 限制明确,不静默跳过;覆盖编辑器重复 Run 和 ESM/i18n/mobile/iframe,记录实际候选脚本及状态隔离证据;依据 BASE-04 路径台账逐项消除 not-run,处理 BASE-DEMO-01 | H | todo | +| EX-03 | workspace
验证全部原生 demo 与外部播放集成 | EX-01, EX-02, PKG-CHAPTER-06, PKG-AMBILIGHT-06, PKG-AUDIO-06, PKG-AUTO-THUMB-06, PKG-VTT-THUMB-06, PKG-HLS-06, PKG-DASH-06, PKG-MULTI-SUB-06, PKG-JASSUB-06, PKG-MASK-06, PKG-ASR-06, PKG-ADS-06, PKG-VAST-06, PKG-CAST-06, PKG-DPIP-06, PKG-DANMUKU-09, PKG-CANVAS-06, PKG-MB-10, PKG-IFRAME-06, PKG-TOOL-THUMB-06 | 8082 全 demo、HLS/DASH/FLV/MPEGTS/WebTorrent 集成记录 | 旧 URL/参数/脚本加载保持;网络/SDK 限制明确,不静默跳过;覆盖编辑器重复 Run 和 ESM/i18n/mobile/iframe,记录实际候选脚本及状态隔离证据;依据 BASE-04 路径台账逐项消除 not-run,处理 BASE-DEMO-01 | H | deferred | | SITE-VCONSOLE-01 | artplayer-vitepress, workspace
修复 vConsole 日志帧与延迟面板销毁竞态 | SITE-01 | 冻结上游 bundle 的可复现 TS 生命周期补丁、旧红新绿回归、来源及生成检查;销毁后虚拟列表布局续段停止 | 最后日志插件移除后取消 RAF 并隔离旧队列;延迟面板不得写入已销毁或替换插件;三引擎移动页与 UMD 入口通过,维护声明与原有许可缺口分别记录;原生 ResizeObserver 布局与挂起 timer 旧红新绿 | M | done | | SITE-CONSOLE-01 | artplayer-vitepress, workspace
迁移控制台自有 TS 源码并修复日志生命周期 | SITE-03 | 从冻结 console.js 恢复自有入口/视图的 TS 模块、受控第三方边界与可验证构建;修复滚动回调、多容器 hook 所有权和原生 Error 消息丢失 | 保留 consoleLog 返回组件、React/ReactDOM/Parcel 全局及 DOM/CSS/日志对象语义;旧版复现与候选正确行为分开验证;多容器、卸载/重挂、外部 hook、错误/滚动及真实编辑器组合通过;架构与生成文档同批更新,不以冻结 vendor 代替 SITE-07 许可闭环 | H | done | | SITE-ROUTES-01 | artplayer-vitepress, workspace
将新增文档HTML纳入保留历史的路径覆盖台账 | BASE-04, SITE-03 | 不覆盖BASE-04的HTML增量台账、准确路由/责任校验及完整CI证据 | 复现完整ci:check的路径覆盖失败;新页面必须显式登记,拒绝漏项/重复/错误路由/越界/缺任务和提交,保留旧页面保护及浏览器验收边界 | M | done | @@ -445,8 +446,8 @@ | MOD-02 | workspace
整理剩余开发/构建脚本与插件模板 | ENG-06, SITE-03, MOD-PLUGIN-01 | dev/build/utils/create-plugin 的 TS 与可测 CLI,模板同时提供旧 API | 旧脚本入口保留、新插件类型/测试/示例齐全,Lerna 改动单独取证 | M | done | | MOD-DEV-01 | workspace
修复开发服务器失败状态并明确资源生命周期 | MOD-02 | 修复 Servor 占用端口却退出 0 的已复现问题;明确 HTTP/监听/热刷新连接与定时器的启动、失败和关闭责任 | 保持默认 8082、docs 页面、自动刷新和旧 dev 命令;端口冲突退出非零且不终止其他服务,连续启动/停止及编译错误恢复有实际验证;跨平台监听差异单独留证 | M | done | | MOD-03 | workspace
测量并优化核心热路径 | CORE-22, ENG-08 | DOM 读写、进度更新、持久化、初始化的测量与改进 | 相同设备媒体多次比较,契约不变,收益及无效尝试记录;复用 BASE-06 的原始样本与测量限制,至少三组同环境旧新配对,不以单次变快宣称收益 | M | done | -| MOD-04 | workspace
测量并优化重型插件/proxy | PKG-DANMUKU-09, PKG-MASK-06, PKG-MB-10, ENG-08 | 帧/队列/推理/音画同步与资源长期运行比较 | 不改默认算法/阈值,性能改善有证据;无收益则保留旧实现 | M | todo | -| MOD-05 | workspace
完成工具链与性能采用决策 | MOD-01, MOD-02, MOD-03, MOD-04, MOD-DEV-01 | 最终 runtime/packageManager/构建配置及性能台账 | 干净安装和全包检查通过;Bun 未采用有理由,不为状态强行切换 | M | todo | +| MOD-04 | workspace
测量并优化重型插件/proxy | PKG-DANMUKU-09, PKG-MASK-06, PKG-MB-10, ENG-08 | 帧/队列/推理/音画同步与资源长期运行比较 | 不改默认算法/阈值,性能改善有证据;无收益则保留旧实现 | M | deferred | +| MOD-05 | workspace
完成工具链与性能采用决策 | MOD-01, MOD-02, MOD-03, MOD-04, MOD-DEV-01 | 最终 runtime/packageManager/构建配置及性能台账 | 干净安装和全包检查通过;Bun 未采用有理由,不为状态强行切换 | M | deferred | ## 8 发布验收 @@ -455,20 +456,20 @@ | REL-08 | workspace
提前建立逐包发布准入台账 | BASE-08, ENG-07 | 每批包/版本/源码/锁文件/工具/tarball integrity、必需测试/设备证据、限制和回退映射 | 受影响能力缺证据明确阻止对应批次;无关批次可独立准备,旧证据在候选内容变化后失效;站点采用真实构建/URL/资源验收,npm 分发依据历史核实,不从版本清单推断新增发布范围;关联 risks.json 和 third-party.json;受影响 bundle/worker/WASM/font/模型的来源与许可通知缺口必须有审查结论,未决项阻止对应批次 | H | done | | REL-01 | workspace
提前确定分包版本与差异方案 | REL-08, CORE-21, SITE-03, PKG-CHAPTER-04, PKG-AMBILIGHT-04, PKG-AUDIO-04, PKG-AUTO-THUMB-04, PKG-VTT-THUMB-04, PKG-HLS-04, PKG-DASH-04, PKG-MULTI-SUB-04, PKG-JASSUB-04, PKG-MASK-04, PKG-ASR-04, PKG-ADS-04, PKG-VAST-04, PKG-CAST-04, PKG-DPIP-04, PKG-CANVAS-04, PKG-IFRAME-04, PKG-TOOL-THUMB-04, PKG-DANMUKU-06, PKG-MB-08, PKG-FACTORY-01 | 每包版本/变更日志/依赖/类型差异方案和独立准入状态;按 version-policy.md 冻结各包下一 major(minor/patch 归零)并核实 registry 占用 | 所有包有方案和剩余门槛,未决项明确阻止相应发布;本步骤不声称已经可发布;全部包有 major 目标,版本冲突明确处理,独立准备任务同步 manifest/锁/依赖/日志;按 BASE-05 区分 21 库与文档站分发,不机械把文档站当库上传 npm | H | done | | REL-09 | workspace
落实全包下一 major 版本及依赖元数据 | REL-01, DOC-11 | 22 包版本目标落实、适用锁文件/依赖范围/示例/变更日志同步,核实 registry 版本占用 | 版本与 policy 一致,旧核心支持保留;必要拆子任务各自提交,候选构建前完成,不执行 publish | H | done | -| REL-02 | workspace
生成候选 tarball 并验证新旧组合 | REL-01, CORE-22, ENG-07, REL-09, REL-04 | 各候选本地 tarball/integrity 与新旧核心/插件消费者验证报告,外部门槛单独标注 | 隔离安装和可自动化组合通过;设备结论不伪造,最终发布绑定同一候选内容;在目标 major 版本确定后构建 pack,不在测试后改版本;逐包核验完整回退产物、实际候选版本/integrity、应用导入与冻结锁,重跑对应回退并保留报告;缺失历史分发不准入 | H | doing | -| REL-03 | workspace
完成真机、外部 SDK 与压力验收 | REL-02, EX-03, SITE-06, MOD-05 | Safari/移动/PiP/Cast/IMA/模型/长播放完整报告 | 包集成与全项目真机/SDK/压力结论齐全才完成本汇总;独立批次先建立自己的完整门槛子任务 | H | todo | +| REL-02 | workspace
生成候选 tarball 并验证新旧组合 | REL-01, CORE-22, ENG-07, REL-09, REL-04 | 各候选本地 tarball/integrity 与新旧核心/插件消费者验证报告,外部门槛单独标注 | 隔离安装和可自动化组合通过;设备结论不伪造,最终发布绑定同一候选内容;在目标 major 版本确定后构建 pack,不在测试后改版本;逐包核验完整回退产物、实际候选版本/integrity、应用导入与冻结锁,重跑对应回退并保留报告;缺失历史分发不准入 | H | deferred | +| REL-03 | workspace
完成真机、外部 SDK 与压力验收 | REL-02, EX-03, SITE-06, MOD-05 | Safari/移动/PiP/Cast/IMA/模型/长播放完整报告 | 包集成与全项目真机/SDK/压力结论齐全才完成本汇总;独立批次先建立自己的完整门槛子任务 | H | deferred | | REL-04 | workspace
提前演练回退与主线修复同步 | REL-08, ENG-07 | 分包旧版本/tag/依赖回退方案与 master 差异 | 隔离包演练可回退,主线修复同步流程可执行;正式每批再核对其实际回退产物 | H | done | -| REL-05 | workspace
经授权发布候选并收集反馈 | REL-03, REL-04, REVIEW-03 | 候选 tag、完整产物 integrity、反馈与复现记录 | 实际发布授权/操作/版本可追溯;本计划不自动执行发布 | H | todo | -| REL-06 | workspace
经授权分批正式发布 | REL-05 | 正式分包版本/tag/站点文档及兼容公告 | 候选验收通过,安装/浏览器复核和回退入口就绪;候选反馈修复须独立建任务并复验三轮受影响结论,正式内容与最终验证产物一致 | H | todo | -| REL-07 | workspace
关闭重构里程碑并维护后续队列 | REL-06, ENG-LINT-01, ENG-LINT-02 | 最终任务/设计/证据归档和维护指南 | 全范围任务有结论、无未解释兼容缺口;遗留项有明确后续责任 | L | todo | +| REL-05 | workspace
经授权发布候选并收集反馈 | REL-03, REL-04, REVIEW-03 | 候选 tag、完整产物 integrity、反馈与复现记录 | 实际发布授权/操作/版本可追溯;本计划不自动执行发布 | H | deferred | +| REL-06 | workspace
经授权分批正式发布 | REL-05 | 正式分包版本/tag/站点文档及兼容公告 | 候选验收通过,安装/浏览器复核和回退入口就绪;候选反馈修复须独立建任务并复验三轮受影响结论,正式内容与最终验证产物一致 | H | deferred | +| REL-07 | workspace
关闭重构里程碑并维护后续队列 | REL-06, ENG-LINT-01, ENG-LINT-02 | 最终任务/设计/证据归档和维护指南 | 全范围任务有结论、无未解释兼容缺口;遗留项有明确后续责任 | L | deferred | ## 8.1 多轮复盘 | ID | 范围 / 步骤 | 前置依赖 | 交付物 | 验收条件 | 风险 | 状态 | | --- | --- | --- | --- | --- | --- | --- | -| REVIEW-01 | workspace
第一轮全项目架构与兼容性复盘 | REL-02, CORE-22, SITE-04, DOC-08, MOD-01, MOD-02, MOD-03, CORE-25, ENG-13, DOC-REVIEW-01 | 22 包结构、类型、旧 API/路径、测试盲区和维护文档的逐包报告 | 本轮阻断项由独立修复任务关闭并复测;环境缺口转交下一轮,不宣称已发布就绪 | H | todo | -| REVIEW-02 | workspace
第二轮真实浏览器与生态集成复盘 | REVIEW-01, REL-03 | Chrome 交互、自动浏览器、新旧组合、真机/SDK/性能/资源的全范围报告 | 所需环境证据齐全,前轮修复再次核对;本轮阻断项关闭,无关 mock 不替代真实验收 | H | todo | -| REVIEW-03 | workspace
第三轮 npm 候选内容与发布准备复盘 | REVIEW-02, REL-04, CI-04 | 实际候选 integrity、干净安装构建/消费者、入口/许可/版本/tag/回退及前轮证据汇总 | 最终候选完整检查通过,发布阻断项为零;准备可审阅的批次报告,不自动执行 publish;逐包核对 major 目标,不能用大版本豁免旧 API 兼容 | H | todo | +| REVIEW-01 | workspace
第一轮全项目架构与兼容性复盘 | REL-02, CORE-22, SITE-04, DOC-08, MOD-01, MOD-02, MOD-03, CORE-25, ENG-13, DOC-REVIEW-01 | 22 包结构、类型、旧 API/路径、测试盲区和维护文档的逐包报告 | 本轮阻断项由独立修复任务关闭并复测;环境缺口转交下一轮,不宣称已发布就绪 | H | deferred | +| REVIEW-02 | workspace
第二轮真实浏览器与生态集成复盘 | REVIEW-01, REL-03 | Chrome 交互、自动浏览器、新旧组合、真机/SDK/性能/资源的全范围报告 | 所需环境证据齐全,前轮修复再次核对;本轮阻断项关闭,无关 mock 不替代真实验收 | H | deferred | +| REVIEW-03 | workspace
第三轮 npm 候选内容与发布准备复盘 | REVIEW-02, REL-04, CI-04 | 实际候选 integrity、干净安装构建/消费者、入口/许可/版本/tag/回退及前轮证据汇总 | 最终候选完整检查通过,发布阻断项为零;准备可审阅的批次报告,不自动执行 publish;逐包核对 major 目标,不能用大版本豁免旧 API 兼容 | H | deferred | ## 5 工厂类型兼容补审 @@ -542,8 +543,10 @@ - ENG-09: [记录](changes/2026-09-12-ENG-09-integration.md) [记录](baselines/engineering-integration.json) - ENG-10: [记录](changes/2026-09-10-ENG-10-test-reliability.md) [记录](test-reliability.md) - ENG-11: [记录](build-analysis.md) [记录](baselines/bundle-attribution.json) [记录](changes/2026-09-11-ENG-11-build-analysis.md) -- CI-01: [记录](ci-setup.md) [记录](changes/2026-09-13-CI-01-matrix-summary.md) [记录](baselines/ci-matrix-validation.json) [记录](changes/2026-09-13-CI-01-node-consumers.md) [记录](baselines/node-consumer-validation.json) [记录](changes/2026-09-14-CI-01-installed-full.md) [记录](baselines/ci-installed-full-validation.json) [记录](changes/2026-09-14-CI-01-source-chromium.md) [记录](baselines/ci-source-chromium-validation.json) [记录](changes/2026-09-15-CI-01-ads-installed.md) [记录](baselines/ci-ads-installed-validation.json) [记录](changes/2026-09-15-CI-01-subtitles-installed.md) [记录](baselines/ci-subtitles-installed-validation.json) [记录](changes/2026-09-15-CI-01-adaptive-installed.md) [记录](baselines/ci-adaptive-installed-validation.json) [记录](changes/2026-09-15-CI-01-asr-cast-installed.md) [记录](baselines/ci-asr-cast-installed-validation.json) [记录](changes/2026-09-15-CI-01-mediabunny-installed.md) [记录](baselines/ci-mediabunny-installed-validation.json) [记录](changes/2026-09-15-CI-01-jassub-installed.md) [记录](baselines/ci-jassub-installed-validation.json) [记录](changes/2026-09-15-CI-01-danmuku-installed.md) [记录](baselines/ci-danmuku-installed-validation.json) [记录](changes/2026-09-15-CI-01-browser-matrix.md) [记录](baselines/ci-browser-matrix-validation.json) [记录](changes/2026-09-15-CI-01-iframe-installed.md) [记录](baselines/ci-iframe-installed-validation.json) [记录](changes/2026-09-15-CI-01-vast-installed.md) [记录](baselines/ci-vast-installed-validation.json) [记录](changes/2026-09-15-CI-01-rendering-policy.md) [记录](baselines/ci-rendering-policy-validation.json) [记录](changes/2026-09-15-SITE-ROUTES-01-html-inventory.md) [记录](baselines/site-routes-validation.json) [记录](baselines/ci-source-firefox-validation.json) [记录](changes/2026-09-15-SITE-EDITOR-VAST-01-consumer.md) [记录](changes/2026-09-15-CI-01-source-webkit.md) [记录](baselines/ci-source-webkit-validation.json) [记录](changes/2026-09-15-CI-JASSUB-SOURCE-01-native-inputs.md) [记录](baselines/jassub-source-selection-validation.json) [记录](changes/2026-09-15-CI-01-installed-chromium.md) [记录](baselines/ci-installed-chromium-validation.json) [记录](changes/2026-09-15-CI-01-installed-firefox.md) [记录](baselines/ci-installed-firefox-validation.json) [记录](changes/2026-09-15-CI-01-installed-webkit.md) [记录](baselines/ci-installed-webkit-validation.json) +- CI-01: [记录](ci-setup.md) [记录](changes/2026-09-13-CI-01-matrix-summary.md) [记录](baselines/ci-matrix-validation.json) [记录](changes/2026-09-13-CI-01-node-consumers.md) [记录](baselines/node-consumer-validation.json) [记录](changes/2026-09-14-CI-01-installed-full.md) [记录](baselines/ci-installed-full-validation.json) [记录](changes/2026-09-14-CI-01-source-chromium.md) [记录](baselines/ci-source-chromium-validation.json) [记录](changes/2026-09-15-CI-01-ads-installed.md) [记录](baselines/ci-ads-installed-validation.json) [记录](changes/2026-09-15-CI-01-subtitles-installed.md) [记录](baselines/ci-subtitles-installed-validation.json) [记录](changes/2026-09-15-CI-01-adaptive-installed.md) [记录](baselines/ci-adaptive-installed-validation.json) [记录](changes/2026-09-15-CI-01-asr-cast-installed.md) [记录](baselines/ci-asr-cast-installed-validation.json) [记录](changes/2026-09-15-CI-01-mediabunny-installed.md) [记录](baselines/ci-mediabunny-installed-validation.json) [记录](changes/2026-09-15-CI-01-jassub-installed.md) [记录](baselines/ci-jassub-installed-validation.json) [记录](changes/2026-09-15-CI-01-danmuku-installed.md) [记录](baselines/ci-danmuku-installed-validation.json) [记录](changes/2026-09-15-CI-01-browser-matrix.md) [记录](baselines/ci-browser-matrix-validation.json) [记录](changes/2026-09-15-CI-01-iframe-installed.md) [记录](baselines/ci-iframe-installed-validation.json) [记录](changes/2026-09-15-CI-01-vast-installed.md) [记录](baselines/ci-vast-installed-validation.json) [记录](changes/2026-09-15-CI-01-rendering-policy.md) [记录](baselines/ci-rendering-policy-validation.json) [记录](changes/2026-09-15-SITE-ROUTES-01-html-inventory.md) [记录](baselines/site-routes-validation.json) [记录](baselines/ci-source-firefox-validation.json) [记录](changes/2026-09-15-SITE-EDITOR-VAST-01-consumer.md) [记录](changes/2026-09-15-CI-01-source-webkit.md) [记录](baselines/ci-source-webkit-validation.json) [记录](changes/2026-09-15-CI-JASSUB-SOURCE-01-native-inputs.md) [记录](baselines/jassub-source-selection-validation.json) [记录](changes/2026-09-15-CI-01-installed-chromium.md) [记录](baselines/ci-installed-chromium-validation.json) [记录](changes/2026-09-15-CI-01-installed-firefox.md) [记录](baselines/ci-installed-firefox-validation.json) [记录](changes/2026-09-15-CI-01-installed-webkit.md) [记录](baselines/ci-installed-webkit-validation.json) [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - CI-02: [记录](changes/2026-09-14-CI-02-pages-artifact.md) [记录](baselines/pages-artifact-validation.json) [记录](pages-deployment.md) +- CI-03: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- CI-04: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - PILOT-01: [记录](changes/2026-09-10-PILOT-01-chapter.md) [记录](baselines/pilot-validation.json) - CORE-01: [记录](changes/2026-09-10-CORE-01-typed-utils.md) [记录](baselines/core-utils-validation.json) - CORE-02: [记录](changes/2026-09-11-CORE-02-typed-emitter.md) [记录](baselines/emitter-validation.json) @@ -573,81 +576,99 @@ - PKG-CHAPTER-02: [记录](changes/2026-09-10-PKG-CHAPTER-02-tests.md) [记录](baselines/chapter-validation.json) - PKG-CHAPTER-03: [记录](changes/2026-09-10-PKG-CHAPTER-03-typescript-modules.md) [记录](baselines/chapter-migration-validation.json) - PKG-CHAPTER-04: [记录](changes/2026-09-10-PKG-CHAPTER-04-public-types.md) [记录](baselines/chapter-types-validation.json) -- PKG-CHAPTER-05: [记录](changes/2026-09-12-PKG-CHAPTER-05-combinations.md) [记录](baselines/chapter-combinations-checkpoint.json) [记录](changes/2026-09-14-PKG-CHAPTER-05-timing.md) [记录](baselines/chapter-timing-observations.json) [记录](changes/2026-09-15-PKG-CHAPTER-05-native-timing.md) [记录](baselines/chapter-native-timing-validation.json) [记录](changes/2026-09-16-PKG-CHAPTER-05-major-timing.md) [记录](baselines/chapter-major-timing-validation.json) +- PKG-CHAPTER-05: [记录](changes/2026-09-12-PKG-CHAPTER-05-combinations.md) [记录](baselines/chapter-combinations-checkpoint.json) [记录](changes/2026-09-14-PKG-CHAPTER-05-timing.md) [记录](baselines/chapter-timing-observations.json) [记录](changes/2026-09-15-PKG-CHAPTER-05-native-timing.md) [记录](baselines/chapter-native-timing-validation.json) [记录](changes/2026-09-16-PKG-CHAPTER-05-major-timing.md) [记录](baselines/chapter-major-timing-validation.json) [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- PKG-CHAPTER-06: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - PKG-AMBILIGHT-01: [记录](changes/2026-09-12-PKG-AMBILIGHT-01-contract.md) [记录](baselines/ambilight-contract.md) [记录](baselines/ambilight-release.json) [记录](baselines/ambilight-contract-validation.json) - PKG-AMBILIGHT-02: [记录](changes/2026-09-12-PKG-AMBILIGHT-02-tests.md) [记录](baselines/ambilight-behavior-validation.json) [记录](ambilight-validation.md) - PKG-AMBILIGHT-03: [记录](changes/2026-09-12-PKG-AMBILIGHT-03-lifecycle.md) [记录](ambilight-validation.md) [记录](baselines/ambilight-lifecycle-validation.json) - PKG-AMBILIGHT-04: [记录](changes/2026-09-12-PKG-AMBILIGHT-04-types.md) [记录](ambilight-validation.md) [记录](baselines/ambilight-types-validation.json) - PKG-AMBILIGHT-PROXY-01: [记录](changes/2026-09-12-PKG-AMBILIGHT-PROXY-01-sampling.md) [记录](ambilight-validation.md) [记录](baselines/ambilight-proxy-validation.json) -- PKG-AMBILIGHT-05: [记录](changes/2026-09-12-PKG-AMBILIGHT-PROXY-01-sampling.md) [记录](ambilight-validation.md) [记录](changes/2026-09-14-PKG-AMBILIGHT-05-installed-combination.md) [记录](baselines/ambilight-installed-validation.json) +- PKG-AMBILIGHT-05: [记录](changes/2026-09-12-PKG-AMBILIGHT-PROXY-01-sampling.md) [记录](ambilight-validation.md) [记录](changes/2026-09-14-PKG-AMBILIGHT-05-installed-combination.md) [记录](baselines/ambilight-installed-validation.json) [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- PKG-AMBILIGHT-06: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - PKG-AUDIO-01: [记录](changes/2026-09-12-PKG-AUDIO-01-contract.md) [记录](baselines/audio-track-contract.md) [记录](baselines/audio-track-release.json) - PKG-AUDIO-02: [记录](changes/2026-09-12-PKG-AUDIO-02-tests.md) [记录](audio-validation.md) [记录](baselines/audio-validation.json) - PKG-AUDIO-03: [记录](changes/2026-09-12-PKG-AUDIO-03-lifecycle.md) [记录](baselines/audio-lifecycle-validation.json) - PKG-AUDIO-04: [记录](changes/2026-09-12-PKG-AUDIO-04-types.md) [记录](baselines/audio-types-validation.json) -- PKG-AUDIO-05: [记录](changes/2026-09-12-PKG-AUDIO-05-combinations.md) [记录](baselines/audio-combinations-first.json) [记录](baselines/audio-combinations-checkpoint.json) [记录](audio-validation.md) [记录](changes/2026-09-15-PKG-AUDIO-05-prefix.md) [记录](baselines/audio-prefix-validation.json) +- PKG-AUDIO-05: [记录](changes/2026-09-12-PKG-AUDIO-05-combinations.md) [记录](baselines/audio-combinations-first.json) [记录](baselines/audio-combinations-checkpoint.json) [记录](audio-validation.md) [记录](changes/2026-09-15-PKG-AUDIO-05-prefix.md) [记录](baselines/audio-prefix-validation.json) [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- PKG-AUDIO-06: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - PKG-AUTO-THUMB-01: [记录](baselines/auto-thumbnail-release.json) [记录](baselines/auto-thumbnail-contract.md) [记录](changes/2026-09-13-PKG-AUTO-THUMB-01-contract.md) [记录](baselines/auto-thumbnail-contract-validation.json) - PKG-AUTO-THUMB-02: [记录](baselines/auto-thumbnail-failures.md) [记录](baselines/auto-thumbnail-failures-validation.json) [记录](changes/2026-09-13-PKG-AUTO-THUMB-02-failures.md) -- PKG-AUTO-THUMB-03: [记录](changes/2026-09-13-PKG-AUTO-THUMB-03-lifecycle-checkpoint.md) [记录](baselines/auto-thumbnail-lifecycle-checkpoint.json) [记录](changes/2026-09-13-PKG-AUTO-THUMB-03-hidden-renderer.md) [记录](baselines/auto-thumbnail-hidden-renderer.json) [记录](baselines/auto-thumbnail-timeline-media.json) [记录](changes/2026-09-13-PKG-AUTO-THUMB-03-frame-presentation.md) [记录](baselines/auto-thumbnail-frame-presentation.json) [记录](changes/2026-09-14-PKG-AUTO-THUMB-03-rendering-readiness.md) [记录](baselines/auto-thumbnail-rendering-readiness.json) [记录](changes/2026-09-14-PKG-AUTO-THUMB-03-first-seek.md) [记录](baselines/auto-thumbnail-first-seek.json) [记录](changes/2026-09-14-PKG-AUTO-THUMB-03-native-decoder.md) [记录](baselines/auto-thumbnail-native-decoder.json) +- PKG-AUTO-THUMB-03: [记录](changes/2026-09-13-PKG-AUTO-THUMB-03-lifecycle-checkpoint.md) [记录](baselines/auto-thumbnail-lifecycle-checkpoint.json) [记录](changes/2026-09-13-PKG-AUTO-THUMB-03-hidden-renderer.md) [记录](baselines/auto-thumbnail-hidden-renderer.json) [记录](baselines/auto-thumbnail-timeline-media.json) [记录](changes/2026-09-13-PKG-AUTO-THUMB-03-frame-presentation.md) [记录](baselines/auto-thumbnail-frame-presentation.json) [记录](changes/2026-09-14-PKG-AUTO-THUMB-03-rendering-readiness.md) [记录](baselines/auto-thumbnail-rendering-readiness.json) [记录](changes/2026-09-14-PKG-AUTO-THUMB-03-first-seek.md) [记录](baselines/auto-thumbnail-first-seek.json) [记录](changes/2026-09-14-PKG-AUTO-THUMB-03-native-decoder.md) [记录](baselines/auto-thumbnail-native-decoder.json) [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - PKG-AUTO-THUMB-04: [记录](changes/2026-09-15-PKG-AUTO-THUMB-04-migration.md) [记录](baselines/auto-thumbnail-migration-validation.json) [记录](changes/2026-09-13-PKG-AUTO-THUMB-03-internal-types.md) [记录](baselines/auto-thumbnail-metadata-validation.json) +- PKG-AUTO-THUMB-05: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- PKG-AUTO-THUMB-06: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - PKG-VTT-THUMB-01: [记录](baselines/vtt-thumbnail-release.json) [记录](baselines/vtt-thumbnail-contract.md) [记录](changes/2026-09-13-PKG-VTT-THUMB-01-contract.md) - PKG-VTT-THUMB-02: [记录](baselines/vtt-thumbnail-failures.json) [记录](changes/2026-09-13-PKG-VTT-THUMB-02-failures.md) - PKG-VTT-THUMB-03: [记录](changes/2026-09-13-PKG-VTT-THUMB-03-resources.md) [记录](baselines/vtt-thumbnail-resources.json) [记录](changes/2026-09-13-PKG-VTT-THUMB-03-parser.md) [记录](baselines/vtt-thumbnail-parser.json) - PKG-VTT-THUMB-04: [记录](changes/2026-09-13-PKG-VTT-THUMB-04-runtime-types.md) [记录](baselines/vtt-thumbnail-runtime-types.json) [记录](changes/2026-09-13-PKG-VTT-THUMB-04-public-types.md) [记录](baselines/vtt-thumbnail-public-types.json) [记录](changes/2026-09-13-PKG-VTT-THUMB-04-module-forms.md) [记录](baselines/vtt-thumbnail-module-forms.json) [记录](type-compatibility-policy.md) [记录](baselines/vtt-thumbnail-approved-types.json) [记录](changes/2026-09-13-PKG-VTT-THUMB-04-approved-types.md) -- PKG-VTT-THUMB-05: [记录](changes/2026-09-14-PKG-VTT-THUMB-05-combinations.md) [记录](baselines/vtt-thumbnail-combinations.json) [记录](baselines/vtt-thumbnail-core.json) +- PKG-VTT-THUMB-05: [记录](changes/2026-09-14-PKG-VTT-THUMB-05-combinations.md) [记录](baselines/vtt-thumbnail-combinations.json) [记录](baselines/vtt-thumbnail-core.json) [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- PKG-VTT-THUMB-06: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - PKG-HLS-01: [记录](baselines/hls-control-contract.md) [记录](baselines/hls-control-release.json) [记录](changes/2026-09-11-PKG-HLS-01-contract.md) - PKG-HLS-02: [记录](hls-validation.md) [记录](baselines/hls-sdk.json) [记录](baselines/hls-validation.json) [记录](changes/2026-09-11-PKG-HLS-02-tests.md) - PKG-HLS-03: [记录](changes/2026-09-12-PKG-HLS-03-modules.md) [记录](baselines/hls-modules-validation.json) [记录](hls-validation.md) - PKG-HLS-04: [记录](changes/2026-09-12-PKG-HLS-04-types.md) [记录](baselines/hls-types-validation.json) [记录](hls-validation.md) -- PKG-HLS-SDK-01: [记录](changes/2026-09-12-PKG-HLS-SDK-01-integration.md) [记录](baselines/hls-sdk-validation.json) [记录](baselines/hls-sdk-diagnostics.json) [记录](changes/2026-09-14-PKG-HLS-SDK-01-http-teardown.md) [记录](baselines/hls-http-teardown-validation.json) [记录](changes/2026-09-15-PKG-HLS-SDK-01-switch-boundary.md) [记录](baselines/hls-switch-boundary-validation.json) [记录](changes/2026-09-15-PKG-HLS-SDK-01-sdk-sequence.md) [记录](baselines/hls-sdk-sequence-validation.json) [记录](changes/2026-09-15-PKG-HLS-SDK-01-controller-state.md) [记录](baselines/hls-controller-validation.json) [记录](changes/2026-09-15-PKG-HLS-SDK-01-native-exception.md) [记录](baselines/hls-native-validation.json) +- PKG-HLS-SDK-01: [记录](changes/2026-09-12-PKG-HLS-SDK-01-integration.md) [记录](baselines/hls-sdk-validation.json) [记录](baselines/hls-sdk-diagnostics.json) [记录](changes/2026-09-14-PKG-HLS-SDK-01-http-teardown.md) [记录](baselines/hls-http-teardown-validation.json) [记录](changes/2026-09-15-PKG-HLS-SDK-01-switch-boundary.md) [记录](baselines/hls-switch-boundary-validation.json) [记录](changes/2026-09-15-PKG-HLS-SDK-01-sdk-sequence.md) [记录](baselines/hls-sdk-sequence-validation.json) [记录](changes/2026-09-15-PKG-HLS-SDK-01-controller-state.md) [记录](baselines/hls-controller-validation.json) [记录](changes/2026-09-15-PKG-HLS-SDK-01-native-exception.md) [记录](baselines/hls-native-validation.json) [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- PKG-HLS-05: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- PKG-HLS-06: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - PKG-DASH-01: [记录](changes/2026-09-12-PKG-DASH-01-contract.md) [记录](baselines/dash-control-contract.md) [记录](baselines/dash-control-release.json) - PKG-DASH-02: [记录](changes/2026-09-12-PKG-DASH-02-tests.md) [记录](dash-validation.md) [记录](baselines/dash-validation.json) - PKG-DASH-03: [记录](changes/2026-09-12-PKG-DASH-03-runtime.md) [记录](baselines/dash-runtime.json) [记录](dash-validation.md) - PKG-DASH-04: [记录](changes/2026-09-12-PKG-DASH-04-types.md) [记录](baselines/dash-types-validation.json) [记录](dash-validation.md) - PKG-DASH-SEEK-01: [记录](changes/2026-09-14-PKG-DASH-SEEK-01-buffer-metrics.md) [记录](baselines/dash-seek-recovery-validation.json) - PKG-DASH-MENU-01: [记录](changes/2026-09-14-PKG-DASH-MENU-01-settings-navigation.md) [记录](baselines/dash-menu-validation.json) [记录](dash-validation.md) -- PKG-DASH-05: [记录](changes/2026-09-12-PKG-DASH-05-sdk-checkpoint.md) [记录](baselines/dash-sdk.json) [记录](baselines/dash-sdk-checkpoint.json) [记录](dash-validation.md) [记录](changes/2026-09-12-PKG-DASH-05-sdk-types.md) [记录](baselines/dash-sdk-types-validation.json) [记录](changes/2026-09-12-PKG-DASH-05-sdk-events.md) [记录](baselines/dash-sdk-events-validation.json) [记录](changes/2026-09-12-PKG-DASH-05-seek-diagnosis.md) [记录](baselines/dash-seek-diagnosis.json) +- PKG-DASH-05: [记录](changes/2026-09-12-PKG-DASH-05-sdk-checkpoint.md) [记录](baselines/dash-sdk.json) [记录](baselines/dash-sdk-checkpoint.json) [记录](dash-validation.md) [记录](changes/2026-09-12-PKG-DASH-05-sdk-types.md) [记录](baselines/dash-sdk-types-validation.json) [记录](changes/2026-09-12-PKG-DASH-05-sdk-events.md) [记录](baselines/dash-sdk-events-validation.json) [记录](changes/2026-09-12-PKG-DASH-05-seek-diagnosis.md) [记录](baselines/dash-seek-diagnosis.json) [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- PKG-DASH-06: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - PKG-MULTI-SUB-01: [记录](baselines/multiple-subtitles-release.json) [记录](baselines/multiple-subtitles-contract.md) [记录](baselines/multiple-subtitles-contract-validation.json) [记录](changes/2026-09-13-PKG-MULTI-SUB-01-contract.md) - PKG-MULTI-SUB-02: [记录](baselines/multiple-subtitles-failures.json) [记录](changes/2026-09-13-PKG-MULTI-SUB-02-failures.md) - PKG-MULTI-SUB-03: [记录](baselines/multiple-subtitles-resources.json) [记录](changes/2026-09-13-PKG-MULTI-SUB-03-resources.md) - PKG-MULTI-SUB-04: [记录](baselines/multiple-subtitles-runtime-types.json) [记录](changes/2026-09-13-PKG-MULTI-SUB-04-runtime-types.md) [记录](baselines/multiple-subtitles-public-types.json) [记录](changes/2026-09-13-PKG-MULTI-SUB-04-public-types.md) [记录](type-compatibility-policy.md) [记录](baselines/multiple-subtitles-approved-types.json) [记录](changes/2026-09-13-PKG-MULTI-SUB-04-approved-types.md) - PKG-MULTI-SUB-07: [记录](baselines/multiple-subtitles-timestamps.json) [记录](changes/2026-09-13-PKG-MULTI-SUB-07-timestamps.md) - PKG-MULTI-SUB-08: [记录](changes/2026-09-14-PKG-MULTI-SUB-08-entities.md) [记录](baselines/multiple-subtitles-entities-validation.json) -- PKG-MULTI-SUB-05: [记录](changes/2026-09-14-PKG-MULTI-SUB-05-combinations.md) [记录](baselines/multiple-subtitles-combinations-validation.json) [记录](baselines/multiple-subtitles-cores.json) [记录](changes/2026-09-14-PKG-MULTI-SUB-05-seek-diagnostics.md) [记录](baselines/multiple-subtitles-seek-diagnostics.json) +- PKG-MULTI-SUB-05: [记录](changes/2026-09-14-PKG-MULTI-SUB-05-combinations.md) [记录](baselines/multiple-subtitles-combinations-validation.json) [记录](baselines/multiple-subtitles-cores.json) [记录](changes/2026-09-14-PKG-MULTI-SUB-05-seek-diagnostics.md) [记录](baselines/multiple-subtitles-seek-diagnostics.json) [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- PKG-MULTI-SUB-06: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - PKG-JASSUB-01: [记录](baselines/jassub-release.json) [记录](baselines/jassub-vendor.json) [记录](baselines/jassub-font-metadata.json) [记录](baselines/jassub-contract.md) [记录](baselines/jassub-contract-validation.json) [记录](changes/2026-09-13-PKG-JASSUB-01-baseline.md) [记录](baselines/jassub-provenance.json) [记录](baselines/jassub-provenance-validation.json) [记录](changes/2026-09-14-PKG-JASSUB-01-provenance.md) - PKG-JASSUB-02: [记录](changes/2026-09-14-PKG-JASSUB-02-failure-baseline.md) [记录](baselines/jassub-failures-validation.json) - PKG-JASSUB-03: [记录](changes/2026-09-14-PKG-JASSUB-03-registration.md) [记录](baselines/jassub-registration-validation.json) - PKG-JASSUB-04: [记录](changes/2026-09-14-PKG-JASSUB-04-types.md) [记录](baselines/jassub-types-validation.json) +- PKG-JASSUB-05: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- PKG-JASSUB-06: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - PKG-JASSUB-07: [记录](changes/2026-09-14-PKG-JASSUB-07-vendor.md) [记录](baselines/jassub-vendor-validation.json) [记录](baselines/jassub-vendor-patch.json) - PKG-MASK-01: [记录](baselines/danmuku-mask-release.json) [记录](baselines/danmuku-mask-registry.json) [记录](baselines/danmuku-mask-contract.md) [记录](baselines/danmuku-mask-contract-validation.json) [记录](changes/2026-09-13-PKG-MASK-01-contract.md) - PKG-MASK-02: [记录](changes/2026-09-13-PKG-MASK-02-failures.md) [记录](baselines/danmuku-mask-failures-validation.json) - PKG-MASK-03: [记录](changes/2026-09-13-PKG-MASK-03-lifecycle.md) [记录](baselines/danmuku-mask-lifecycle-validation.json) - PKG-MASK-04: [记录](changes/2026-09-14-PKG-MASK-04-types.md) [记录](baselines/danmuku-mask-types-validation.json) -- PKG-MASK-05: [记录](changes/2026-09-14-PKG-MASK-05-native-checkpoint.md) [记录](baselines/danmuku-mask-native-validation.json) [记录](baselines/danmuku-mask-historical-cores.json) +- PKG-MASK-05: [记录](changes/2026-09-14-PKG-MASK-05-native-checkpoint.md) [记录](baselines/danmuku-mask-native-validation.json) [记录](baselines/danmuku-mask-historical-cores.json) [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- PKG-MASK-06: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - PKG-ASR-01: [记录](changes/2026-09-13-PKG-ASR-01-contracts.md) [记录](baselines/asr-contract.md) [记录](baselines/asr-release.json) - PKG-ASR-02: [记录](changes/2026-09-13-PKG-ASR-02-audio-baseline.md) [记录](baselines/asr-audio-validation.json) - PKG-ASR-03: [记录](changes/2026-09-13-PKG-ASR-03-audio-ownership.md) [记录](baselines/asr-ownership-validation.json) - PKG-ASR-04: [记录](changes/2026-09-13-PKG-ASR-04-public-types.md) [记录](baselines/asr-types-validation.json) [记录](baselines/asr-type-diagnostics.json) -- PKG-ASR-05: [记录](baselines/asr-volume-validation.json) [记录](baselines/asr-fallback-validation.json) [记录](baselines/asr-core.json) [记录](baselines/asr-local-core-validation.json) [记录](changes/2026-09-13-PKG-ASR-05-local-core-checkpoint.md) [记录](baselines/asr-combinations-validation.json) [记录](changes/2026-09-13-PKG-ASR-05-cors-combinations.md) [记录](baselines/asr-explicit-capture-validation.json) [记录](changes/2026-09-13-PKG-ASR-05-editor-generation.md) [记录](changes/2026-09-15-PKG-ASR-05-no-audio.md) [记录](baselines/asr-no-audio-validation.json) [记录](changes/2026-09-15-PKG-ASR-05-initial-error.md) [记录](baselines/asr-initial-error-validation.json) +- PKG-ASR-05: [记录](baselines/asr-volume-validation.json) [记录](baselines/asr-fallback-validation.json) [记录](baselines/asr-core.json) [记录](baselines/asr-local-core-validation.json) [记录](changes/2026-09-13-PKG-ASR-05-local-core-checkpoint.md) [记录](baselines/asr-combinations-validation.json) [记录](changes/2026-09-13-PKG-ASR-05-cors-combinations.md) [记录](baselines/asr-explicit-capture-validation.json) [记录](changes/2026-09-13-PKG-ASR-05-editor-generation.md) [记录](changes/2026-09-15-PKG-ASR-05-no-audio.md) [记录](baselines/asr-no-audio-validation.json) [记录](changes/2026-09-15-PKG-ASR-05-initial-error.md) [记录](baselines/asr-initial-error-validation.json) [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- PKG-ASR-06: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - PKG-ADS-01: [记录](baselines/ads-release.json) [记录](baselines/ads-contract.md) [记录](baselines/ads-contract-validation.json) [记录](changes/2026-09-12-PKG-ADS-01-contract.md) [记录](scripts/ads-contract.test.mjs) - PKG-ADS-02: [记录](changes/2026-09-12-PKG-ADS-02-tests.md) [记录](ads-validation.md) [记录](baselines/ads-validation.json) - PKG-ADS-03: [记录](changes/2026-09-12-PKG-ADS-03-lifecycle.md) [记录](ads-validation.md) [记录](baselines/ads-lifecycle-validation.json) - PKG-ADS-04: [记录](changes/2026-09-12-PKG-ADS-04-types.md) [记录](baselines/ads-types-validation.json) -- PKG-ADS-05: [记录](changes/2026-09-12-PKG-ADS-05-browser.md) [记录](baselines/ads-ui-visibility-validation.json) +- PKG-ADS-05: [记录](changes/2026-09-12-PKG-ADS-05-browser.md) [记录](baselines/ads-ui-visibility-validation.json) [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- PKG-ADS-06: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - PKG-VAST-01: [记录](baselines/vast-contract.md) [记录](baselines/vast-release.json) [记录](changes/2026-09-12-PKG-VAST-01-contract.md) [记录](baselines/vast-contract-validation.json) - PKG-VAST-02: [记录](changes/2026-09-12-PKG-VAST-02-tests.md) [记录](baselines/vast-behavior-validation.json) [记录](baselines/vast-core.json) [记录](vast-validation.md) - PKG-VAST-03: [记录](changes/2026-09-12-PKG-VAST-03-lifecycle.md) [记录](baselines/vast-lifecycle-validation.json) [记录](vast-compatibility-decision.md) [记录](changes/2026-09-14-PKG-VAST-03-compatibility.md) [记录](baselines/vast-compatibility-validation.json) - PKG-VAST-04: [记录](changes/2026-09-14-PKG-VAST-04-types.md) [记录](baselines/vast-types-validation.json) [记录](vast-type-decision.md) [记录](vast-validation.md) -- PKG-VAST-05: [记录](changes/2026-09-14-PKG-VAST-05-native-checkpoint.md) [记录](baselines/vast-native-validation.json) [记录](changes/2026-09-14-PKG-VAST-05-skip-checkpoint.md) [记录](baselines/vast-skip-validation.json) [记录](changes/2026-09-15-CI-01-vast-installed.md) [记录](baselines/ci-vast-installed-validation.json) +- PKG-VAST-05: [记录](changes/2026-09-14-PKG-VAST-05-native-checkpoint.md) [记录](baselines/vast-native-validation.json) [记录](changes/2026-09-14-PKG-VAST-05-skip-checkpoint.md) [记录](baselines/vast-skip-validation.json) [记录](changes/2026-09-15-CI-01-vast-installed.md) [记录](baselines/ci-vast-installed-validation.json) [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- PKG-VAST-06: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - PKG-CAST-01: [记录](baselines/chromecast-release.json) [记录](baselines/chromecast-contract.md) [记录](baselines/chromecast-contract-validation.json) [记录](changes/2026-09-13-PKG-CAST-01-contracts.md) - PKG-CAST-02: [记录](changes/2026-09-13-PKG-CAST-02-failures.md) [记录](baselines/chromecast-failures-validation.json) - PKG-CAST-03: [记录](changes/2026-09-13-PKG-CAST-03-runtime.md) [记录](baselines/chromecast-runtime-validation.json) - PKG-CAST-04: [记录](changes/2026-09-13-PKG-CAST-04-types.md) [记录](baselines/chromecast-types-validation.json) -- PKG-CAST-05: [记录](changes/2026-09-16-PKG-CAST-05-real-sdk.md) [记录](baselines/chromecast-real-sdk-validation.json) [记录](chromecast-validation.md) +- PKG-CAST-05: [记录](changes/2026-09-16-PKG-CAST-05-real-sdk.md) [记录](baselines/chromecast-real-sdk-validation.json) [记录](chromecast-validation.md) [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- PKG-CAST-06: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - PKG-DPIP-01: [记录](changes/2026-09-12-PKG-DPIP-01-contract.md) [记录](baselines/dpip-release.json) [记录](baselines/dpip-contract.md) [记录](baselines/dpip-contract-validation.json) [记录](dpip-validation.md) - PKG-DPIP-02: [记录](changes/2026-09-12-PKG-DPIP-02-tests.md) [记录](baselines/dpip-behavior-validation.json) [记录](dpip-validation.md) - PKG-DPIP-03: [记录](changes/2026-09-12-PKG-DPIP-03-lifecycle.md) [记录](baselines/dpip-lifecycle-validation.json) [记录](dpip-validation.md) - PKG-DPIP-04: [记录](changes/2026-09-12-PKG-DPIP-04-types.md) [记录](baselines/dpip-types-validation.json) [记录](dpip-validation.md) -- PKG-DPIP-05: [记录](changes/2026-09-12-PKG-DPIP-05-native-checkpoint.md) [记录](baselines/dpip-native-validation.json) +- PKG-DPIP-05: [记录](changes/2026-09-12-PKG-DPIP-05-native-checkpoint.md) [记录](baselines/dpip-native-validation.json) [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- PKG-DPIP-06: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - PKG-DANMUKU-01: [记录](baselines/danmuku-release.json) [记录](baselines/danmuku-contract.md) [记录](baselines/danmuku-contract-validation.json) [记录](changes/2026-09-13-PKG-DANMUKU-01-contracts.md) - PKG-DANMUKU-02: [记录](changes/2026-09-13-PKG-DANMUKU-02-controlled-failures.md) [记录](baselines/danmuku-failures-validation.json) [记录](changes/2026-09-13-PKG-DANMUKU-02-browser-baseline.md) [记录](baselines/danmuku-browser-validation.json) - PKG-DANMUKU-03: [记录](changes/2026-09-13-PKG-DANMUKU-03-input.md) [记录](baselines/danmuku-input-validation.json) @@ -655,12 +676,14 @@ - PKG-DANMUKU-05: [记录](changes/2026-09-13-PKG-DANMUKU-05-resources.md) [记录](baselines/danmuku-resources-validation.json) - PKG-DANMUKU-06: [记录](changes/2026-09-13-PKG-DANMUKU-06-types.md) [记录](baselines/danmuku-types-validation.json) - PKG-DANMUKU-07: [记录](changes/2026-09-13-PKG-DANMUKU-07-stability.md) [记录](baselines/danmuku-stability-validation.json) [记录](danmuku-stability.md) -- PKG-DANMUKU-08: [记录](changes/2026-09-14-PKG-DANMUKU-08-native-combinations.md) [记录](baselines/danmuku-combination-checkpoint.json) [记录](changes/2026-09-14-PKG-DANMUKU-08-fullscreen-lifetimes.md) [记录](baselines/danmuku-fullscreen-validation.json) [记录](baselines/danmuku-old-core-load-validation.json) [记录](changes/2026-09-14-PKG-DANMUKU-08-combined-load.md) [记录](baselines/danmuku-combined-load-validation.json) [记录](changes/2026-09-15-CI-01-installed-webkit.md) [记录](baselines/ci-installed-webkit-validation.json) [记录](changes/2026-09-16-PKG-DANMUKU-START-01-first-sample.md) [记录](baselines/danmuku-start-validation.json) +- PKG-DANMUKU-08: [记录](changes/2026-09-14-PKG-DANMUKU-08-native-combinations.md) [记录](baselines/danmuku-combination-checkpoint.json) [记录](changes/2026-09-14-PKG-DANMUKU-08-fullscreen-lifetimes.md) [记录](baselines/danmuku-fullscreen-validation.json) [记录](baselines/danmuku-old-core-load-validation.json) [记录](changes/2026-09-14-PKG-DANMUKU-08-combined-load.md) [记录](baselines/danmuku-combined-load-validation.json) [记录](changes/2026-09-15-CI-01-installed-webkit.md) [记录](baselines/ci-installed-webkit-validation.json) [记录](changes/2026-09-16-PKG-DANMUKU-START-01-first-sample.md) [记录](baselines/danmuku-start-validation.json) [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- PKG-DANMUKU-09: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - PKG-CANVAS-01: [记录](changes/2026-09-12-PKG-CANVAS-01-contract.md) [记录](baselines/canvas-contract.md) [记录](baselines/canvas-release.json) [记录](canvas-validation.md) [记录](baselines/canvas-contract-validation.json) - PKG-CANVAS-02: [记录](changes/2026-09-12-PKG-CANVAS-02-tests.md) [记录](baselines/canvas-behavior-validation.json) [记录](canvas-validation.md) - PKG-CANVAS-03: [记录](changes/2026-09-12-PKG-CANVAS-03-lifecycle.md) [记录](baselines/canvas-lifecycle-validation.json) [记录](canvas-validation.md) - PKG-CANVAS-04: [记录](changes/2026-09-12-PKG-CANVAS-04-types.md) [记录](baselines/canvas-types-validation.json) [记录](canvas-validation.md) -- PKG-CANVAS-05: [记录](changes/2026-09-14-PKG-CANVAS-05-native-pip.md) [记录](baselines/canvas-dpip-validation.json) [记录](baselines/canvas-subtitles-validation.json) [记录](baselines/ambilight-installed-validation.json) +- PKG-CANVAS-05: [记录](changes/2026-09-14-PKG-CANVAS-05-native-pip.md) [记录](baselines/canvas-dpip-validation.json) [记录](baselines/canvas-subtitles-validation.json) [记录](baselines/ambilight-installed-validation.json) [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- PKG-CANVAS-06: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - PKG-MB-01: [记录](baselines/mb-release.json) [记录](baselines/mb-surface.json) [记录](baselines/mb-contract.md) [记录](baselines/mb-contract-validation.json) [记录](mb-validation.md) [记录](changes/2026-09-12-PKG-MB-01-contract.md) - PKG-MB-02: [记录](changes/2026-09-12-PKG-MB-02-checkpoint.md) [记录](baselines/mb-media-checkpoint.json) [记录](mb-validation.md) [记录](changes/2026-09-12-PKG-MB-02-baseline.md) [记录](baselines/mb-behavior-validation.json) - PKG-MB-03: [记录](changes/2026-09-12-PKG-MB-03-input.md) [记录](baselines/mb-input-validation.json) @@ -669,17 +692,20 @@ - PKG-MB-06: [记录](baselines/mb-audio-source.json) [记录](changes/2026-09-12-PKG-MB-06-audio.md) [记录](baselines/mb-audio-validation.json) - PKG-MB-07: [记录](baselines/mb-hls-source.json) [记录](changes/2026-09-12-PKG-MB-07-hls.md) [记录](baselines/mb-hls-validation.json) - PKG-MB-08: [记录](baselines/mb-entry-source.json) [记录](changes/2026-09-12-PKG-MB-08-entry-checkpoint.md) [记录](baselines/mb-entry-checkpoint.json) [记录](baselines/mb-capability-source.json) [记录](changes/2026-09-12-PKG-MB-08-capability.md) [记录](baselines/mb-capability-validation.json) -- PKG-MB-09: [记录](changes/2026-09-12-PKG-MB-09-native-pip-checkpoint.md) [记录](baselines/mb-native-pip-checkpoint.json) [记录](changes/2026-09-12-PKG-MB-09-sustained-playback-checkpoint.md) [记录](baselines/mb-sustained-validation.json) [记录](baselines/mb-sustained-media.json) [记录](changes/2026-09-16-PKG-MB-09-hour-soak.md) [记录](baselines/mb-hour-soak-start.json) [记录](changes/2026-09-16-PKG-MB-09-av-breach.md) [记录](baselines/mb-hour-av-breach.json) +- PKG-MB-09: [记录](changes/2026-09-12-PKG-MB-09-native-pip-checkpoint.md) [记录](baselines/mb-native-pip-checkpoint.json) [记录](changes/2026-09-12-PKG-MB-09-sustained-playback-checkpoint.md) [记录](baselines/mb-sustained-validation.json) [记录](baselines/mb-sustained-media.json) [记录](changes/2026-09-16-PKG-MB-09-hour-soak.md) [记录](baselines/mb-hour-soak-start.json) [记录](changes/2026-09-16-PKG-MB-09-av-breach.md) [记录](baselines/mb-hour-av-breach.json) [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- PKG-MB-10: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - PKG-IFRAME-01: [记录](changes/2026-09-12-PKG-IFRAME-01-contract.md) [记录](baselines/iframe-release.json) [记录](baselines/iframe-contract.md) [记录](baselines/iframe-contract-validation.json) - PKG-IFRAME-02: [记录](changes/2026-09-12-PKG-IFRAME-02-behavior.md) [记录](baselines/iframe-behavior-validation.json) - PKG-IFRAME-03: [记录](changes/2026-09-12-PKG-IFRAME-03-requests-checkpoint.md) [记录](baselines/iframe-requests-checkpoint.json) [记录](changes/2026-09-12-PKG-IFRAME-03-boundaries-checkpoint.md) [记录](baselines/iframe-boundaries-checkpoint.json) [记录](iframe-message-boundary.md) [记录](changes/2026-09-13-PKG-IFRAME-03-navigation.md) [记录](baselines/iframe-navigation-validation.json) [记录](iframe-document-protocol.md) - PKG-IFRAME-04: [记录](changes/2026-09-13-PKG-IFRAME-04-types.md) [记录](baselines/iframe-types-validation.json) -- PKG-IFRAME-05: [记录](changes/2026-09-13-PKG-IFRAME-05-integration.md) [记录](baselines/iframe-integration-validation.json) [记录](changes/2026-09-13-PKG-IFRAME-05-history.md) [记录](baselines/iframe-history-validation.json) [记录](changes/2026-09-15-CI-01-iframe-installed.md) [记录](baselines/ci-iframe-installed-validation.json) +- PKG-IFRAME-05: [记录](changes/2026-09-13-PKG-IFRAME-05-integration.md) [记录](baselines/iframe-integration-validation.json) [记录](changes/2026-09-13-PKG-IFRAME-05-history.md) [记录](baselines/iframe-history-validation.json) [记录](changes/2026-09-15-CI-01-iframe-installed.md) [记录](baselines/ci-iframe-installed-validation.json) [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- PKG-IFRAME-06: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - PKG-TOOL-THUMB-01: [记录](baselines/thumbnail-release.json) [记录](baselines/thumbnail-contract.md) [记录](changes/2026-09-13-PKG-TOOL-THUMB-01-contract.md) [记录](baselines/thumbnail-contract-validation.json) - PKG-TOOL-THUMB-02: [记录](baselines/thumbnail-behavior-validation.json) [记录](changes/2026-09-13-PKG-TOOL-THUMB-02-behavior.md) - PKG-TOOL-THUMB-03: [记录](changes/2026-09-13-PKG-TOOL-THUMB-03-input-checkpoint.md) [记录](baselines/thumbnail-input-checkpoint.json) [记录](changes/2026-09-13-PKG-TOOL-THUMB-03-lifecycle.md) [记录](baselines/thumbnail-lifecycle-validation.json) - PKG-TOOL-THUMB-04: [记录](changes/2026-09-13-PKG-TOOL-THUMB-04-runtime-types.md) [记录](baselines/thumbnail-runtime-types-validation.json) [记录](changes/2026-09-13-PKG-TOOL-THUMB-04-public-types.md) [记录](baselines/thumbnail-public-types-validation.json) [记录](changes/2026-09-13-PKG-TOOL-THUMB-04-emitter.md) [记录](baselines/thumbnail-emitter-validation.json) [记录](thumbnail-compatibility-decision.md) [记录](changes/2026-09-15-PKG-TOOL-THUMB-04-policy-proposal.md) [记录](changes/2026-09-15-PKG-TOOL-THUMB-04-approved-policy.md) [记录](baselines/thumbnail-policy-validation.json) -- PKG-TOOL-THUMB-05: [记录](changes/2026-09-16-PKG-TOOL-THUMB-05-core-combinations.md) [记录](baselines/thumbnail-core-validation.json) [记录](baselines/thumbnail-core.json) +- PKG-TOOL-THUMB-05: [记录](changes/2026-09-16-PKG-TOOL-THUMB-05-core-combinations.md) [记录](baselines/thumbnail-core-validation.json) [记录](baselines/thumbnail-core.json) [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- PKG-TOOL-THUMB-06: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - SITE-01: [记录](site-inventory.md) [记录](baselines/site-inventory.json) [记录](baselines/site-provenance.json) [记录](baselines/demo-additions.json) [记录](changes/2026-09-14-SITE-01-site-inventory.md) [记录](baselines/site-inventory-validation.json) - SITE-SMOKE-01: [记录](changes/2026-09-14-SITE-SMOKE-01-documentation-smoke.md) [记录](baselines/docs-smoke-validation.json) [记录](scripts/docs-smoke.test.mjs) - SITE-02: [记录](changes/2026-09-14-SITE-02-editor-declarations.md) [记录](baselines/editor-declarations-validation.json) [记录](changes/2026-09-14-SITE-SMOKE-01-documentation-smoke.md) @@ -691,20 +717,31 @@ - SITE-HLS-01: [记录](changes/2026-09-15-SITE-HLS-01-guides.md) [记录](baselines/hls-docs-validation.json) - SITE-DASH-01: [记录](changes/2026-09-15-SITE-DASH-01-guides.md) [记录](baselines/dash-docs-validation.json) - SITE-04: [记录](site-content-review.md) [记录](changes/2026-09-16-SITE-04-chapter-ambilight-guides.md) [记录](baselines/site04-chapter-ambilight-guides.json) [记录](changes/2026-09-16-SITE-04-dpip-asr-guides.md) [记录](baselines/site04-dpip-asr-guides.json) [记录](changes/2026-09-16-SITE-04-auto-multi-guides.md) [记录](baselines/site04-auto-multi-guides.json) [记录](changes/2026-09-16-SITE-04-ads-vast-guides.md) [记录](baselines/site04-ads-vast-guides.json) [记录](changes/2026-09-16-SITE-04-jassub-mask-cast-guides.md) [记录](baselines/site04-jassub-mask-cast-guides.json) [记录](changes/2026-09-16-SITE-04-tools-guides.md) [记录](baselines/site04-tools-guides.json) [记录](changes/2026-09-16-SITE-04-proxies-guides.md) [记录](baselines/site04-proxies-guides.json) [记录](changes/2026-09-16-SITE-04-existing-guides.md) [记录](baselines/site04-existing-guides.json) [记录](core-content-review.json) [记录](baselines/site04-core-services.json) [记录](changes/2026-09-16-SITE-04-core-services.md) [记录](baselines/site04-template-icons.json) [记录](changes/2026-09-16-SITE-04-template-icons.md) [记录](baselines/site04-components.json) [记录](changes/2026-09-16-SITE-04-components.md) [记录](baselines/site04-setting.json) [记录](changes/2026-09-16-SITE-04-setting.md) [记录](baselines/site04-plugin-registry.json) [记录](changes/2026-09-16-SITE-04-plugin-registry.md) [记录](baselines/site04-subtitle.json) [记录](changes/2026-09-16-SITE-04-subtitle.md) [记录](baselines/site04-utils.json) [记录](changes/2026-09-16-SITE-04-utils.md) [记录](baselines/site04-globals.json) [记录](changes/2026-09-16-SITE-04-globals.md) [记录](baselines/site04-events.json) [记录](changes/2026-09-16-SITE-04-events.md) [记录](baselines/site04-options.json) [记录](changes/2026-09-16-SITE-04-options.md) [记录](baselines/site04-css.json) [记录](changes/2026-09-16-SITE-04-css.md) [记录](baselines/site04-lifecycle.json) [记录](changes/2026-09-16-SITE-04-lifecycle.md) [记录](baselines/site04-playback.json) [记录](changes/2026-09-16-SITE-04-playback.md) [记录](baselines/site04-display.json) [记录](changes/2026-09-16-SITE-04-complete.md) -- SITE-05: [记录](changes/2026-09-16-SITE-05-search.md) [记录](baselines/site05-search.json) [记录](changes/2026-09-16-SITE-05-links-editor.md) [记录](baselines/site05-links-editor.json) -- SITE-07: [记录](site-inventory.md) [记录](baselines/site-provenance.json) [记录](changes/2026-09-14-SITE-07-vendor-notices.md) [记录](baselines/site-notices-checkpoint.json) [记录](baselines/site-codicons-provenance.json) [记录](baselines/site-codicons-validation.json) [记录](changes/2026-09-15-SITE-07-codicons.md) [记录](baselines/vconsole-notices-provenance.json) [记录](baselines/vconsole-notices-validation.json) [记录](changes/2026-09-15-SITE-07-vconsole-notices.md) [记录](console-modernization.md) [记录](baselines/site-console-inventory.json) [记录](baselines/site-console-validation.json) [记录](changes/2026-09-15-SITE-07-console-baseline.md) [记录](baselines/console-feed-provenance.json) [记录](changes/2026-09-15-SITE-07-console-feed-source.md) [记录](baselines/console-commonjs-provenance.json) [记录](changes/2026-09-15-SITE-07-console-commonjs.md) [记录](baselines/console-esm-provenance.json) [记录](changes/2026-09-15-SITE-07-console-esm.md) [记录](baselines/console-embedded-notices.json) [记录](baselines/console-notices-validation.json) [记录](changes/2026-09-15-SITE-07-console-notices.md) [记录](baselines/console-embedded-sources.json) [记录](baselines/console-embedded-validation.json) [记录](changes/2026-09-15-SITE-07-console-embedded-sources.md) [记录](baselines/console-derived-attribution.json) [记录](baselines/console-derived-validation.json) [记录](changes/2026-09-15-SITE-07-console-derived-attribution.md) [记录](baselines/console-stackoverflow-provenance.json) [记录](baselines/console-stackoverflow-validation.json) [记录](changes/2026-09-15-SITE-07-console-stackoverflow.md) [记录](baselines/console-shallowequal-validation.json) [记录](changes/2026-09-15-SITE-07-console-shallowequal.md) [记录](console-notice-review.md) [记录](baselines/console-notice-review-validation.json) [记录](changes/2026-09-15-SITE-07-console-notice-review.md) [记录](baselines/monaco-typescript-provenance.json) [记录](baselines/monaco-typescript-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-typescript.md) [记录](baselines/monaco-languages-provenance.json) [记录](baselines/monaco-languages-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-languages.md) [记录](baselines/monaco-language-notices.json) [记录](baselines/monaco-language-notices-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-language-notices.md) [记录](baselines/monaco-modes-provenance.json) [记录](baselines/monaco-modes-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-modes.md) [记录](baselines/monaco-basic-provenance.json) [记录](baselines/monaco-basic-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-basic.md) [记录](baselines/monaco-core-origins-provenance.json) [记录](baselines/monaco-core-origins-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-core-origins.md) [记录](baselines/monaco-core-build-provenance.json) [记录](baselines/monaco-core-build-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-core-build.md) [记录](baselines/monaco-contributions-provenance.json) [记录](baselines/monaco-contributions-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-contributions.md) [记录](baselines/monaco-css-build-provenance.json) [记录](baselines/monaco-css-build-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-css.md) [记录](baselines/monaco-node-path-provenance.json) [记录](baselines/monaco-node-path-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-node-path.md) [记录](changes/2026-09-15-SITE-07-monaco-dom.md) [记录](baselines/monaco-dom-origins-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-unicode.md) [记录](baselines/monaco-unicode-provenance.json) [记录](baselines/monaco-unicode-validation.json) [记录](changes/2026-09-15-SITE-07-font-notices.md) [记录](baselines/site-font-notices-provenance.json) [记录](baselines/site-font-notices-validation.json) +- SITE-05: [记录](changes/2026-09-16-SITE-05-search.md) [记录](baselines/site05-search.json) [记录](changes/2026-09-16-SITE-05-links-editor.md) [记录](baselines/site05-links-editor.json) [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- SITE-06: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- SITE-07: [记录](site-inventory.md) [记录](baselines/site-provenance.json) [记录](changes/2026-09-14-SITE-07-vendor-notices.md) [记录](baselines/site-notices-checkpoint.json) [记录](baselines/site-codicons-provenance.json) [记录](baselines/site-codicons-validation.json) [记录](changes/2026-09-15-SITE-07-codicons.md) [记录](baselines/vconsole-notices-provenance.json) [记录](baselines/vconsole-notices-validation.json) [记录](changes/2026-09-15-SITE-07-vconsole-notices.md) [记录](console-modernization.md) [记录](baselines/site-console-inventory.json) [记录](baselines/site-console-validation.json) [记录](changes/2026-09-15-SITE-07-console-baseline.md) [记录](baselines/console-feed-provenance.json) [记录](changes/2026-09-15-SITE-07-console-feed-source.md) [记录](baselines/console-commonjs-provenance.json) [记录](changes/2026-09-15-SITE-07-console-commonjs.md) [记录](baselines/console-esm-provenance.json) [记录](changes/2026-09-15-SITE-07-console-esm.md) [记录](baselines/console-embedded-notices.json) [记录](baselines/console-notices-validation.json) [记录](changes/2026-09-15-SITE-07-console-notices.md) [记录](baselines/console-embedded-sources.json) [记录](baselines/console-embedded-validation.json) [记录](changes/2026-09-15-SITE-07-console-embedded-sources.md) [记录](baselines/console-derived-attribution.json) [记录](baselines/console-derived-validation.json) [记录](changes/2026-09-15-SITE-07-console-derived-attribution.md) [记录](baselines/console-stackoverflow-provenance.json) [记录](baselines/console-stackoverflow-validation.json) [记录](changes/2026-09-15-SITE-07-console-stackoverflow.md) [记录](baselines/console-shallowequal-validation.json) [记录](changes/2026-09-15-SITE-07-console-shallowequal.md) [记录](console-notice-review.md) [记录](baselines/console-notice-review-validation.json) [记录](changes/2026-09-15-SITE-07-console-notice-review.md) [记录](baselines/monaco-typescript-provenance.json) [记录](baselines/monaco-typescript-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-typescript.md) [记录](baselines/monaco-languages-provenance.json) [记录](baselines/monaco-languages-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-languages.md) [记录](baselines/monaco-language-notices.json) [记录](baselines/monaco-language-notices-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-language-notices.md) [记录](baselines/monaco-modes-provenance.json) [记录](baselines/monaco-modes-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-modes.md) [记录](baselines/monaco-basic-provenance.json) [记录](baselines/monaco-basic-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-basic.md) [记录](baselines/monaco-core-origins-provenance.json) [记录](baselines/monaco-core-origins-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-core-origins.md) [记录](baselines/monaco-core-build-provenance.json) [记录](baselines/monaco-core-build-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-core-build.md) [记录](baselines/monaco-contributions-provenance.json) [记录](baselines/monaco-contributions-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-contributions.md) [记录](baselines/monaco-css-build-provenance.json) [记录](baselines/monaco-css-build-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-css.md) [记录](baselines/monaco-node-path-provenance.json) [记录](baselines/monaco-node-path-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-node-path.md) [记录](changes/2026-09-15-SITE-07-monaco-dom.md) [记录](baselines/monaco-dom-origins-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-unicode.md) [记录](baselines/monaco-unicode-provenance.json) [记录](baselines/monaco-unicode-validation.json) [记录](changes/2026-09-15-SITE-07-font-notices.md) [记录](baselines/site-font-notices-provenance.json) [记录](baselines/site-font-notices-validation.json) [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - EX-01: [记录](changes/2026-09-14-EX-01-react-consumer.md) [记录](baselines/react-consumer-validation.json) [记录](scripts/react-consumer.mjs) - EX-02: [记录](changes/2026-09-14-EX-02-vue-consumer.md) [记录](baselines/vue-consumer-validation.json) [记录](scripts/vue-consumer.mjs) +- EX-03: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - MOD-01: [记录](changes/2026-09-15-MOD-01-bun-evaluation.md) [记录](baselines/bun-install-validation.json) [记录](bun-evaluation.md) - MOD-PLUGIN-01: [记录](changes/2026-09-14-MOD-PLUGIN-01-scaffold.md) [记录](baselines/scaffold-validation.json) - MOD-02: [记录](changes/2026-09-14-MOD-02-library-tooling.md) [记录](baselines/library-tooling-validation.json) - MOD-DEV-01: [记录](changes/2026-09-14-MOD-DEV-01-dev-server.md) [记录](baselines/dev-server-validation.json) - MOD-03: [记录](changes/2026-09-14-MOD-03-slider-updates.md) [记录](baselines/slider-updates-validation.json) [记录](changes/2026-09-14-MOD-03-performance-acceptance.md) [记录](baselines/core-performance-validation.json) +- MOD-04: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- MOD-05: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - REL-08: [记录](changes/2026-09-14-REL-08-release-ledger.md) [记录](baselines/release-ledger-validation.json) [记录](release-ledger.md) [记录](release-ledger.json) - REL-01: [记录](version-plan.md) [记录](version-plan.json) [记录](baselines/version-registry-2026-09-16.json) [记录](changes/2026-09-16-REL-01-version-plan.md) - REL-09: [记录](changes/2026-09-16-REL-09-major-versions.md) [记录](baselines/major-version-preparation.json) [记录](baselines/version-registry-prepared-2026-09-16.json) [记录](version-plan.md) -- REL-02: [记录](changes/2026-09-16-REL-02-types-inputs.md) [记录](baselines/major-installed-types-validation.json) [记录](changes/2026-09-16-REL-02-yarn-candidate-archives.md) [记录](baselines/major-candidate-archive-validation.json) [记录](changes/2026-09-16-REL-02-candidate-registration.md) [记录](baselines/major-candidate-preparation.json) [记录](changes/2026-09-16-REL-02-auto-thumbnail-refresh.md) [记录](baselines/auto-thumbnail-candidate-refresh.json) [记录](baselines/auto-thumbnail-candidate-refresh-check.json) [记录](changes/2026-09-16-REL-02-thumbnail-refresh.md) [记录](baselines/thumbnail-candidate-refresh.json) [记录](baselines/thumbnail-candidate-refresh-check.json) [记录](changes/2026-09-16-REL-02-dash-refresh.md) [记录](baselines/dash-candidate-refresh.json) [记录](baselines/dash-candidate-refresh-check.json) [记录](changes/2026-09-16-REL-02-shared-tools-refresh.md) [记录](baselines/shared-tools-candidate-refresh.json) [记录](baselines/shared-tools-candidate-refresh-check.json) [记录](changes/2026-09-16-REL-02-site-inputs-refresh.md) [记录](baselines/site-inputs-candidate-refresh.json) [记录](baselines/site-inputs-candidate-refresh-check.json) +- REL-02: [记录](changes/2026-09-16-REL-02-types-inputs.md) [记录](baselines/major-installed-types-validation.json) [记录](changes/2026-09-16-REL-02-yarn-candidate-archives.md) [记录](baselines/major-candidate-archive-validation.json) [记录](changes/2026-09-16-REL-02-candidate-registration.md) [记录](baselines/major-candidate-preparation.json) [记录](changes/2026-09-16-REL-02-auto-thumbnail-refresh.md) [记录](baselines/auto-thumbnail-candidate-refresh.json) [记录](baselines/auto-thumbnail-candidate-refresh-check.json) [记录](changes/2026-09-16-REL-02-thumbnail-refresh.md) [记录](baselines/thumbnail-candidate-refresh.json) [记录](baselines/thumbnail-candidate-refresh-check.json) [记录](changes/2026-09-16-REL-02-dash-refresh.md) [记录](baselines/dash-candidate-refresh.json) [记录](baselines/dash-candidate-refresh-check.json) [记录](changes/2026-09-16-REL-02-shared-tools-refresh.md) [记录](baselines/shared-tools-candidate-refresh.json) [记录](baselines/shared-tools-candidate-refresh-check.json) [记录](changes/2026-09-16-REL-02-site-inputs-refresh.md) [记录](baselines/site-inputs-candidate-refresh.json) [记录](baselines/site-inputs-candidate-refresh-check.json) [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- REL-03: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - REL-04: [记录](changes/2026-09-15-REL-04-consumer-checkpoint.md) [记录](rollback-rehearsal.md) [记录](baselines/rollback-consumer-validation.json) [记录](changes/2026-09-15-REL-04-workflows-checkpoint.md) [记录](rollback-inventory.md) [记录](baselines/rollback-workflows-validation.json) [记录](changes/2026-09-15-REL-04-pages-recovery.md) [记录](baselines/pages-recovery-validation.json) [记录](changes/2026-09-15-REL-04-acceptance.md) [记录](baselines/rollback-acceptance-validation.json) +- REVIEW-01: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- REVIEW-02: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- REVIEW-03: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- REL-05: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- REL-06: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 +- REL-07: [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - PKG-FACTORY-01: [记录](baselines/factory-assignment-gaps.json) [记录](baselines/factory-compatibility-proposals.json) [记录](factory-compatibility-decision.md) [记录](changes/2026-09-12-PKG-FACTORY-01-decision.md) [记录](type-compatibility-policy.md) [记录](baselines/factory-compatibility-validation.json) [记录](changes/2026-09-13-PKG-FACTORY-01-compatible-types.md) - CORE-25: [记录](changes/2026-09-13-CORE-25-defaults-ssr.md) [记录](baselines/defaults-ssr-validation.json) - ENG-12: [记录](changes/2026-09-13-ENG-12-library-public.md) [记录](baselines/library-public-validation.json) @@ -716,7 +753,7 @@ - PKG-DANMUKU-11: [记录](changes/2026-09-13-PKG-DANMUKU-11-visible-lifetime.md) [记录](baselines/danmuku-lifetime-validation.json) - PKG-DANMUKU-12: [记录](changes/2026-09-13-PKG-DANMUKU-12-frame-sampling.md) [记录](baselines/danmuku-frame-sampling-validation.json) - PKG-JASSUB-08: [记录](changes/2026-09-14-PKG-JASSUB-08-offscreen.md) [记录](baselines/jassub-offscreen-validation.json) [记录](baselines/jassub-offscreen-patch.json) -- PKG-JASSUB-09: [记录](changes/2026-09-14-PKG-JASSUB-09-hybrid.md) [记录](baselines/jassub-hybrid-validation.json) [记录](baselines/jassub-hybrid-patch.json) [记录](changes/2026-09-14-PKG-JASSUB-09-firefox-diagnostics.md) [记录](changes/2026-09-14-PKG-JASSUB-09-display.md) [记录](baselines/jassub-display-validation.json) [记录](changes/2026-09-15-PKG-JASSUB-09-native-call.md) [记录](baselines/jassub-native-call-validation.json) +- PKG-JASSUB-09: [记录](changes/2026-09-14-PKG-JASSUB-09-hybrid.md) [记录](baselines/jassub-hybrid-validation.json) [记录](baselines/jassub-hybrid-patch.json) [记录](changes/2026-09-14-PKG-JASSUB-09-firefox-diagnostics.md) [记录](changes/2026-09-14-PKG-JASSUB-09-display.md) [记录](baselines/jassub-display-validation.json) [记录](changes/2026-09-15-PKG-JASSUB-09-native-call.md) [记录](baselines/jassub-native-call-validation.json) [记录](self-test-handoff.md) 2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。 - PKG-AUTO-THUMB-07: [记录](changes/2026-09-14-PKG-AUTO-THUMB-07-canvas.md) [记录](baselines/auto-thumbnail-canvas-validation.json) - PKG-AUTO-THUMB-08: [记录](changes/2026-09-14-PKG-AUTO-THUMB-08-types.md) [记录](baselines/auto-thumbnail-types-validation.json) - PKG-AUTO-THUMB-09: [记录](changes/2026-09-14-PKG-AUTO-THUMB-09-alias.md) [记录](baselines/auto-thumbnail-alias-validation.json) @@ -755,3 +792,4 @@ - CI-NPM-02: [记录](changes/2026-09-16-CI-NPM-02-verify-bundle.md) [记录](baselines/npm-bundle-verification.json) - CI-NPM-03: [记录](changes/2026-09-16-CI-NPM-03-registry.md) [记录](baselines/npm-registry-validation.json) - PKG-AUDIO-BUFFER-01: [记录](changes/2026-09-16-PKG-AUDIO-BUFFER-01-order.md) [记录](baselines/audio-buffer-order-validation.json) +- DOC-HANDOFF-01: [记录](self-test-handoff.md) [记录](baselines/self-test-handoff-stop.json) [记录](remaining-issues.md) diff --git a/refactor/progress.md b/refactor/progress.md index fb61f3e8d..a0e23f265 100644 --- a/refactor/progress.md +++ b/refactor/progress.md @@ -1,5 +1,17 @@ # 进度与证据 +## 2026-09-16:DOC-HANDOFF-01 停止自主重构,转交用户自测 + +用户要求尽快停止长任务,非必要问题以后处理,不马上发布 npm。已中断会话 34354, +退出码 1;原长测进程和 8084 监听已停止,未完成断言不算通过。 +[交接与延期清单](self-test-handoff.md)覆盖以下所有历史“继续”安排。 +主计划原 24 doing / 36 todo 共 60 项改为 deferred,并保留原状态、证据与门槛; +新增交接任务后为 227 done / 60 deferred。已知风险不关闭,无新源码修改。 +按用户补充要求生成[遗留问题完整清单](remaining-issues.md),保留主台账全部 77 条开放 +记录、5 条范围接受差异、独立分支额外问题及 60 项延期任务,逐项链接证据与关闭条件。 +独立分支 1af2c1347 保存排队帧修复,尚未合入;原生专项和默认模式 AV 问题延期。 +本轮仅文档/计划校验与提交审计,不再修复、重跑矩阵、打包、复盘、推送或发布。 + ## PKG-MB-09 长测 AV 阈值越界(运行未终结) 首批两个Chromium组合约1767秒时累计最大帧/音频时钟差达到549ms/570ms,超过 diff --git a/refactor/remaining-issues.md b/refactor/remaining-issues.md new file mode 100644 index 000000000..48eb11bd3 --- /dev/null +++ b/refactor/remaining-issues.md @@ -0,0 +1,1854 @@ +# 遗留问题交接清单(2026-09-16) + +用户要求停止本轮自主实施,遗留问题以后逐项处理。本清单是交接快照;主台账仍为 [risks.json](risks.json),执行安排见 [自测交接](self-test-handoff.md)。后续修复时同步台账与本清单,不凭旧标题判断当前代码仍有同样缺陷。 + +## 如何理解这些数量 + +- 主台账共 288 条:77 条 open、206 条 resolved、5 条 accepted-with-scope;另有独立分支 MB-DROP-01 尚未合入。 +- 77 条 open 不是 77 个当前必现 bug:其中包括历史缺陷已经局部修复但验收未结束、分发差异、环境/设备缺口、来源与许可待核实事项。 +- 60 项延期任务是工作计划,与风险条目不是一一对应;全部保留在文末,避免没有独立风险 ID 的剩余工作丢失。 +- 本次只整理已有证据,未重新验证每条问题;“已复现”不代表在本次交接重新复现。下文保留原记录措辞与版本边界。 + +## 后续可优先关注的项目 + +| 项目 | 已知情况与接续边界 | +| --- | --- | +| MediaBunny 长时间 AV 采样越界 | MB-SYNC-01;两个 Chromium 组合约549/570ms,运行已中断。先诊断,不能直接认为是用户可见持续失步。 | +| MediaBunny 显式丢帧 | MB-DROP-01;修复独立提交保存,缺原生专项与合入。与上项分开处理。 | +| JASSUB | JASSUB-HYBRID-01 与 JASSUB-FIREFOX-OFFSCREEN-01;分别保留绘制/终止生命周期问题与 Firefox 原生 Worker 对照,避免混成同一根因。 | +| HLS / DASH | HLS-CRASH-01、HLS-PLAYBACK-01、DASH-SEEK-01;按精确 SDK/核心/浏览器组合重现,旧 SDK 原生问题不自动归因重构。 | +| WebKit 媒体 / 缩略图 / 字幕 | AUDIO-BUFFER-01、AUTO-THUMB-PIXEL-01、MULTI-SUB-SWITCH-01、CHAPTER-TIMING-01 等;保留原失败和原生对照,不靠扩大超时抹平。 | +| Mask / Cast / PiP / VAST / ASR | 仍有设备、资源释放、媒体与外部服务组合缺口;VAST 受 VPN 影响确实无法加载时允许记录跳过,不扩展到 Ads。 | +| 文档和来源 | SITE-05/07、字体和样本来源、尚未发布到远端的新文档链接;不把本地构建等同线上部署完成。 | +| 性能与发布 | ENG-PERF-01/02、旧归档/回退完整性、候选指纹、远端 CI/npm 工作流;留待用户安排专项或发布准备。 | + +## 77 条未关闭记录 + +每条列出责任任务、当前已知状态、处理方向、关闭条件和原始证据。原记录没有新增现场结论时明确保持未知。 +### ENG-PERF-01:Candidate core bundles exceed the BASE-06 size review threshold in all three formats + +证据性质:源码/声明/产物事实。后续任务:CORE-22、MOD-03、REVIEW-01。 + +当前状态:First ENG-08 modern core measurement: 134037 to 207875 raw bytes, 35486 to 58374 gzip9, 32533 to 53326 Brotli6. Chapter remains below the combined relative/absolute review threshold. This is a review requirement, not a release approval. CORE-22 navigation phase: 208030 raw / 58429 gzip9 / 53361 Brotli6 modern bytes. Preferred-target revalidation removes a second panel scan at a cost of 55 gzip bytes over ENG-08; it does not resolve total bundle growth. Final CORE-22: modern 208037 raw / 58434 gzip9 / 53372 Brotli6; legacy 212218 / 59686 / 54412; ESM 361496 / 77141 / 70030. Navigation and initial-layout work were reduced, but total size remains above the historical threshold. MOD-03 and REVIEW-01 must review this before release. MOD-03 slider checkpoint: dynamic ARIA writes compare actual DOM before mutation. Main/legacy three paired groups per desktop engine pass operation/native-playback checks. Synthetic repeated-event timings include slower groups; main is 208943 raw / 58756 gzip9 / 53660 Brotli6, +10 gzip bytes from the immediate prechange artifact. Full installed BASE-06 pairing and remaining hotspots are still outstanding; this risk stays open. MOD-03 completion: native persistence (9 paired cases), installed layout/navigation (12 cases), Chromium first-frame CPU sampling, and fresh installed BASE-06 three-group comparisons are complete. Final formal candidate resource windows all pass; original 349ms harness failure and first Chromium destruction signal are retained. Size remains review-required. Storage caching was rejected to preserve independently parsed objects and synchronous interleaved settings. REVIEW-01 retains this open release review; completion of MOD-03 does not waive it. + +已做处理/后续方向:Attribute the growth to actual modules and build output, remove avoidable overhead while preserving APIs, and document any justified remaining cost against matching published entries. + +关闭条件:Fresh isolated artifacts have reproducible raw/gzip9/Brotli6 results and an explicit size review; do not raise or overwrite the historical threshold to pass. + +复现、排查与验证依据: + +- [refactor/coverage-performance.md](../refactor/coverage-performance.md) +- [refactor/baselines/quality-validation.json](../refactor/baselines/quality-validation.json) +- [refactor/changes/2026-09-11-ENG-08-quality-reports.md](../refactor/changes/2026-09-11-ENG-08-quality-reports.md) +- [refactor/baselines/core-setting-navigation-partial.json](../refactor/baselines/core-setting-navigation-partial.json) +- [refactor/changes/2026-09-11-CORE-22-core-acceptance.md](../refactor/changes/2026-09-11-CORE-22-core-acceptance.md) +- [refactor/core-acceptance.md](../refactor/core-acceptance.md) +- [refactor/baselines/core-acceptance-validation.json](../refactor/baselines/core-acceptance-validation.json) +- [refactor/changes/2026-09-14-MOD-03-slider-updates.md](../refactor/changes/2026-09-14-MOD-03-slider-updates.md) +- [refactor/baselines/slider-updates-validation.json](../refactor/baselines/slider-updates-validation.json) +- [refactor/changes/2026-09-14-MOD-03-performance-acceptance.md](../refactor/changes/2026-09-14-MOD-03-performance-acceptance.md) +- [refactor/baselines/core-performance-validation.json](../refactor/baselines/core-performance-validation.json) + +### ENG-PERF-02:Intermittent constructor and destruction timing signals require follow-up paired measurement + +证据性质:待取证或环境缺口。后续任务:CORE-22、MOD-03、REVIEW-01。 + +当前状态:First ENG-08 run: Firefox group 2 had core/chapter constructor delta 3/5 ms, WebKit group 3 chapter delta 3 ms, versus 2 ms absolute allowance. Other groups did not trigger. Candidate resource checks passed independently. Final run: Chromium/Firefox had no timing signals; WebKit group 1 core/chapter each increased 3 ms, with no signals in the other two groups. The intermittent review remains open. CORE-22 navigation phase: Chromium group 1 core/chapter destroy deltas 3.1/2.5 ms and group 3 chapter constructor delta 2.8 ms; WebKit group 1 chapter destroy delta 27 ms (71 to 98 ms); Firefox has no timing signals. Other groups do not reproduce those destroy signals. All 54 candidate resource probes pass. The timed fixture uses default settings disabled, so these measurements do not establish any timing effect from setting navigation changes. Final CORE-22: no constructor timing signals in any of the three engines; Chromium/Firefox have no timing signals. WebKit group 1 chapter destruction delta 44 ms and group 2 core delta 30 ms remain, group 3 has no signal. All 54 candidate resource probes pass. Chromium sampling identifies native load/DOM teardown cost but does not establish the cause of WebKit signals. MOD-03/REVIEW-01 retain the open review without changing allowances. MOD-03 slider checkpoint: dynamic ARIA writes compare actual DOM before mutation. Main/legacy three paired groups per desktop engine pass operation/native-playback checks. Synthetic repeated-event timings include slower groups; main is 208943 raw / 58756 gzip9 / 53660 Brotli6, +10 gzip bytes from the immediate prechange artifact. Full installed BASE-06 pairing and remaining hotspots are still outstanding; this risk stays open. MOD-03 completion: native persistence (9 paired cases), installed layout/navigation (12 cases), Chromium first-frame CPU sampling, and fresh installed BASE-06 three-group comparisons are complete. Final formal candidate resource windows all pass; original 349ms harness failure and first Chromium destruction signal are retained. Size remains review-required. Storage caching was rejected to preserve independently parsed objects and synchronous interleaved settings. REVIEW-01 retains this open release review; completion of MOD-03 does not waive it. + +已做处理/后续方向:Repeat paired measurements on the same environment, distinguish initialization and teardown work from host jitter, and optimize only after identifying a reproducible cost. + +关闭条件:Explain repeat-group timing signals with retained samples and source fingerprints; do not infer a regression or improvement from a single group or expand timing allowances. + +复现、排查与验证依据: + +- [refactor/coverage-performance.md](../refactor/coverage-performance.md) +- [refactor/baselines/quality-validation.json](../refactor/baselines/quality-validation.json) +- [refactor/changes/2026-09-11-ENG-08-quality-reports.md](../refactor/changes/2026-09-11-ENG-08-quality-reports.md) +- [refactor/baselines/core-setting-navigation-partial.json](../refactor/baselines/core-setting-navigation-partial.json) +- [refactor/changes/2026-09-11-CORE-22-core-acceptance.md](../refactor/changes/2026-09-11-CORE-22-core-acceptance.md) +- [refactor/core-acceptance.md](../refactor/core-acceptance.md) +- [refactor/baselines/core-acceptance-validation.json](../refactor/baselines/core-acceptance-validation.json) +- [refactor/changes/2026-09-14-MOD-03-slider-updates.md](../refactor/changes/2026-09-14-MOD-03-slider-updates.md) +- [refactor/baselines/slider-updates-validation.json](../refactor/baselines/slider-updates-validation.json) +- [refactor/changes/2026-09-14-MOD-03-performance-acceptance.md](../refactor/changes/2026-09-14-MOD-03-performance-acceptance.md) +- [refactor/baselines/core-performance-validation.json](../refactor/baselines/core-performance-validation.json) + +### BASE-DEMO-01:旧 thumbnail 插件示例不对应当前 workspace 包 + +证据性质:源码/声明/产物事实。后续任务:SITE-01、EX-03。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:核实旧外部插件和链接,不自动替换为不同 API 的 auto-thumbnail。 + +关闭条件:示例依赖有来源,旧参数/URL 的保留或迁移解释完整。 + +复现、排查与验证依据: + +- [docs/assets/example/thumbnail.js](../docs/assets/example/thumbnail.js) +- [refactor/baselines/demo-inventory.json](../refactor/baselines/demo-inventory.json) +- [refactor/site-inventory.md](../refactor/site-inventory.md) + +### BASE-DIST-01:thumbnail tool 分发入口与类型文件缺失 + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-TOOL-THUMB-04、PKG-TOOL-THUMB-06。 + +当前状态:Current root ESM, direct CJS, legacy and declarations pass isolated installs. Missing historical .esm.js was replaced by the real root .mjs entry. Historical 3.5.31 CSS path/disposition and complete original promised-path review remain 06; item stays open. + +已做处理/后续方向:Recovered 3.5.31 has main and a CSS entry; baseline workspace lacks main and points to missing .esm.js/types. Recoverable CDN main is verified against Git, not an original tarball. Preserve supported paths, decide historical CSS disposition, add real declarations and verify isolated installs in 04/06. + +关闭条件:隔离打包消费者能加载所有原承诺路径,dist 不作为源码直接手改。 + +复现、排查与验证依据: + +- [refactor/baselines/distribution.json](../refactor/baselines/distribution.json) +- [refactor/baselines/thumbnail-contract.md](../refactor/baselines/thumbnail-contract.md) +- [refactor/baselines/thumbnail-release.json](../refactor/baselines/thumbnail-release.json) +- [refactor/scripts/thumbnail-contract.test.mjs](../refactor/scripts/thumbnail-contract.test.mjs) +- [refactor/baselines/thumbnail-public-types-validation.json](../refactor/baselines/thumbnail-public-types-validation.json) + +### BASE-SOURCE-01:工作区 5.4.1 与采集时真实发布 5.4.0 不同 + +证据性质:源码/声明/产物事实。后续任务:BASE-08、REL-01。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:分别保留工作区与 npm 基线,目标大版本不变;更新发布窗口需新取证。 + +关闭条件:候选报告明确比较版本与 tarball,不声称工作区版本即已发布。 + +复现、排查与验证依据: + +- [refactor/baselines/releases.json](../refactor/baselines/releases.json) + +### BASE-SOURCE-02:registry gitHead 与发布包版本对应不可靠 + +证据性质:源码/声明/产物事实。后续任务:ENG-07、REL-01。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:以 tarball 内容和可验证的构建来源为准,不能据 gitHead 自动声称复现。 + +关闭条件:候选 commit、工具链、包内容可关联,旧来源未知仍明确。 + +复现、排查与验证依据: + +- [refactor/baselines/releases.json](../refactor/baselines/releases.json) + +### BASE-SITE-01:文档站实际为静态站点但 manifest 未设 private + +证据性质:源码/声明/产物事实。后续任务:SITE-01、REL-01。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:区分站点部署和库 npm 发布;自身 next-major 要求保留。 + +关闭条件:发布流程显式列出站点处理方式,不机械将其当库发布。 + +复现、排查与验证依据: + +- [refactor/baselines/distribution.json](../refactor/baselines/distribution.json) +- [refactor/site-inventory.md](../refactor/site-inventory.md) + +### BASE-MEDIA-01:示例媒体和字体的完整来源/授权链待核实 + +证据性质:待取证或环境缺口。后续任务:BASE-08、SITE-01、EX-03、SITE-07。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:复用现有样本时记录来源;缺许可的公开分发样本需补证据或可兼容替代,不能从文件名猜授权。 + +关闭条件:候选实际分发样本有来源、许可/使用依据和测试映射。 + +复现、排查与验证依据: + +- [docs/assets/sample](../docs/assets/sample) +- [docs/assets/jassub](../docs/assets/jassub) +- [refactor/site-inventory.md](../refactor/site-inventory.md) +- [refactor/baselines/site-provenance.json](../refactor/baselines/site-provenance.json) +- [refactor/changes/2026-09-15-SITE-07-font-notices.md](../refactor/changes/2026-09-15-SITE-07-font-notices.md) +- [refactor/baselines/site-font-notices-provenance.json](../refactor/baselines/site-font-notices-provenance.json) +- [refactor/baselines/site-font-notices-validation.json](../refactor/baselines/site-font-notices-validation.json) + +### VENDOR-04:jassub-code-and-workers 来源、版本与许可闭环 + +证据性质:源码/声明/产物事实。后续任务:PKG-JASSUB-01、PKG-JASSUB-06。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Keep separate from owned TS migration. Verify source/version/diff and license notices before replacement; preserve API/CSS/worker URLs and run owning package tests. + +关闭条件:固定上游版本/内容差异、完整组件许可与分发 notices,兼容测试通过;仅当前上游许可证名称不足以关闭。 + +复现、排查与验证依据: + +- [refactor/third-party.json](../refactor/third-party.json) +- [packages/artplayer-plugin-jassub/src/jassub.es.js](../packages/artplayer-plugin-jassub/src/jassub.es.js) +- [packages/artplayer-plugin-jassub/worker](../packages/artplayer-plugin-jassub/worker) +- [docs/assets/jassub/jassub-worker.js](../docs/assets/jassub/jassub-worker.js) +- [docs/assets/jassub/jassub-worker.wasm](../docs/assets/jassub/jassub-worker.wasm) +- [docs/assets/jassub/jassub-worker-modern.wasm](../docs/assets/jassub/jassub-worker-modern.wasm) +- [refactor/baselines/jassub-release.json](../refactor/baselines/jassub-release.json) +- [refactor/baselines/jassub-vendor.json](../refactor/baselines/jassub-vendor.json) +- [refactor/baselines/jassub-font-metadata.json](../refactor/baselines/jassub-font-metadata.json) +- [refactor/baselines/jassub-contract.md](../refactor/baselines/jassub-contract.md) +- [refactor/baselines/jassub-contract-validation.json](../refactor/baselines/jassub-contract-validation.json) +- [refactor/changes/2026-09-13-PKG-JASSUB-01-baseline.md](../refactor/changes/2026-09-13-PKG-JASSUB-01-baseline.md) +- [refactor/baselines/jassub-provenance.json](../refactor/baselines/jassub-provenance.json) +- [refactor/baselines/jassub-provenance-validation.json](../refactor/baselines/jassub-provenance-validation.json) +- [refactor/changes/2026-09-14-PKG-JASSUB-01-provenance.md](../refactor/changes/2026-09-14-PKG-JASSUB-01-provenance.md) + +### VENDOR-05:jassub-font-assets 来源、版本与许可闭环 + +证据性质:源码/声明/产物事实。后续任务:PKG-JASSUB-01、SITE-01、PKG-JASSUB-06、SITE-07。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Keep separate from owned TS migration. Verify source/version/diff and license notices before replacement; preserve API/CSS/worker URLs and run owning package tests. + +关闭条件:固定上游版本/内容差异、完整组件许可与分发 notices,兼容测试通过;仅当前上游许可证名称不足以关闭。 + +复现、排查与验证依据: + +- [refactor/third-party.json](../refactor/third-party.json) +- [docs/assets/jassub/default.woff2](../docs/assets/jassub/default.woff2) +- [docs/assets/jassub/fonts](../docs/assets/jassub/fonts) +- [refactor/baselines/jassub-release.json](../refactor/baselines/jassub-release.json) +- [refactor/baselines/jassub-vendor.json](../refactor/baselines/jassub-vendor.json) +- [refactor/baselines/jassub-font-metadata.json](../refactor/baselines/jassub-font-metadata.json) +- [refactor/baselines/jassub-contract.md](../refactor/baselines/jassub-contract.md) +- [refactor/baselines/jassub-contract-validation.json](../refactor/baselines/jassub-contract-validation.json) +- [refactor/changes/2026-09-13-PKG-JASSUB-01-baseline.md](../refactor/changes/2026-09-13-PKG-JASSUB-01-baseline.md) +- [refactor/baselines/jassub-provenance.json](../refactor/baselines/jassub-provenance.json) +- [refactor/baselines/jassub-provenance-validation.json](../refactor/baselines/jassub-provenance-validation.json) +- [refactor/changes/2026-09-14-PKG-JASSUB-01-provenance.md](../refactor/changes/2026-09-14-PKG-JASSUB-01-provenance.md) +- [refactor/site-inventory.md](../refactor/site-inventory.md) +- [refactor/baselines/site-provenance.json](../refactor/baselines/site-provenance.json) +- [refactor/changes/2026-09-15-SITE-07-font-notices.md](../refactor/changes/2026-09-15-SITE-07-font-notices.md) +- [refactor/baselines/site-font-notices-provenance.json](../refactor/baselines/site-font-notices-provenance.json) +- [refactor/baselines/site-font-notices-validation.json](../refactor/baselines/site-font-notices-validation.json) + +### VENDOR-06:monaco-static-assets 来源、版本与许可闭环 + +证据性质:源码/声明/产物事实。后续任务:SITE-01、SITE-05、SITE-07。 + +当前状态:Monaco 0.30.1 remains byte-pinned, including its known CSS newline-only difference. Codicons 0.0.26, TypeScript 4.4.4 and language-service licenses are delivered. Three service workers, four modes and 76 basic-language bundles reproduce exactly; all 13 core JS minified outputs reproduce with locked esbuild 0.12.6 on Windows x64. Loader/header and css/nls source origins match fixed Git; two maps inventory 584 prepared-source entries and 549 different names. DOMPurify 2.3.1 and marked 3.0.2 have exact source adaptations and complete notice supplements; 85 site notices were verified by HTTP/mobile browser checks. Latest contribution check verifies six archives and 102 Git members, emits 88 TS registration modules and uses RequireJS 2.3.6/Terser 5.9.0 to reproduce the entire dev/min editor assembly, including core string-table entry, dependency injection, order, alias and map trailer. Latest units 23/23, strict type/lint and offline/network source checks pass; modes/tokenizer regressions pass 6/6 across three engines with 2523 token cases per engine. Earlier ten-locale editing/find 30/30 and diff-worker 3/3 evidence remains recorded separately. CSS now reproduces from 68 styles, three embedded images and the copied font, with 81 verified Git members. The archived transport/plugin recipes match every prepared ESM stylesheet; explicit normalization of 70 generated CRLF separators reproduces the entire development CSS. cssnano 4.1.11/PostCSS 7.0.35 reproduce complete minified CSS using isolated frozen Yarn installs (153 selectors/143 versions) and historical browser defaults. The site retains its five header CRLF differences. The exact upstream stage that normalized the 70 development separators is still unidentified. Latest units 25/25, strict type/lint and offline/network checks pass; new three-engine style/theme/font/resize regressions pass 3/3. Original core TS compilation and remaining embedded-origin review stay open; this is not release approval or an exhaustive sanitizer audit. The Node path origin is now fixed to v14.16.0/bd60e93357a118204ea238d94e7a9e4209d93062 and the verified VS Code port. Its complete existing notice text matches both sources; a source supplement corrects the older index link without rewriting it. Six removed exports reproduce both source-map inputs; pinned TS 4.5.0-dev.20211021 emits exact full editor/worker modules. Thirty deterministic original Node path results pass in each browser engine, together with all 86 delivered notices and actual playback: 6/6 browser, 28/28 unit, type/lint, offline/network checks. Chromium retains one observed media ERR_ABORTED despite successful playback. Other embedded origins/full core compilation remain open. DOM helpers now bind six exact VS Code/source-map declarations and fixed WinJS4.4.5 comparison source/complete MIT terms to the unchanged editor; original adaptation version remains unknown, not inferred from that reference. Other origins and full original core compilation remain open. Unicode checkpoint reproduces RTL/Emoji predicates and all 5034 grapheme integers using mixed historical snapshots, matching both original maps and unchanged shipped editor/worker; complete historical Unicode terms and explicit source/version limitations are delivered. Other origins and full original core compilation remain open. + +已做处理/后续方向:Keep separate from owned TS migration. Verify source/version/diff and license notices before replacement; preserve API/CSS/worker URLs and run owning package tests. + +关闭条件:固定上游版本/内容差异、完整组件许可与分发 notices,兼容测试通过;仅当前上游许可证名称不足以关闭。 + +复现、排查与验证依据: + +- [refactor/third-party.json](../refactor/third-party.json) +- [docs/assets/js/vs](../docs/assets/js/vs) +- [refactor/site-inventory.md](../refactor/site-inventory.md) +- [refactor/baselines/site-provenance.json](../refactor/baselines/site-provenance.json) +- [refactor/changes/2026-09-14-SITE-07-vendor-notices.md](../refactor/changes/2026-09-14-SITE-07-vendor-notices.md) +- [refactor/baselines/site-notices-checkpoint.json](../refactor/baselines/site-notices-checkpoint.json) +- [scripts/site-vendor/manifest.json](../scripts/site-vendor/manifest.json) +- [refactor/baselines/site-codicons-provenance.json](../refactor/baselines/site-codicons-provenance.json) +- [refactor/baselines/site-codicons-validation.json](../refactor/baselines/site-codicons-validation.json) +- [refactor/changes/2026-09-15-SITE-07-codicons.md](../refactor/changes/2026-09-15-SITE-07-codicons.md) +- [refactor/baselines/monaco-typescript-provenance.json](../refactor/baselines/monaco-typescript-provenance.json) +- [refactor/baselines/monaco-typescript-validation.json](../refactor/baselines/monaco-typescript-validation.json) +- [refactor/changes/2026-09-15-SITE-07-monaco-typescript.md](../refactor/changes/2026-09-15-SITE-07-monaco-typescript.md) +- [scripts/site-vendor/monaco/typescript.ts](../scripts/site-vendor/monaco/typescript.ts) +- [scripts/site-vendor/monaco/reproduce-typescript.ts](../scripts/site-vendor/monaco/reproduce-typescript.ts) +- [refactor/baselines/monaco-languages-provenance.json](../refactor/baselines/monaco-languages-provenance.json) +- [refactor/baselines/monaco-languages-validation.json](../refactor/baselines/monaco-languages-validation.json) +- [refactor/changes/2026-09-15-SITE-07-monaco-languages.md](../refactor/changes/2026-09-15-SITE-07-monaco-languages.md) +- [scripts/site-vendor/monaco/languages.ts](../scripts/site-vendor/monaco/languages.ts) +- [scripts/site-vendor/monaco/reproduce-languages.ts](../scripts/site-vendor/monaco/reproduce-languages.ts) +- [refactor/baselines/monaco-language-notices.json](../refactor/baselines/monaco-language-notices.json) +- [refactor/baselines/monaco-language-notices-validation.json](../refactor/baselines/monaco-language-notices-validation.json) +- [refactor/changes/2026-09-15-SITE-07-monaco-language-notices.md](../refactor/changes/2026-09-15-SITE-07-monaco-language-notices.md) +- [scripts/site-vendor/monaco/notices.ts](../scripts/site-vendor/monaco/notices.ts) +- [refactor/baselines/monaco-modes-provenance.json](../refactor/baselines/monaco-modes-provenance.json) +- [refactor/baselines/monaco-modes-validation.json](../refactor/baselines/monaco-modes-validation.json) +- [refactor/changes/2026-09-15-SITE-07-monaco-modes.md](../refactor/changes/2026-09-15-SITE-07-monaco-modes.md) +- [scripts/site-vendor/monaco/compiler.ts](../scripts/site-vendor/monaco/compiler.ts) +- [scripts/site-vendor/monaco/reproduce-modes.ts](../scripts/site-vendor/monaco/reproduce-modes.ts) +- [refactor/baselines/monaco-basic-provenance.json](../refactor/baselines/monaco-basic-provenance.json) +- [refactor/baselines/monaco-basic-validation.json](../refactor/baselines/monaco-basic-validation.json) +- [refactor/changes/2026-09-15-SITE-07-monaco-basic.md](../refactor/changes/2026-09-15-SITE-07-monaco-basic.md) +- [refactor/baselines/monaco-core-origins-provenance.json](../refactor/baselines/monaco-core-origins-provenance.json) +- [refactor/baselines/monaco-core-origins-validation.json](../refactor/baselines/monaco-core-origins-validation.json) +- [refactor/changes/2026-09-15-SITE-07-monaco-core-origins.md](../refactor/changes/2026-09-15-SITE-07-monaco-core-origins.md) +- [refactor/baselines/monaco-core-build-provenance.json](../refactor/baselines/monaco-core-build-provenance.json) +- [refactor/baselines/monaco-core-build-validation.json](../refactor/baselines/monaco-core-build-validation.json) +- [refactor/changes/2026-09-15-SITE-07-monaco-core-build.md](../refactor/changes/2026-09-15-SITE-07-monaco-core-build.md) +- [refactor/baselines/monaco-contributions-provenance.json](../refactor/baselines/monaco-contributions-provenance.json) +- [refactor/baselines/monaco-contributions-validation.json](../refactor/baselines/monaco-contributions-validation.json) +- [refactor/changes/2026-09-15-SITE-07-monaco-contributions.md](../refactor/changes/2026-09-15-SITE-07-monaco-contributions.md) +- [refactor/baselines/monaco-css-build-provenance.json](../refactor/baselines/monaco-css-build-provenance.json) +- [refactor/baselines/monaco-css-build-validation.json](../refactor/baselines/monaco-css-build-validation.json) +- [refactor/changes/2026-09-15-SITE-07-monaco-css.md](../refactor/changes/2026-09-15-SITE-07-monaco-css.md) +- [refactor/baselines/monaco-node-path-provenance.json](../refactor/baselines/monaco-node-path-provenance.json) +- [refactor/baselines/monaco-node-path-validation.json](../refactor/baselines/monaco-node-path-validation.json) +- [refactor/changes/2026-09-15-SITE-07-monaco-node-path.md](../refactor/changes/2026-09-15-SITE-07-monaco-node-path.md) +- [refactor/changes/2026-09-15-SITE-07-monaco-dom.md](../refactor/changes/2026-09-15-SITE-07-monaco-dom.md) +- [refactor/baselines/monaco-dom-origins-provenance.json](../refactor/baselines/monaco-dom-origins-provenance.json) +- [refactor/baselines/monaco-dom-origins-validation.json](../refactor/baselines/monaco-dom-origins-validation.json) +- [refactor/changes/2026-09-15-SITE-07-monaco-unicode.md](../refactor/changes/2026-09-15-SITE-07-monaco-unicode.md) +- [refactor/baselines/monaco-unicode-provenance.json](../refactor/baselines/monaco-unicode-provenance.json) +- [refactor/baselines/monaco-unicode-validation.json](../refactor/baselines/monaco-unicode-validation.json) + +### SDK-01:hls.js 实际集成验证范围 + +证据性质:源码/声明/产物事实。后续任务:PKG-HLS-05、EX-03。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Caller supplies art.hls; homepage demo loads hls.js 1.5.17. Preserve quality/audio selectors and old core integration. + +关闭条件:固定 SDK/外部资源版本和环境;成功/失败/切换/销毁有真实证据,设备和网络限制逐项记录。 + +复现、排查与验证依据: + +- [packages/artplayer-plugin-hls-control/src/index.ts](../packages/artplayer-plugin-hls-control/src/index.ts) +- [docs/assets/example/hls.control.js](../docs/assets/example/hls.control.js) +- [refactor/hls-validation.md](../refactor/hls-validation.md) + +### SDK-02:dash.js 实际集成验证范围 + +证据性质:待取证或环境缺口。后续任务:PKG-DASH-01、EX-03、PKG-DASH-05。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Caller supplies art.dash. Preserve published 4.x callers (demo 4.5.2) and workspace 5.x stable representation IDs (demo 5.2.1); verify actual media and SDK lifecycle in PKG-DASH-05. + +关闭条件:固定 SDK/外部资源版本和环境;成功/失败/切换/销毁有真实证据,设备和网络限制逐项记录。 + +复现、排查与验证依据: + +- [packages/artplayer-plugin-dash-control/src/index.ts](../packages/artplayer-plugin-dash-control/src/index.ts) +- [docs/assets/example/dash.control.js](../docs/assets/example/dash.control.js) +- [refactor/baselines/dash-control-contract.md](../refactor/baselines/dash-control-contract.md) + +### SDK-03:flv.js 实际集成验证范围 + +证据性质:待取证或环境缺口。后续任务:EX-03。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Demo dependency flv.js 1.6.2; customType playback/teardown must be tested with actual SDK. + +关闭条件:固定 SDK/外部资源版本和环境;成功/失败/切换/销毁有真实证据,设备和网络限制逐项记录。 + +复现、排查与验证依据: + +- [docs/assets/example/flv.js](../docs/assets/example/flv.js) + +### SDK-04:mpegts.js 实际集成验证范围 + +证据性质:待取证或环境缺口。后续任务:EX-03。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Demo dependency mpegts.js 1.7.3; actual codec/stream/browser support remains unverified. + +关闭条件:固定 SDK/外部资源版本和环境;成功/失败/切换/销毁有真实证据,设备和网络限制逐项记录。 + +复现、排查与验证依据: + +- [docs/assets/example/mpegts.js](../docs/assets/example/mpegts.js) + +### SDK-05:webtorrent 实际集成验证范围 + +证据性质:待取证或环境缺口。后续任务:EX-03。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Demo URL uses webtorrent@1, a moving major selector; preserve caller integration and explicitly capture actual runtime version. + +关闭条件:固定 SDK/外部资源版本和环境;成功/失败/切换/销毁有真实证据,设备和网络限制逐项记录。 + +复现、排查与验证依据: + +- [docs/assets/example/webtorrent.js](../docs/assets/example/webtorrent.js) + +### SDK-06:google-cast 实际集成验证范围 + +证据性质:待取证或环境缺口。后续任务:PKG-CAST-01、PKG-CAST-05。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Default remote cast_sender.js?loadCastFramework=1; sdk URL/options and actual Cast device/session behavior require separate validation. + +关闭条件:固定 SDK/外部资源版本和环境;成功/失败/切换/销毁有真实证据,设备和网络限制逐项记录。 + +复现、排查与验证依据: + +- [packages/artplayer-plugin-chromecast/src/sdk.ts](../packages/artplayer-plugin-chromecast/src/sdk.ts) + +### SDK-07:ima-via-glomex 实际集成验证范围 + +证据性质:待取证或环境缺口。后续任务:PKG-VAST-01、PKG-VAST-05。 + +当前状态:Real IMA3.789.0 executes with immutable npm1.0.0/candidate bundles: final27 desktop combinations22 passed5 failed; error303 recovery/recreation/active-ad destruction6 passed. Initial27 were23 passed4 failed and are preserved. SDK9000/late loading and historical WebKit ad-frame failures remain open. IAB SDK200 but bridge document ERR_BLOCKED_BY_CLIENT; physical devices/playUrl/skip not accepted. No VPN exception or timeout widening/retry-to-green. Native playUrl/IMA skip UI adds5/6 passes (one9000 failure despite later skip), shared server12/12 passes. Historical WebKit trace contains real ad frames; three fixed raw-media diagnostic runs passed without changing the assertion, so the original intermittent failure is not closed. CI-01 complete installed bundle checkpoint: source/installed native-script loader and cancellation controls each36/36; real remote IMA3.789.0 across three desktop engines39/39 (30 installed candidate,9 published controls), including303 recovery/recreation/active-ad destroy and actual skip UI. No retries/skips or VPN exception. This new successful run does not close earlier intermittent9000/late-ad/historical WebKit observations, physical-device or full distribution gates. + +已做处理/后续方向:@glomex/vast-ima-player loadImaSdk loads external IMA; preserve event/content/ad state and teardown, do not equate mocks with vendor service acceptance. + +关闭条件:固定 SDK/外部资源版本和环境;成功/失败/切换/销毁有真实证据,设备和网络限制逐项记录。 + +复现、排查与验证依据: + +- [packages/artplayer-plugin-vast/src/sdk.ts](../packages/artplayer-plugin-vast/src/sdk.ts) +- [refactor/baselines/vast-contract.md](../refactor/baselines/vast-contract.md) +- [refactor/baselines/vast-release.json](../refactor/baselines/vast-release.json) +- [refactor/changes/2026-09-12-PKG-VAST-01-contract.md](../refactor/changes/2026-09-12-PKG-VAST-01-contract.md) +- [refactor/baselines/vast-contract-validation.json](../refactor/baselines/vast-contract-validation.json) +- [refactor/vast-validation.md](../refactor/vast-validation.md) +- [refactor/baselines/vast-behavior-validation.json](../refactor/baselines/vast-behavior-validation.json) +- [refactor/changes/2026-09-14-PKG-VAST-05-native-checkpoint.md](../refactor/changes/2026-09-14-PKG-VAST-05-native-checkpoint.md) +- [refactor/baselines/vast-native-validation.json](../refactor/baselines/vast-native-validation.json) +- [refactor/changes/2026-09-14-PKG-VAST-05-skip-checkpoint.md](../refactor/changes/2026-09-14-PKG-VAST-05-skip-checkpoint.md) +- [refactor/baselines/vast-skip-validation.json](../refactor/baselines/vast-skip-validation.json) +- [refactor/changes/2026-09-15-CI-01-vast-installed.md](../refactor/changes/2026-09-15-CI-01-vast-installed.md) +- [refactor/baselines/ci-vast-installed-validation.json](../refactor/baselines/ci-vast-installed-validation.json) + +### SDK-08:mediapipe-tensorflow 实际集成验证范围 + +证据性质:源码/声明/产物事实。后续任务:PKG-MASK-01、PKG-MASK-05、PKG-MASK-06。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Npm dependency versions are separate from unversioned solutionPath CDN assets; keep option override, backend fallback, model result disposal and masks. + +关闭条件:固定 SDK/外部资源版本和环境;成功/失败/切换/销毁有真实证据,设备和网络限制逐项记录。 + +复现、排查与验证依据: + +- [packages/artplayer-plugin-danmuku-mask/src/index.ts](../packages/artplayer-plugin-danmuku-mask/src/index.ts) +- [refactor/baselines/danmuku-mask-contract.md](../refactor/baselines/danmuku-mask-contract.md) +- [refactor/baselines/danmuku-mask-contract-validation.json](../refactor/baselines/danmuku-mask-contract-validation.json) +- [refactor/baselines/danmuku-mask-release.json](../refactor/baselines/danmuku-mask-release.json) +- [refactor/baselines/danmuku-mask-native-validation.json](../refactor/baselines/danmuku-mask-native-validation.json) +- [refactor/changes/2026-09-14-PKG-MASK-05-native-checkpoint.md](../refactor/changes/2026-09-14-PKG-MASK-05-native-checkpoint.md) + +### SDK-09:jassub-worker-wasm-fonts 实际集成验证范围 + +证据性质:待取证或环境缺口。后续任务:PKG-JASSUB-01、PKG-JASSUB-05。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Preserve options pass-through, result.instance and worker/wasm/font URLs. Wrapper, worker and WASM must be a verified compatible set. + +关闭条件:固定 SDK/外部资源版本和环境;成功/失败/切换/销毁有真实证据,设备和网络限制逐项记录。 + +复现、排查与验证依据: + +- [packages/artplayer-plugin-jassub/src/index.ts](../packages/artplayer-plugin-jassub/src/index.ts) +- [docs/assets/example/jassub.js](../docs/assets/example/jassub.js) + +### SDK-10:mediabunny 实际集成验证范围 + +证据性质:待取证或环境缺口。后续任务:PKG-MB-01、PKG-MB-09。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Preserve native-video-like events, HLS input and topology, codec capability failures and AV sync; actual library/codec environment still requires verification. + +关闭条件:固定 SDK/外部资源版本和环境;成功/失败/切换/销毁有真实证据,设备和网络限制逐项记录。 + +复现、排查与验证依据: + +- [packages/artplayer-proxy-mediabunny/src/input.ts](../packages/artplayer-proxy-mediabunny/src/input.ts) +- [packages/artplayer-proxy-mediabunny/package.json](../packages/artplayer-proxy-mediabunny/package.json) + +### SDK-11:asr-caller-service 实际集成验证范围 + +证据性质:待取证或环境缺口。后续任务:PKG-ASR-01、PKG-ASR-05、EX-03。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Core plugin supplies PCM to caller onAudioChunk. Example fetches an external ASR endpoint and opens its returned WebSocket; not an embedded ASR SDK or a verified service. + +关闭条件:固定 SDK/外部资源版本和环境;成功/失败/切换/销毁有真实证据,设备和网络限制逐项记录。 + +复现、排查与验证依据: + +- [packages/artplayer-plugin-asr/src/index.ts](../packages/artplayer-plugin-asr/src/index.ts) +- [docs/assets/example/asr.js](../docs/assets/example/asr.js) + +### BASE-ENV-01:Windows WebKit native Blob video samples lack decoding support; Apple-device validation remains outstanding + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:REL-03、REVIEW-02。 + +当前状态:Independent video probes on Windows WebKit 26.6 return error 4 and width zero for both local MP4 and WebM Blob samples. Chromium and Firefox decode the tested Blob sample. WebKit ownership tests explicitly report decodedBlob=false. + +已做处理/后续方向:Keep byte ownership and real HTTP playback evidence distinct from native Blob decoding; do not infer Safari or Apple-device support from Windows WebKit. + +关闭条件:Record actual Safari and Apple device versions and native sample capabilities, then compare published/candidate load, playback, seek, source replacement and Blob ownership. + +复现、排查与验证依据: + +- [test/browser/progress-quality.spec.js](../test/browser/progress-quality.spec.js) +- [refactor/environment-matrix.md](../refactor/environment-matrix.md) + +### HLS-ENV-01:Windows WebKit 缺失 MSE,HLS 播放矩阵尚缺 Safari 证据 + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-HLS-05、REL-09、REVIEW-02。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:显式验证宿主不支持,保留 14 skipped,不作为播放通过;补有 MSE 的 Safari/macOS/iOS 环境。 + +关闭条件:实际 Safari/MSE/native 路径证据齐全,不能仅凭 Windows 能力检查关闭。 + +复现、排查与验证依据: + +- [refactor/hls-validation.md](../refactor/hls-validation.md) +- [test/hls-control.test.js](../test/hls-control.test.js) +- [test/browser/hls-control.spec.js](../test/browser/hls-control.spec.js) + +### HLS-CRASH-01:Firefox Hls 1.5.17 worker 播放切组及销毁路径出现页面崩溃信号 + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-HLS-SDK-01、PKG-HLS-05、REVIEW-02。 + +当前状态:2026-09-14 direct HTTP/no ArtPlayer/plugin/Worker observer:35 diagnostics,31 passed4 failed. Worker reset-first fails1/10 and1/5; no-worker10/10 and optional pre-destroy snapshot5/5 pass. SDK-first also fails2/5. Three phase-recorded crashes occur during final-state collection after destroy returned. Installed Firefox TargetRegistry observer receives oop-frameloader-crashed; no native stack/root cause established. Do not substitute no-worker/snapshot success or change core teardown order; risk remains open. 2026-09-15 sequence: direct native video first 1.5.17 case reports page crash in high-group phase before explicit destroy; no earlier SDK case, ArtPlayer, plugin, route, SDK logger or Worker observer. Three ordered sequences plus one default invocation total 8 passed/1 failed. Native cause remains unproven; do not restrict investigation to teardown or merge distinct signals into a proven shared cause. 2026-09-15 installed Firefox 1543 local omni.ja buildconfig includes --disable-crashreporter; playwright.cfg locks crash reporter off. No native stack collected. Environment-variable-only capture cannot restore a compile-disabled component; next evidence needs scoped Windows native debugging or a separately validated browser build. Later in this checkpoint, direct 1.5.17 crashed twice before destroy (one first-in-sequence); no ArtPlayer/plugin. Optional Node event queue retained 97 events in the second crash, ending during overlapping audio/video flush and high selection at media time 0.381837. Crash receipt was low-group; following assertion failure was high-group. No native module/exception/stack established. 2026-09-15 native capture: direct Hls 1.5.17, worker=true, HTTP, immediate switch yielded two pre-destroy page crashes in six iterations. ProcDump 12.01 captured one unhandled C0000005 read at address 0x8, exception thread named DOM Worker, xul.dll+0x3bc4be0. First/second page crashes retained 96/95 host events. No symbol stack or root cause; do not equate the separate 1.7.2 playback stall. Later six and two iterations pass without dumps, but native monitoring is partial due to permission-denied subprocesses; all monitors exited. Risk remains open. + +已做处理/后续方向:直接原生 video(无 ArtPlayer/插件)和候选核心已有 page crashed;候选核心无观察器也复现。继续区分 SDK、Firefox/Playwright 与媒体销毁,不静默改核心 destroy 顺序或调用方 SDK 配置。 + +关闭条件:取得可解释的崩溃诊断或直接 SDK 对照;验证处置和新旧核心/worker/分组销毁矩阵,不能仅以再次通过关闭。 + +复现、排查与验证依据: + +- [test/browser/hls-sdk.spec.js](../test/browser/hls-sdk.spec.js) +- [refactor/changes/2026-09-12-PKG-HLS-SDK-01-integration.md](../refactor/changes/2026-09-12-PKG-HLS-SDK-01-integration.md) +- [refactor/baselines/hls-sdk-diagnostics.json](../refactor/baselines/hls-sdk-diagnostics.json) +- [refactor/scripts/hls-sdk-diagnostic.mjs](../refactor/scripts/hls-sdk-diagnostic.mjs) +- [refactor/changes/2026-09-14-PKG-HLS-SDK-01-http-teardown.md](../refactor/changes/2026-09-14-PKG-HLS-SDK-01-http-teardown.md) +- [refactor/baselines/hls-http-teardown-validation.json](../refactor/baselines/hls-http-teardown-validation.json) +- [refactor/changes/2026-09-15-PKG-HLS-SDK-01-sdk-sequence.md](../refactor/changes/2026-09-15-PKG-HLS-SDK-01-sdk-sequence.md) +- [refactor/baselines/hls-sdk-sequence-validation.json](../refactor/baselines/hls-sdk-sequence-validation.json) +- [refactor/changes/2026-09-15-PKG-HLS-SDK-01-controller-state.md](../refactor/changes/2026-09-15-PKG-HLS-SDK-01-controller-state.md) +- [refactor/baselines/hls-controller-validation.json](../refactor/baselines/hls-controller-validation.json) +- [refactor/changes/2026-09-15-PKG-HLS-SDK-01-native-exception.md](../refactor/changes/2026-09-15-PKG-HLS-SDK-01-native-exception.md) +- [refactor/baselines/hls-native-validation.json](../refactor/baselines/hls-native-validation.json) + +### HLS-PLAYBACK-01:Firefox 旧核心与 Hls 1.7.2 切组后视频档位未完成切换 + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-HLS-SDK-01、PKG-HLS-05、REVIEW-02。 + +当前状态: 2026-09-15 unchanged integration 20/20 passes do not close historical failure. Optional --controller-state now captures fixed SDK controller/buffer/fragment tracker state. Final direct and published-core controls pass for both SDKs; successful cases can briefly show main ENDED and empty media ranges while video SourceBuffer remains populated. Original failure still needs those independent buffers and tracker state; no forced-reset workaround. + +已做处理/后续方向:区分 SDK、测试媒体/时序和宿主问题,保留真实档位/解码断言及 trace;不扩大等待或只验证菜单。 + +关闭条件:直接 Hls 与新旧核心对照定位切换停滞,验证处置和正常/连续组切换,不能以重复通过关闭。 + +复现、排查与验证依据: + +- [test/browser/hls-sdk.spec.js](../test/browser/hls-sdk.spec.js) +- [refactor/changes/2026-09-12-PKG-HLS-SDK-01-integration.md](../refactor/changes/2026-09-12-PKG-HLS-SDK-01-integration.md) +- [refactor/baselines/hls-sdk-validation.json](../refactor/baselines/hls-sdk-validation.json) +- [refactor/changes/2026-09-15-PKG-HLS-SDK-01-switch-boundary.md](../refactor/changes/2026-09-15-PKG-HLS-SDK-01-switch-boundary.md) +- [refactor/baselines/hls-switch-boundary-validation.json](../refactor/baselines/hls-switch-boundary-validation.json) +- [refactor/changes/2026-09-15-PKG-HLS-SDK-01-controller-state.md](../refactor/changes/2026-09-15-PKG-HLS-SDK-01-controller-state.md) +- [refactor/baselines/hls-controller-validation.json](../refactor/baselines/hls-controller-validation.json) + +### AUDIO-SYNC-01:Audio Track 未同步原生暂停/结束,偏移边界与切源/缓冲仍待完整验证 + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-AUDIO-02、PKG-AUDIO-03、PKG-AUDIO-05。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:03 已修复原生暂停/结束;05 的连续切源和偏移原生对照已验证,真实缓冲 Chromium/Firefox 初轮通过但 Windows WebKit 保留 AUDIO-BUFFER-01;策略/设备缺口继续 open。 + +关闭条件:正常/边界/失败/缓冲恢复有媒体与受控断言,实际支持环境缺口明确处理。 + +复现、排查与验证依据: + +- [refactor/baselines/audio-track-contract.md](../refactor/baselines/audio-track-contract.md) +- [refactor/baselines/audio-track-release.json](../refactor/baselines/audio-track-release.json) +- [test/audio-track.test.js](../test/audio-track.test.js) +- [test/browser/audio-track.spec.js](../test/browser/audio-track.spec.js) +- [refactor/baselines/audio-validation.json](../refactor/baselines/audio-validation.json) +- [refactor/baselines/audio-lifecycle-validation.json](../refactor/baselines/audio-lifecycle-validation.json) +- [refactor/baselines/audio-combinations-checkpoint.json](../refactor/baselines/audio-combinations-checkpoint.json) + +### AUDIO-DEMO-01:Audio Track README 示例链接名称不匹配且缺维护说明 + +证据性质:源码/声明/产物事实。后续任务:PKG-AUDIO-06。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:修正 audio.track 示例路径,补真实模块地图及 update/生命周期说明。 + +关闭条件:README、示例、公开声明一致,8082 正式 demo 和包分发验证通过。 + +复现、排查与验证依据: + +- [refactor/baselines/audio-track-contract.md](../refactor/baselines/audio-track-contract.md) +- [refactor/baselines/audio-track-release.json](../refactor/baselines/audio-track-release.json) + +### AUDIO-BUFFER-01:Windows WebKit 原生媒体无法在受限响应下推进至真实缓冲 + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-AUDIO-05。 + +当前状态:CI-01 九包安装扩展的首轮 336 项中,Windows WebKit 八项新旧音频受限媒体组合继续失败。七项未观察到目标可信 waiting,一项受限视频路径耗尽整体时间并在最终状态读取中报页面关闭。其他引擎均通过;保留原始失败,不以销毁后状态反推初始解码错误,不推断新的共同底层原因。 Same-file prefix controls now show Windows WebKit can start before releasing the tail with larger prefixes (video188653/audio65536), but four committed native diagnostics still record no trusted waiting. Default three-engine diagnostics retain Chromium/Firefox8 progression+waiting and WebKit4 no progression/no waiting. Before-release request copies distinguish held bytes from final sent counters; no production fix or waiver. Complete WebKit source run ae56937d3: all eight initial dual-clock assertions pass, then all eight fail the original trusted waiting/time>0.3 assertion at line30. Seven record no waiting; one has only a trusted time0 event. Held prefixes remain96KiB/32KiB. Recovery assertions are not reached; no production fix or waiver. + +已做处理/后续方向:保留真实 waiting 断言;使用独立原生对照和其他实际支持环境/输入继续验证,不将没有播放推进的诊断当成缓冲通过,也不凭此改变插件 API 或否定真实 Safari 支持。 PKG-AUDIO-BUFFER-01已修正测试等待顺序;独立切源放行12项通过,原WebKit真实缓冲8项仍失败,本风险不关闭。 + +关闭条件:受影响的缓冲/恢复得到真实媒体证据;与原生能力和测试夹具差异分开,发布环境的剩余范围经显式处理。 + +复现、排查与验证依据: + +- [test/browser/audio-buffering.spec.js](../test/browser/audio-buffering.spec.js) +- [test/browser/media-gate-native.spec.js](../test/browser/media-gate-native.spec.js) +- [test/helpers/media-gate.js](../test/helpers/media-gate.js) +- [test/media-gate.test.js](../test/media-gate.test.js) +- [refactor/baselines/audio-combinations-checkpoint.json](../refactor/baselines/audio-combinations-checkpoint.json) +- [refactor/audio-validation.md](../refactor/audio-validation.md) +- [refactor/changes/2026-09-15-CI-01-subtitles-installed.md](../refactor/changes/2026-09-15-CI-01-subtitles-installed.md) +- [refactor/baselines/ci-subtitles-installed-validation.json](../refactor/baselines/ci-subtitles-installed-validation.json) +- [refactor/changes/2026-09-15-PKG-AUDIO-05-prefix.md](../refactor/changes/2026-09-15-PKG-AUDIO-05-prefix.md) +- [refactor/baselines/audio-prefix-validation.json](../refactor/baselines/audio-prefix-validation.json) +- [refactor/changes/2026-09-15-CI-01-source-webkit.md](../refactor/changes/2026-09-15-CI-01-source-webkit.md) +- [refactor/baselines/ci-source-webkit-validation.json](../refactor/baselines/ci-source-webkit-validation.json) +- [refactor/changes/2026-09-15-CI-01-installed-webkit.md](../refactor/changes/2026-09-15-CI-01-installed-webkit.md) +- [refactor/baselines/ci-installed-webkit-validation.json](../refactor/baselines/ci-installed-webkit-validation.json) +- [refactor/changes/2026-09-16-PKG-AUDIO-BUFFER-01-order.md](../refactor/changes/2026-09-16-PKG-AUDIO-BUFFER-01-order.md) +- [refactor/baselines/audio-buffer-order-validation.json](../refactor/baselines/audio-buffer-order-validation.json) + +### CHAPTER-TIMING-01:Windows WebKit 清晰度切换曾在等待窗口内未见 restart,稍后状态恢复 + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-CHAPTER-05。 + +当前状态:Six-package installed run: WebKit candidate/core Chapter failed after restart while waiting for non-seeking readyState>=2. A trace evaluation took 9939.104 ms and returned false; initial seeked had already fired, followed later by another seeking/canplay. This is a different observed phase from the previous restart timeout; common root cause remains unconfirmed. Keep both failures and investigate without relaxing timeouts. Fixed diagnostic runs with/without trace each retain one WebKit combination failure, while observed native getters/setters remain <=2 ms and page heartbeats show roughly five-second gaps. A no-ArtPlayer native video control restores with one correction yet reproduces a similar five-second gap; deferring correction still shows 5104 ms. Exact cause and relation to each earlier ten-second failure remain unconfirmed; no production timer workaround adopted. Current major core6/Chapter2 installed matrix: 11 pass, 1 WebKit failure (candidate core + published Chapter). Restart was recorded 619ms after selection; the next trace evaluation took 9989.901ms and returned the correct restart list after the 7000ms observation deadline. This case establishes timely event emission but not the underlying stall cause; no timeout or production workaround adopted. + +已做处理/后续方向:记录原生事件和绝对/相对时序,进一步区分媒体驱动耗时、夹具和核心源操作;未证明原因前不改核心、不扩大超时或重复到绿灯。 + +关闭条件:确认先前超时的来源并有对应可靠回归;后续单次通过不足以关闭。 + +复现、排查与验证依据: + +- [refactor/baselines/chapter-combinations-checkpoint.json](../refactor/baselines/chapter-combinations-checkpoint.json) +- [test/browser/chapter-combinations.spec.js](../test/browser/chapter-combinations.spec.js) +- [refactor/changes/2026-09-12-PKG-CHAPTER-05-combinations.md](../refactor/changes/2026-09-12-PKG-CHAPTER-05-combinations.md) +- [refactor/changes/2026-09-14-PKG-CHAPTER-05-timing.md](../refactor/changes/2026-09-14-PKG-CHAPTER-05-timing.md) +- [refactor/baselines/chapter-timing-observations.json](../refactor/baselines/chapter-timing-observations.json) +- [refactor/baselines/ci-ads-installed-validation.json](../refactor/baselines/ci-ads-installed-validation.json) +- [refactor/changes/2026-09-15-CI-01-ads-installed.md](../refactor/changes/2026-09-15-CI-01-ads-installed.md) +- [refactor/changes/2026-09-15-PKG-CHAPTER-05-native-timing.md](../refactor/changes/2026-09-15-PKG-CHAPTER-05-native-timing.md) +- [refactor/baselines/chapter-native-timing-validation.json](../refactor/baselines/chapter-native-timing-validation.json) +- [refactor/changes/2026-09-15-CI-01-installed-webkit.md](../refactor/changes/2026-09-15-CI-01-installed-webkit.md) +- [refactor/baselines/ci-installed-webkit-validation.json](../refactor/baselines/ci-installed-webkit-validation.json) +- [refactor/changes/2026-09-16-PKG-CHAPTER-05-major-timing.md](../refactor/changes/2026-09-16-PKG-CHAPTER-05-major-timing.md) +- [refactor/baselines/chapter-major-timing-validation.json](../refactor/baselines/chapter-major-timing-validation.json) + +### DASH-SDK-01:npm 发布版 4.x 与工作区仅 5.x 的 SDK 接口不兼容 + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-DASH-02、PKG-DASH-03、PKG-DASH-05。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:按方法能力适配两代已存在用法,保留 v5 稳定 ID,不能要求旧消费者改用新 SDK。 + +关闭条件:归档旧用法、v4/v5 受控及实际媒体矩阵通过,清晰度键不混用。 + +复现、排查与验证依据: + +- [refactor/baselines/dash-control-contract.md](../refactor/baselines/dash-control-contract.md) +- [refactor/baselines/dash-control-release.json](../refactor/baselines/dash-control-release.json) +- [packages/artplayer-plugin-dash-control/src/index.ts](../packages/artplayer-plugin-dash-control/src/index.ts) +- [packages/artplayer-plugin-dash-control/types/artplayer-plugin-dash-control.d.ts](../packages/artplayer-plugin-dash-control/types/artplayer-plugin-dash-control.d.ts) +- [docs/assets/example/dash.control.js](../docs/assets/example/dash.control.js) +- [test/dash-contract.test.js](../test/dash-contract.test.js) +- [refactor/dash-validation.md](../refactor/dash-validation.md) +- [test/dash-lifecycle.test.js](../test/dash-lifecycle.test.js) +- [refactor/baselines/dash-runtime.json](../refactor/baselines/dash-runtime.json) +- [refactor/baselines/dash-sdk-checkpoint.json](../refactor/baselines/dash-sdk-checkpoint.json) + +### DASH-DEMO-01:DASH 示例仅新 SDK 且重复安装会累积销毁回调 + +证据性质:源码/声明/产物事实。后续任务:PKG-DASH-06。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:验证真实 SDK 销毁和示例重载路径,对齐 v4/v5 文档与示例,不让旧监听误操作新实例。 + +关闭条件:真实 8082 demo、旧/新 SDK 路径与 tarball 产物一致,监听和 SDK 所有权可验证。 + +复现、排查与验证依据: + +- [refactor/baselines/dash-control-contract.md](../refactor/baselines/dash-control-contract.md) +- [refactor/baselines/dash-control-release.json](../refactor/baselines/dash-control-release.json) +- [packages/artplayer-plugin-dash-control/src/index.ts](../packages/artplayer-plugin-dash-control/src/index.ts) +- [packages/artplayer-plugin-dash-control/types/artplayer-plugin-dash-control.d.ts](../packages/artplayer-plugin-dash-control/types/artplayer-plugin-dash-control.d.ts) +- [docs/assets/example/dash.control.js](../docs/assets/example/dash.control.js) + +### DASH-SEEK-01:dash.js 4.5.2 空裁剪漏更新缓冲量,稳定暂停 seek 后调度停滞 + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-DASH-05、REVIEW-02、PKG-DASH-SEEK-01。 + +当前状态:CI-01 十二包安装扩展中,裸 SDK 4.5.2 在 Chromium/Firefox 的恢复时间仍为 6,原断言大于 6.2 失败;候选插件集成通过不关闭裸 SDK 原始缺陷,完整失败报告保留。 Complete Firefox source run at 4545c4367 again fails the bare 4.5.2 control; all four candidate stable-boundary cases pass. Original failure remains open and unfiltered. Complete Chromium installed roster at 5e0447fc5, twenty freshly packed packages: 844/845 pass, with the same bare 4.5.2 currentTime=6 failure; all four installed candidate stable-boundary combinations pass. Original failure remains open. Complete Firefox installed roster at b3344a7c6, the same verified twenty-package run-cRduve installation: 844/845 pass, with the same bare 4.5.2 currentTime=6 failure; all four installed candidate stable-boundary combinations pass. Original failure remains open. + +已做处理/后续方向:PKG-DASH-SEEK-01 已在候选插件按精确版本和真实空缓冲同步 SDK 指标,新旧核心及两引擎严格跳转通过。裸 SDK 4.5.2 和冻结旧插件仍保留原始失败;不伪造媒体事件、不偏移 seek、不强制升级 SDK,完整组合及发布验收仍开放。 + +关闭条件:原失败的新旧核心/插件组合有确定根因与对应修复/可验证环境边界;原生对照及原顺序、原目标回归成立,后续偶然通过不能关闭。 + +复现、排查与验证依据: + +- [test/browser/dash-sdk.spec.js](../test/browser/dash-sdk.spec.js) +- [refactor/baselines/dash-sdk-checkpoint.json](../refactor/baselines/dash-sdk-checkpoint.json) +- [refactor/changes/2026-09-12-PKG-DASH-05-sdk-checkpoint.md](../refactor/changes/2026-09-12-PKG-DASH-05-sdk-checkpoint.md) +- [refactor/changes/2026-09-12-PKG-DASH-05-seek-diagnosis.md](../refactor/changes/2026-09-12-PKG-DASH-05-seek-diagnosis.md) +- [refactor/baselines/dash-seek-diagnosis.json](../refactor/baselines/dash-seek-diagnosis.json) +- [test/browser/dash-buffer-observer.js](../test/browser/dash-buffer-observer.js) +- [refactor/changes/2026-09-14-CI-01-source-chromium.md](../refactor/changes/2026-09-14-CI-01-source-chromium.md) +- [refactor/baselines/ci-source-chromium-validation.json](../refactor/baselines/ci-source-chromium-validation.json) +- [refactor/changes/2026-09-14-PKG-DASH-SEEK-01-buffer-metrics.md](../refactor/changes/2026-09-14-PKG-DASH-SEEK-01-buffer-metrics.md) +- [refactor/baselines/dash-seek-recovery-validation.json](../refactor/baselines/dash-seek-recovery-validation.json) +- [refactor/changes/2026-09-15-CI-01-adaptive-installed.md](../refactor/changes/2026-09-15-CI-01-adaptive-installed.md) +- [refactor/baselines/ci-adaptive-installed-validation.json](../refactor/baselines/ci-adaptive-installed-validation.json) +- [refactor/baselines/ci-source-firefox-validation.json](../refactor/baselines/ci-source-firefox-validation.json) +- [refactor/changes/2026-09-15-SITE-EDITOR-VAST-01-consumer.md](../refactor/changes/2026-09-15-SITE-EDITOR-VAST-01-consumer.md) +- [refactor/changes/2026-09-15-CI-01-installed-chromium.md](../refactor/changes/2026-09-15-CI-01-installed-chromium.md) +- [refactor/baselines/ci-installed-chromium-validation.json](../refactor/baselines/ci-installed-chromium-validation.json) +- [refactor/changes/2026-09-15-CI-01-installed-firefox.md](../refactor/changes/2026-09-15-CI-01-installed-firefox.md) +- [refactor/baselines/ci-installed-firefox-validation.json](../refactor/baselines/ci-installed-firefox-validation.json) + +### ADS-DIST-01:Ads npm 1.0.6 default namespace 与未发布 2.1.0 callable/exports 分发不同 + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-ADS-04、PKG-ADS-06、REL-01。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:保留旧 require(pkg).default、global 与有效 dist 路径,同时支持当前 callable/ESM/legacy。工作区 2.1.0 不冒充实际已发布版本,正式目标仍按计划 3.0.0。 + +关闭条件:工作区外真实 tarball 的旧/新导入、浏览器与声明入口全部验证,版本占用再次核实。 + +复现、排查与验证依据: + +- [refactor/baselines/ads-release.json](../refactor/baselines/ads-release.json) +- [refactor/baselines/ads-contract.md](../refactor/baselines/ads-contract.md) +- [refactor/scripts/ads-contract.test.mjs](../refactor/scripts/ads-contract.test.mjs) +- [packages/artplayer-plugin-ads/package.json](../packages/artplayer-plugin-ads/package.json) +- [refactor/baselines/ads-types-validation.json](../refactor/baselines/ads-types-validation.json) + +### ADS-MEDIA-01:Ads metadata 与 play 拒绝、隐藏页媒体状态和内容恢复仍缺真实验证 + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-ADS-02、PKG-ADS-03、PKG-ADS-05。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:用本地媒体验证事件安装顺序、加载失败与拒绝、倒计时和广告播放的独立语义,恢复主片时不吞公共拒绝或在销毁后播放。 05已验证桌面Chrome真实后台标签暂停/恢复、视频继续播放和后台销毁,main/legacy各6组合;最小化和实际移动端媒体策略仍缺设备证据,保持open。 + +关闭条件:实际广告/主片的加载、暂停/恢复、失败/换源/销毁和隐藏状态有新旧核心组合证据。 + +复现、排查与验证依据: + +- [refactor/baselines/ads-contract.md](../refactor/baselines/ads-contract.md) +- [packages/artplayer-plugin-ads/src/index.ts](../packages/artplayer-plugin-ads/src/index.ts) +- [docs/assets/example/ads.js](../docs/assets/example/ads.js) +- [test/ads.test.js](../test/ads.test.js) +- [test/browser/ads.spec.js](../test/browser/ads.spec.js) +- [refactor/ads-validation.md](../refactor/ads-validation.md) +- [refactor/baselines/ads-validation.json](../refactor/baselines/ads-validation.json) +- [refactor/baselines/ads-lifecycle-validation.json](../refactor/baselines/ads-lifecycle-validation.json) +- [refactor/changes/2026-09-12-PKG-ADS-03-lifecycle.md](../refactor/changes/2026-09-12-PKG-ADS-03-lifecycle.md) +- [packages/artplayer-plugin-ads/ARCHITECTURE.md](../packages/artplayer-plugin-ads/ARCHITECTURE.md) +- [refactor/baselines/ads-ui-visibility-validation.json](../refactor/baselines/ads-ui-visibility-validation.json) +- [refactor/changes/2026-09-12-PKG-ADS-05-browser.md](../refactor/changes/2026-09-12-PKG-ADS-05-browser.md) + +### VAST-LIFE-01:VAST SDK and container lack core destruction ownership and pending work cancellation + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-VAST-02、PKG-VAST-03、PKG-VAST-05。 + +当前状态:Task03 controlled82 Node/162 browser checks remain valid; task05 adds6 real IMA303 recovery/recreation/active-ad core destruction passes across three engines/two modes. Native full combination failures, devices and remaining ad lifecycle paths keep this risk open; no claim of complete vendor/device acceptance. Native playUrl/IMA skip UI adds5/6 passes (one9000 failure despite later skip), shared server12/12 passes. Historical WebKit trace contains real ad frames; three fixed raw-media diagnostic runs passed without changing the assertion, so the original intermittent failure is not closed. CI-01 complete installed bundle checkpoint: source/installed native-script loader and cancellation controls each36/36; real remote IMA3.789.0 across three desktop engines39/39 (30 installed candidate,9 published controls), including303 recovery/recreation/active-ad destroy and actual skip UI. No retries/skips or VPN exception. This new successful run does not close earlier intermittent9000/late-ad/historical WebKit observations, physical-device or full distribution gates. + +已做处理/后续方向:Reproduce pending SDK/callback destruction, errors, duplicate IDs and stale ad events before adding compatible cleanup and state ownership. + +关闭条件:Tests prove cleanup during load/callback rejection/core destruction and distinguish explicit plugin recreation from terminal core destruction; vendor media restoration is separately verified. + +复现、排查与验证依据: + +- [refactor/baselines/vast-contract.md](../refactor/baselines/vast-contract.md) +- [refactor/baselines/vast-release.json](../refactor/baselines/vast-release.json) +- [refactor/changes/2026-09-12-PKG-VAST-01-contract.md](../refactor/changes/2026-09-12-PKG-VAST-01-contract.md) +- [refactor/baselines/vast-contract-validation.json](../refactor/baselines/vast-contract-validation.json) +- [refactor/changes/2026-09-12-PKG-VAST-02-tests.md](../refactor/changes/2026-09-12-PKG-VAST-02-tests.md) +- [refactor/baselines/vast-behavior-validation.json](../refactor/baselines/vast-behavior-validation.json) +- [refactor/baselines/vast-core.json](../refactor/baselines/vast-core.json) +- [refactor/vast-validation.md](../refactor/vast-validation.md) +- [refactor/baselines/vast-lifecycle-validation.json](../refactor/baselines/vast-lifecycle-validation.json) +- [refactor/changes/2026-09-12-PKG-VAST-03-lifecycle.md](../refactor/changes/2026-09-12-PKG-VAST-03-lifecycle.md) +- [refactor/changes/2026-09-14-PKG-VAST-03-compatibility.md](../refactor/changes/2026-09-14-PKG-VAST-03-compatibility.md) +- [refactor/baselines/vast-compatibility-validation.json](../refactor/baselines/vast-compatibility-validation.json) +- [refactor/changes/2026-09-14-PKG-VAST-05-native-checkpoint.md](../refactor/changes/2026-09-14-PKG-VAST-05-native-checkpoint.md) +- [refactor/baselines/vast-native-validation.json](../refactor/baselines/vast-native-validation.json) +- [refactor/changes/2026-09-14-PKG-VAST-05-skip-checkpoint.md](../refactor/changes/2026-09-14-PKG-VAST-05-skip-checkpoint.md) +- [refactor/baselines/vast-skip-validation.json](../refactor/baselines/vast-skip-validation.json) +- [refactor/changes/2026-09-15-CI-01-vast-installed.md](../refactor/changes/2026-09-15-CI-01-vast-installed.md) +- [refactor/baselines/ci-vast-installed-validation.json](../refactor/baselines/ci-vast-installed-validation.json) + +### VAST-DIST-01:Published VAST CommonJS default namespace differs from the current callable distribution + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-VAST-04、PKG-VAST-06、PKG-VAST-07。 + +当前状态:Task07 preserves old JavaScript default calls. Task04 adds accurate typed default on /runtime, actual isolated root/legacy/runtime imports and native ESM identity checks; preserves npm root types. Historical deep paths, complete browser distribution and old namespace reflection distinction remain task06; risk stays open. + +已做处理/后续方向:Preserve require(pkg).default alongside callable factory, script global and current ESM/legacy paths. + +关闭条件:Real packed main/legacy/ESM, historical deep imports, export= consumers and local demo/editor all pass with immutable published comparisons. + +复现、排查与验证依据: + +- [refactor/baselines/vast-contract.md](../refactor/baselines/vast-contract.md) +- [refactor/baselines/vast-release.json](../refactor/baselines/vast-release.json) +- [refactor/changes/2026-09-12-PKG-VAST-01-contract.md](../refactor/changes/2026-09-12-PKG-VAST-01-contract.md) +- [refactor/baselines/vast-contract-validation.json](../refactor/baselines/vast-contract-validation.json) +- [refactor/changes/2026-09-14-PKG-VAST-07-default-alias.md](../refactor/changes/2026-09-14-PKG-VAST-07-default-alias.md) +- [refactor/baselines/vast-alias-validation.json](../refactor/baselines/vast-alias-validation.json) +- [test/vast-exports.test.js](../test/vast-exports.test.js) +- [refactor/changes/2026-09-14-PKG-VAST-04-types.md](../refactor/changes/2026-09-14-PKG-VAST-04-types.md) +- [refactor/baselines/vast-types-validation.json](../refactor/baselines/vast-types-validation.json) + +### AMBILIGHT-LIFE-01:Ambilight sampling and RAF/DOM ownership lack terminal/error handling + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-AMBILIGHT-02、PKG-AMBILIGHT-03、PKG-AMBILIGHT-05。 + +当前状态:Candidate source split into four strict TS modules. RAF zero, terminal cleanup, rollback and reentrant frames repaired; 16 candidate tests pass (14 fail against frozen source). Eighteen native video/canvas tests pass across three cores and three engines after reproducing Firefox width-reset taint and replacing failed canvas. Risk remains open for proxy lifecycle/capability checks in PKG-AMBILIGHT-05; do not extend native video evidence to proxies. + +已做处理/后续方向:Reproduce errors, zero sizes, RAF id zero, escaped methods and destroy before adding plugin-local ownership without changing stop semantics. + +关闭条件:Published failures reproduced, candidate cleanup and real canvas/media/source-switch checks pass. + +复现、排查与验证依据: + +- [refactor/baselines/ambilight-contract.md](../refactor/baselines/ambilight-contract.md) +- [refactor/baselines/ambilight-release.json](../refactor/baselines/ambilight-release.json) +- [refactor/changes/2026-09-12-PKG-AMBILIGHT-01-contract.md](../refactor/changes/2026-09-12-PKG-AMBILIGHT-01-contract.md) +- [refactor/changes/2026-09-12-PKG-AMBILIGHT-02-tests.md](../refactor/changes/2026-09-12-PKG-AMBILIGHT-02-tests.md) +- [refactor/baselines/ambilight-behavior-validation.json](../refactor/baselines/ambilight-behavior-validation.json) +- [refactor/ambilight-validation.md](../refactor/ambilight-validation.md) +- [refactor/changes/2026-09-12-PKG-AMBILIGHT-03-lifecycle.md](../refactor/changes/2026-09-12-PKG-AMBILIGHT-03-lifecycle.md) +- [refactor/baselines/ambilight-lifecycle-validation.json](../refactor/baselines/ambilight-lifecycle-validation.json) + +### DPIP-PACK-01:Published Document PiP 1.0.0 tarball omits every declared runtime entry + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-DPIP-06。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Keep the immutable broken archive as a negative case; verify complete candidate tarball and document the historical version boundary. + +关闭条件:Candidate archive and real runtime entries verified; missing 1.0.0 runtime is documented rather than replaced or claimed fixed in place. + +复现、排查与验证依据: + +- [refactor/baselines/dpip-release.json](../refactor/baselines/dpip-release.json) +- [refactor/baselines/dpip-contract.md](../refactor/baselines/dpip-contract.md) +- [refactor/changes/2026-09-12-PKG-DPIP-01-contract.md](../refactor/changes/2026-09-12-PKG-DPIP-01-contract.md) + +### DPIP-LIFE-01:Document PiP has no separate ownership for pending window requests and delayed post-transition callbacks + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-DPIP-02、PKG-DPIP-03、PKG-DPIP-05。 + +当前状态:Six strict TS modules with candidate fixes for pending requests, terminal effects, partial rollback and style ownership. Candidate versus frozen tests preserve historical failures. Native Document PiP/proxy/device evidence remains task05; current iframe coverage controls the window API. + +已做处理/后续方向:Reproduce overlapping open/close/destroy and retained controls/listeners before implementing terminal state and resource ownership. + +关闭条件:Historical races reproduced; candidate late windows and delayed effects cannot revive disposed players, with native lifecycle validation. + +复现、排查与验证依据: + +- [refactor/baselines/dpip-release.json](../refactor/baselines/dpip-release.json) +- [refactor/baselines/dpip-contract.md](../refactor/baselines/dpip-contract.md) +- [refactor/changes/2026-09-12-PKG-DPIP-01-contract.md](../refactor/changes/2026-09-12-PKG-DPIP-01-contract.md) +- [refactor/changes/2026-09-12-PKG-DPIP-02-tests.md](../refactor/changes/2026-09-12-PKG-DPIP-02-tests.md) +- [refactor/baselines/dpip-behavior-validation.json](../refactor/baselines/dpip-behavior-validation.json) +- [refactor/changes/2026-09-12-PKG-DPIP-03-lifecycle.md](../refactor/changes/2026-09-12-PKG-DPIP-03-lifecycle.md) +- [refactor/baselines/dpip-lifecycle-validation.json](../refactor/baselines/dpip-lifecycle-validation.json) + +### DPIP-DOM-01:Document PiP copies global-document styles and retains original parent without transactional rollback + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-DPIP-02、PKG-DPIP-03、PKG-DPIP-05。 + +当前状态:Six strict TS modules with candidate fixes for pending requests, terminal effects, partial rollback and style ownership. Candidate versus frozen tests preserve historical failures. Native Document PiP/proxy/device evidence remains task05; current iframe coverage controls the window API. + +已做处理/后续方向:Reproduce adoption/style/restore errors and foreign ownerDocument cases, then implement explicit document and rollback ownership. + +关闭条件:Candidate failures restore node identity, order, document bindings and styles with native window/proxy evidence. + +复现、排查与验证依据: + +- [refactor/baselines/dpip-release.json](../refactor/baselines/dpip-release.json) +- [refactor/baselines/dpip-contract.md](../refactor/baselines/dpip-contract.md) +- [refactor/changes/2026-09-12-PKG-DPIP-01-contract.md](../refactor/changes/2026-09-12-PKG-DPIP-01-contract.md) +- [refactor/changes/2026-09-12-PKG-DPIP-02-tests.md](../refactor/changes/2026-09-12-PKG-DPIP-02-tests.md) +- [refactor/baselines/dpip-behavior-validation.json](../refactor/baselines/dpip-behavior-validation.json) +- [refactor/changes/2026-09-12-PKG-DPIP-03-lifecycle.md](../refactor/changes/2026-09-12-PKG-DPIP-03-lifecycle.md) +- [refactor/baselines/dpip-lifecycle-validation.json](../refactor/baselines/dpip-lifecycle-validation.json) + +### DPIP-MEDIA-01:WebKit reports styled width640 for width320 media in the controlled Document PiP iframe matrix + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-DPIP-05。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Use independent native media controls to determine the dimension behavior and verify real Document PiP playback and proxy dimensions. + +关闭条件:Exact browser/version evidence distinguishes layout-driven reports from intrinsic pixels and validates native media continuity; do not treat controlled iframe success as native PiP acceptance. + +复现、排查与验证依据: + +- [refactor/changes/2026-09-12-PKG-DPIP-02-tests.md](../refactor/changes/2026-09-12-PKG-DPIP-02-tests.md) +- [refactor/baselines/dpip-behavior-validation.json](../refactor/baselines/dpip-behavior-validation.json) + +### MB-LICENSE-01:Historical MediaBunny proxy bundles embed SDK code without MPL notice markers or separate license/source provenance + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-MB-10。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Inventory the actual candidate bundle modules, preserve relevant license/notice text and corresponding source availability; never infer embedded historical SDK version from the current lock. + +关闭条件:Final candidate archive includes verified dependency license/notice and source provenance, with historical unknowns documented; no root-MIT substitution. + +复现、排查与验证依据: + +- [refactor/baselines/mb-release.json](../refactor/baselines/mb-release.json) +- [refactor/baselines/mb-contract.md](../refactor/baselines/mb-contract.md) +- [refactor/changes/2026-09-12-PKG-MB-01-contract.md](../refactor/changes/2026-09-12-PKG-MB-01-contract.md) + +### MB-LIFE-01:MediaBunny load, track replacement, timeout, RAF and audio callbacks lack one shared terminal owner + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-MB-02、PKG-MB-03、PKG-MB-04、PKG-MB-05、PKG-MB-06、PKG-MB-07、PKG-MB-09。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Reproduce pending operations and destroy/source-switch races before migrating each owner; preserve public event and promise behavior while preventing stale resource use. MB-02 now reproduces late load rejection and uncancelled waiting/loadstart timers after destroy in all three historical implementations using a controlled host. Other interleavings and full-core native behavior are not yet verified. Expanded MB-02 baseline reproduces play-after-pause/destroy, rejected-play false state, seek-after-destroy and retained successful-load timeout timers in all three actual historical implementations; Range and active-timeout normal controls remain separate. MB-03 candidate owns pending Input before track selection and cancels load/HEAD/timers on source replacement, timeout and destroy; source/main/legacy regressions pass. Pending play/seek, late decoder work and full readiness coordination remain MB-04/05/06, so this risk stays open. MB-04 shim checkpoint fixes synthetic RAF retention and terminal event-listener cleanup, including engine cleanup exceptions. Closing the event bridge does not prove pending engine operations stopped; coordination remains in progress. MB-04 now guards play/seek/replacement completion, preserves explicit pause, observes stale failures and isolates reentrant event sequences. Decoder-internal late frames/audio and HLS UI races remain MB-05/06/07; risk stays open. MB-05 migrates VideoEngine and owns iterators, late first/second seek frames, pending reads, per-instance RAF and poster callbacks; same native race assertions fail on old main and pass on candidate. Independent CanvasSink pools also prevent multiple obsolete seek samples from overwriting queued current-frame pixels. Audio nodes, long-run AV sync and HLS UI topology remain MB-06/07/09. MB-06 migrates AudioEngine into six checked modules, owns context/gain/nodes/iterators and removable cancellation waits, preserves clock and gain formulas, and invalidates pending resume/decoding across pause/source/destroy. Same old main fails 29 of 37 audio assertions and four native pause-cleanup cases; candidate passes with short native 1x/2x AV-clock samples. Long-run AV sync, full combinations and HLS UI topology remain MB-07/09, so risk stays open. MB-07 migrates HLS UI to four checked modules, guards stale refresh/selection callbacks, cleans each surface and owns terminal listeners. Quality/audio queries share a latest-intent token and retry pairing against changed media snapshots. Forty-three old-main assertions yield 11 pass/32 fail; sixteen old native UI/query cases fail and twenty candidate native cases pass across old/new cores. Long-run AV sync and full combinations remain MB-09; capability/type/package gates remain MB-08/10. MB-09 checkpoints add 24 actual native Document PiP playback/lifecycle cases with visible openers and four native old/new-core sustained HLS cases, each at least 195 wall seconds across 1x/2x, seek, quality and audio. Maximum sampled frame/audio-clock delta is 51.34ms; active nodes peak at 64 and all approximately 13.7k created nodes per case disconnect on teardown, with iterators/queues empty. This does not close background behavior, complete plugin combinations, physical-device capability, acoustic synchronization or hour-scale validation. + +关闭条件:Historical failing interleavings and candidate cancellation/cleanup pass with real media and event evidence, including long playback and track topology. + +复现、排查与验证依据: + +- [refactor/baselines/mb-release.json](../refactor/baselines/mb-release.json) +- [refactor/baselines/mb-contract.md](../refactor/baselines/mb-contract.md) +- [refactor/changes/2026-09-12-PKG-MB-01-contract.md](../refactor/changes/2026-09-12-PKG-MB-01-contract.md) +- [refactor/changes/2026-09-12-PKG-MB-02-checkpoint.md](../refactor/changes/2026-09-12-PKG-MB-02-checkpoint.md) +- [refactor/baselines/mb-media-checkpoint.json](../refactor/baselines/mb-media-checkpoint.json) +- [refactor/changes/2026-09-12-PKG-MB-02-baseline.md](../refactor/changes/2026-09-12-PKG-MB-02-baseline.md) +- [refactor/baselines/mb-behavior-validation.json](../refactor/baselines/mb-behavior-validation.json) +- [refactor/changes/2026-09-12-PKG-MB-03-input.md](../refactor/changes/2026-09-12-PKG-MB-03-input.md) +- [refactor/changes/2026-09-12-PKG-MB-04-shim-checkpoint.md](../refactor/changes/2026-09-12-PKG-MB-04-shim-checkpoint.md) +- [refactor/changes/2026-09-12-PKG-MB-04-coordination.md](../refactor/changes/2026-09-12-PKG-MB-04-coordination.md) +- [refactor/baselines/mb-coordination-validation.json](../refactor/baselines/mb-coordination-validation.json) +- [refactor/changes/2026-09-12-PKG-MB-05-video.md](../refactor/changes/2026-09-12-PKG-MB-05-video.md) +- [refactor/baselines/mb-video-validation.json](../refactor/baselines/mb-video-validation.json) +- [refactor/changes/2026-09-12-PKG-MB-06-audio.md](../refactor/changes/2026-09-12-PKG-MB-06-audio.md) +- [refactor/baselines/mb-audio-validation.json](../refactor/baselines/mb-audio-validation.json) +- [refactor/changes/2026-09-12-PKG-MB-07-hls.md](../refactor/changes/2026-09-12-PKG-MB-07-hls.md) +- [refactor/baselines/mb-hls-validation.json](../refactor/baselines/mb-hls-validation.json) +- [refactor/baselines/mb-native-pip-checkpoint.json](../refactor/baselines/mb-native-pip-checkpoint.json) +- [refactor/baselines/mb-sustained-validation.json](../refactor/baselines/mb-sustained-validation.json) + +### MB-CAP-01:Current Windows WebKit lacks WebCodecs and Web Audio constructors needed by historical MediaBunny proxies + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-MB-02、PKG-MB-09。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Keep exact capability negative controls and validate usable browsers/codecs separately; improve unsupported-capability reporting during migration without fabricating decoder support. + +关闭条件:Per-browser native media/support matrix and predictable unsupported-capability behavior verified, including target Safari evidence where support is claimed. + +复现、排查与验证依据: + +- [refactor/changes/2026-09-12-PKG-MB-02-checkpoint.md](../refactor/changes/2026-09-12-PKG-MB-02-checkpoint.md) +- [refactor/baselines/mb-media-checkpoint.json](../refactor/baselines/mb-media-checkpoint.json) +- [refactor/changes/2026-09-12-PKG-MB-02-baseline.md](../refactor/changes/2026-09-12-PKG-MB-02-baseline.md) +- [refactor/baselines/mb-behavior-validation.json](../refactor/baselines/mb-behavior-validation.json) + +### IFRAME-LIFE-01:Iframe timestamp IDs and unowned pending requests/timers lack terminal cleanup + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-IFRAME-02、PKG-IFRAME-03、PKG-IFRAME-05。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Owned requests and ADR-026 document cancellation are implemented. Task 05 verifies actual desktop players/Monaco and source/main/legacy cached history plus stop/204/truncated-response recovery. Full Chromium proves native BFCache; Firefox/WebKit only prove reload controls. Keep open for physical devices, remaining cache engines and final release acceptance; legacy peers retain documented document-identity limits. + +关闭条件:Old behavior and candidate fixes have deterministic race/resource tests plus actual iframe integration. + +复现、排查与验证依据: + +- [refactor/baselines/iframe-contract.md](../refactor/baselines/iframe-contract.md) +- [refactor/baselines/iframe-release.json](../refactor/baselines/iframe-release.json) +- [refactor/changes/2026-09-12-PKG-IFRAME-01-contract.md](../refactor/changes/2026-09-12-PKG-IFRAME-01-contract.md) +- [refactor/baselines/iframe-behavior-validation.json](../refactor/baselines/iframe-behavior-validation.json) +- [refactor/changes/2026-09-12-PKG-IFRAME-02-behavior.md](../refactor/changes/2026-09-12-PKG-IFRAME-02-behavior.md) +- [refactor/changes/2026-09-12-PKG-IFRAME-03-requests-checkpoint.md](../refactor/changes/2026-09-12-PKG-IFRAME-03-requests-checkpoint.md) +- [refactor/baselines/iframe-requests-checkpoint.json](../refactor/baselines/iframe-requests-checkpoint.json) +- [refactor/changes/2026-09-12-PKG-IFRAME-03-boundaries-checkpoint.md](../refactor/changes/2026-09-12-PKG-IFRAME-03-boundaries-checkpoint.md) +- [refactor/baselines/iframe-boundaries-checkpoint.json](../refactor/baselines/iframe-boundaries-checkpoint.json) +- [refactor/changes/2026-09-13-PKG-IFRAME-03-navigation.md](../refactor/changes/2026-09-13-PKG-IFRAME-03-navigation.md) +- [refactor/baselines/iframe-navigation-validation.json](../refactor/baselines/iframe-navigation-validation.json) +- [refactor/iframe-document-protocol.md](../refactor/iframe-document-protocol.md) +- [refactor/changes/2026-09-13-PKG-IFRAME-05-integration.md](../refactor/changes/2026-09-13-PKG-IFRAME-05-integration.md) +- [refactor/baselines/iframe-integration-validation.json](../refactor/baselines/iframe-integration-validation.json) +- [refactor/changes/2026-09-13-PKG-IFRAME-05-history.md](../refactor/changes/2026-09-13-PKG-IFRAME-05-history.md) +- [refactor/baselines/iframe-history-validation.json](../refactor/baselines/iframe-history-validation.json) + +### IFRAME-TRUST-01:Iframe executable commit protocol accepts messages without source/origin validation + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-IFRAME-03、PKG-IFRAME-05。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:ADR-025 binds actual native peers; ADR-026 correlates negotiated documents. IFRAME-05 adds actual same/cross-origin media and editor evidence on three core versions, four bridge pairings and three desktop engines. This is not an origin allowlist or commit sandbox. Keep final acceptance and legacy/custom unmarked-message limits open. + +关闭条件:Controlled and real same/cross-origin evidence plus an explicit documented compatibility decision and supported trust model. + +复现、排查与验证依据: + +- [refactor/baselines/iframe-contract.md](../refactor/baselines/iframe-contract.md) +- [refactor/baselines/iframe-release.json](../refactor/baselines/iframe-release.json) +- [refactor/changes/2026-09-12-PKG-IFRAME-01-contract.md](../refactor/changes/2026-09-12-PKG-IFRAME-01-contract.md) +- [refactor/baselines/iframe-behavior-validation.json](../refactor/baselines/iframe-behavior-validation.json) +- [refactor/changes/2026-09-12-PKG-IFRAME-02-behavior.md](../refactor/changes/2026-09-12-PKG-IFRAME-02-behavior.md) +- [refactor/changes/2026-09-12-PKG-IFRAME-03-boundaries-checkpoint.md](../refactor/changes/2026-09-12-PKG-IFRAME-03-boundaries-checkpoint.md) +- [refactor/baselines/iframe-boundaries-checkpoint.json](../refactor/baselines/iframe-boundaries-checkpoint.json) +- [refactor/iframe-message-boundary.md](../refactor/iframe-message-boundary.md) +- [refactor/changes/2026-09-13-PKG-IFRAME-03-navigation.md](../refactor/changes/2026-09-13-PKG-IFRAME-03-navigation.md) +- [refactor/baselines/iframe-navigation-validation.json](../refactor/baselines/iframe-navigation-validation.json) +- [refactor/iframe-document-protocol.md](../refactor/iframe-document-protocol.md) +- [refactor/changes/2026-09-13-PKG-IFRAME-05-integration.md](../refactor/changes/2026-09-13-PKG-IFRAME-05-integration.md) +- [refactor/baselines/iframe-integration-validation.json](../refactor/baselines/iframe-integration-validation.json) +- [refactor/changes/2026-09-13-PKG-IFRAME-05-history.md](../refactor/changes/2026-09-13-PKG-IFRAME-05-history.md) +- [refactor/baselines/iframe-history-validation.json](../refactor/baselines/iframe-history-validation.json) + +### IFRAME-DIST-01:Iframe tool name is unavailable at registry observation and old archive includes distinct helper exports + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-IFRAME-04、PKG-IFRAME-06。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:IFRAME-04 adds paired CJS/ESM declarations and verifies three actual isolated installs, including old namespace/helper and existing Function callback differences. Keep old package-name/helper facade, emitted-consumer runtime and final distribution gates with IFRAME-06; the time-scoped tool registry observation is not a release claim. + +关闭条件:Actual installed entry/declaration tests and documented old-name/helper/new-tool distribution behavior; registry observation remains time scoped. + +复现、排查与验证依据: + +- [refactor/baselines/iframe-contract.md](../refactor/baselines/iframe-contract.md) +- [refactor/baselines/iframe-release.json](../refactor/baselines/iframe-release.json) +- [refactor/changes/2026-09-12-PKG-IFRAME-01-contract.md](../refactor/changes/2026-09-12-PKG-IFRAME-01-contract.md) +- [refactor/changes/2026-09-13-PKG-IFRAME-04-types.md](../refactor/changes/2026-09-13-PKG-IFRAME-04-types.md) +- [refactor/baselines/iframe-types-validation.json](../refactor/baselines/iframe-types-validation.json) + +### THUMB-LIFE-01:Thumbnail drop binding and repeated destroy fail; pending work and replacement resource ownership need repair + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-TOOL-THUMB-02、PKG-TOOL-THUMB-03、PKG-TOOL-THUMB-05。 + +当前状态:04 strict types and approved default/workspace policy are complete. 05 source and installed tool main pass actual Chromium/Firefox extraction, two generated sheets, preview pixels and exact URL ownership against core 3.5.31/5.4.0/candidate. Windows WebKit native Blob error 4 and physical Safari/device evidence remain open. + +已做处理/后续方向:03 splits input/sheet/source/extraction/lifecycle and fixes reproduced cancellation, Blob URL ownership, native errors, callback failure/reentrancy and decoder reset. Keep risk open for 04 strict types and 05 complete core/Safari integration; Windows WebKit Blob-unavailable controls do not prove extraction. + +关闭条件:Deterministic old failure/candidate success for replacement, error and destruction plus real media/browser resource validation. + +复现、排查与验证依据: + +- [refactor/baselines/thumbnail-contract.md](../refactor/baselines/thumbnail-contract.md) +- [refactor/baselines/thumbnail-release.json](../refactor/baselines/thumbnail-release.json) +- [refactor/scripts/thumbnail-contract.test.mjs](../refactor/scripts/thumbnail-contract.test.mjs) +- [refactor/baselines/thumbnail-behavior-validation.json](../refactor/baselines/thumbnail-behavior-validation.json) +- [refactor/changes/2026-09-13-PKG-TOOL-THUMB-02-behavior.md](../refactor/changes/2026-09-13-PKG-TOOL-THUMB-02-behavior.md) +- [test/thumbnail.test.js](../test/thumbnail.test.js) +- [test/browser/thumbnail-tool.spec.js](../test/browser/thumbnail-tool.spec.js) +- [refactor/changes/2026-09-13-PKG-TOOL-THUMB-03-input-checkpoint.md](../refactor/changes/2026-09-13-PKG-TOOL-THUMB-03-input-checkpoint.md) +- [packages/artplayer-tool-thumbnail/ARCHITECTURE.md](../packages/artplayer-tool-thumbnail/ARCHITECTURE.md) +- [test/thumbnail-input.test.js](../test/thumbnail-input.test.js) +- [test/browser/thumbnail-input.spec.js](../test/browser/thumbnail-input.spec.js) +- [refactor/baselines/thumbnail-input-checkpoint.json](../refactor/baselines/thumbnail-input-checkpoint.json) +- [refactor/changes/2026-09-13-PKG-TOOL-THUMB-03-lifecycle.md](../refactor/changes/2026-09-13-PKG-TOOL-THUMB-03-lifecycle.md) +- [test/thumbnail-lifecycle.test.js](../test/thumbnail-lifecycle.test.js) +- [refactor/baselines/thumbnail-lifecycle-validation.json](../refactor/baselines/thumbnail-lifecycle-validation.json) +- [refactor/changes/2026-09-16-PKG-TOOL-THUMB-05-core-combinations.md](../refactor/changes/2026-09-16-PKG-TOOL-THUMB-05-core-combinations.md) +- [refactor/baselines/thumbnail-core-validation.json](../refactor/baselines/thumbnail-core-validation.json) +- [refactor/baselines/thumbnail-core.json](../refactor/baselines/thumbnail-core.json) +- [test/browser/thumbnail-core.spec.js](../test/browser/thumbnail-core.spec.js) + +### THUMB-MEDIA-01:Windows WebKit native Blob URLs cannot load tested MP4 media despite successful HTTP controls + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-TOOL-THUMB-05、PKG-TOOL-THUMB-06。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Preserve independent HTTP/Blob capability controls; obtain actual supported WebKit/Safari file extraction evidence before release acceptance. Do not count the 12 unavailable controls as successful thumbnail generation or silently replace local files with HTTP media. + +关闭条件:Actual generated PNG/extraction and lifecycle proof in supported Safari/WebKit environments, or explicit supported-environment decision with migration documentation; Windows limitation stays identifiable. + +复现、排查与验证依据: + +- [refactor/baselines/thumbnail-behavior-validation.json](../refactor/baselines/thumbnail-behavior-validation.json) +- [refactor/changes/2026-09-13-PKG-TOOL-THUMB-02-behavior.md](../refactor/changes/2026-09-13-PKG-TOOL-THUMB-02-behavior.md) +- [test/thumbnail.test.js](../test/thumbnail.test.js) +- [test/browser/thumbnail-tool.spec.js](../test/browser/thumbnail-tool.spec.js) +- [refactor/changes/2026-09-16-PKG-TOOL-THUMB-05-core-combinations.md](../refactor/changes/2026-09-16-PKG-TOOL-THUMB-05-core-combinations.md) +- [refactor/baselines/thumbnail-core-validation.json](../refactor/baselines/thumbnail-core-validation.json) +- [refactor/baselines/thumbnail-core.json](../refactor/baselines/thumbnail-core.json) +- [test/browser/thumbnail-core.spec.js](../test/browser/thumbnail-core.spec.js) + +### AUTO-THUMB-TYPE-01:Published declarations misdescribe async registration and switch height/number option fields across generations + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-AUTO-THUMB-04、PKG-AUTO-THUMB-08。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Preserve actual Promise runtime and old valid consumers; explicitly retain the historically ignored height field and verify paired CJS/ESM declarations. PKG-AUTO-THUMB-08 retains npm 1.1.0 root bytes and adds tested /runtime types and editor generation; older 1.0.x isolated consumer/export evidence is still pending in 04/06. + +关闭条件:Old and current isolated consumers, negative type cases and matching runtime registration pass; any irreconcilable inference change has an explicit user decision. + +复现、排查与验证依据: + +- [refactor/baselines/auto-thumbnail-release.json](../refactor/baselines/auto-thumbnail-release.json) +- [refactor/baselines/auto-thumbnail-contract.md](../refactor/baselines/auto-thumbnail-contract.md) +- [refactor/scripts/auto-thumbnail-contract.test.mjs](../refactor/scripts/auto-thumbnail-contract.test.mjs) +- [refactor/changes/2026-09-14-PKG-AUTO-THUMB-08-types.md](../refactor/changes/2026-09-14-PKG-AUTO-THUMB-08-types.md) +- [refactor/baselines/auto-thumbnail-types-validation.json](../refactor/baselines/auto-thumbnail-types-validation.json) + +### AUTO-THUMB-EXPORT-01:Published 1.0.1 CommonJS default namespace differs from the direct function exported by 1.1.0 + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-AUTO-THUMB-04、PKG-AUTO-THUMB-06、PKG-AUTO-THUMB-09。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Exercise both old .default calls and direct require calls plus globals, actual ESM and legacy. PKG-AUTO-THUMB-09 restores default JavaScript calls on the same callable and validates actual 1.0.1, 1.1.0 and candidate installs, plus accurate runtime alias types and three-engine native completion. Full old root type/import-shape evidence remains in 04/06. + +关闭条件:Installed tarballs and matching type consumers retain both usable calling forms with documented entry behavior. + +复现、排查与验证依据: + +- [refactor/baselines/auto-thumbnail-release.json](../refactor/baselines/auto-thumbnail-release.json) +- [refactor/baselines/auto-thumbnail-contract.md](../refactor/baselines/auto-thumbnail-contract.md) +- [refactor/scripts/auto-thumbnail-contract.test.mjs](../refactor/scripts/auto-thumbnail-contract.test.mjs) +- [refactor/changes/2026-09-14-PKG-AUTO-THUMB-09-alias.md](../refactor/changes/2026-09-14-PKG-AUTO-THUMB-09-alias.md) +- [refactor/baselines/auto-thumbnail-alias-validation.json](../refactor/baselines/auto-thumbnail-alias-validation.json) + +### AUTO-THUMB-DIST-01:Published 1.0.0 archive lacks declared main and legacy runtimes + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-AUTO-THUMB-06。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Keep the historical missing-entry baseline explicit; never substitute Git source as a released artifact. + +关闭条件:Candidate pack has all declared runtime/types/assets and reviewed historical deep paths; missing old entries remain explicitly recorded. + +复现、排查与验证依据: + +- [refactor/baselines/auto-thumbnail-release.json](../refactor/baselines/auto-thumbnail-release.json) +- [refactor/baselines/auto-thumbnail-contract.md](../refactor/baselines/auto-thumbnail-contract.md) +- [refactor/scripts/auto-thumbnail-contract.test.mjs](../refactor/scripts/auto-thumbnail-contract.test.mjs) + +### AUTO-THUMB-LIFE-01:Extraction tasks, decoder handlers and final object URLs lack source-switch and destroy ownership + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-AUTO-THUMB-02、PKG-AUTO-THUMB-03、PKG-AUTO-THUMB-05、PKG-AUTO-THUMB-11。 + +当前状态:Task03 ownership checkpoint: 22 candidate lifecycle regressions fail on frozen source and pass on source/main/legacy; two further explicit-URL short-circuit and duration-snapshot cases preserve historical successes. Final candidate runs have 24 passing cases each; 27 native lifecycle cases verify destroy/restart/completion and URL/decoder cleanup. New index/options/session/extraction modules fix serial encoding, stale callbacks, failure cleanup and selected reentry paths. Pixel/frame correctness, resource budgets and additional boundaries remain for task03; old/final core acceptance remains task05. Risk stays open rather than claiming complete extraction repair. Task11 fixes throwing event-property cleanup skipping deadline/frame cancellation: eight controlled regressions fail on pre-change main and pass source/main/legacy; each actual artifact also passes21 native lifecycle checks. This does not prove spontaneous native setter failure or close remaining resource/pixel/combination gates. + +已做处理/后续方向:Cancel obsolete work and release owned resources while retaining live options and progressive usable sheet updates. + +关闭条件:Delayed callbacks, repeated metadata, switching, destroy, multiple instances and failure cleanup are reproduced then pass source/artifacts and native browser checks. + +复现、排查与验证依据: + +- [refactor/baselines/auto-thumbnail-release.json](../refactor/baselines/auto-thumbnail-release.json) +- [refactor/baselines/auto-thumbnail-contract.md](../refactor/baselines/auto-thumbnail-contract.md) +- [refactor/scripts/auto-thumbnail-contract.test.mjs](../refactor/scripts/auto-thumbnail-contract.test.mjs) +- [test/auto-thumbnail.test.js](../test/auto-thumbnail.test.js) +- [refactor/baselines/auto-thumbnail-failures.md](../refactor/baselines/auto-thumbnail-failures.md) +- [refactor/baselines/auto-thumbnail-failures-validation.json](../refactor/baselines/auto-thumbnail-failures-validation.json) +- [test/auto-thumbnail-lifecycle.test.js](../test/auto-thumbnail-lifecycle.test.js) +- [test/browser/auto-thumbnail-lifecycle.spec.js](../test/browser/auto-thumbnail-lifecycle.spec.js) +- [refactor/baselines/auto-thumbnail-lifecycle-checkpoint.json](../refactor/baselines/auto-thumbnail-lifecycle-checkpoint.json) +- [refactor/changes/2026-09-14-PKG-AUTO-THUMB-11-handler-cleanup.md](../refactor/changes/2026-09-14-PKG-AUTO-THUMB-11-handler-cleanup.md) +- [refactor/baselines/auto-thumbnail-handler-validation.json](../refactor/baselines/auto-thumbnail-handler-validation.json) +- [test/auto-thumbnail-frames.test.js](../test/auto-thumbnail-frames.test.js) + +### AUTO-THUMB-ENCODE-01:Unserialized encodes include blank output and lack media/canvas/input failure handling + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-AUTO-THUMB-02、PKG-AUTO-THUMB-03、PKG-AUTO-THUMB-05。 + +当前状态:Task03 ownership checkpoint: 22 candidate lifecycle regressions fail on frozen source and pass on source/main/legacy; two further explicit-URL short-circuit and duration-snapshot cases preserve historical successes. Final candidate runs have 24 passing cases each; 27 native lifecycle cases verify destroy/restart/completion and URL/decoder cleanup. New index/options/session/extraction modules fix serial encoding, stale callbacks, failure cleanup and selected reentry paths. Pixel/frame correctness, resource budgets and additional boundaries remain for task03; old/final core acceptance remains task05. Risk stays open rather than claiming complete extraction repair. + +已做处理/后续方向:Preserve JPEG grid/time/scale while bounding jobs, sequencing valid updates and handling null Blob, invalid media and thrown callbacks. + +关闭条件:Fault controls and native valid/corrupt media prove no stale sheet replacement, leaked URLs or unhandled async callbacks; capability limitations remain explicit. + +复现、排查与验证依据: + +- [refactor/baselines/auto-thumbnail-release.json](../refactor/baselines/auto-thumbnail-release.json) +- [refactor/baselines/auto-thumbnail-contract.md](../refactor/baselines/auto-thumbnail-contract.md) +- [refactor/scripts/auto-thumbnail-contract.test.mjs](../refactor/scripts/auto-thumbnail-contract.test.mjs) +- [test/auto-thumbnail.test.js](../test/auto-thumbnail.test.js) +- [refactor/baselines/auto-thumbnail-failures.md](../refactor/baselines/auto-thumbnail-failures.md) +- [refactor/baselines/auto-thumbnail-failures-validation.json](../refactor/baselines/auto-thumbnail-failures-validation.json) +- [test/auto-thumbnail-lifecycle.test.js](../test/auto-thumbnail-lifecycle.test.js) +- [test/browser/auto-thumbnail-lifecycle.spec.js](../test/browser/auto-thumbnail-lifecycle.spec.js) +- [refactor/baselines/auto-thumbnail-lifecycle-checkpoint.json](../refactor/baselines/auto-thumbnail-lifecycle-checkpoint.json) + +### AUTO-THUMB-PIXEL-01:Historical auto-thumbnail yields black sampled JPEG cells on Windows WebKit while played native video and static JPEG controls yield color + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-AUTO-THUMB-03、PKG-AUTO-THUMB-05。 + +当前状态:The frames module now waits for native presentation and seek completion on capable browsers. Chromium/Firefox source/main/legacy assert all five cells including first purple frame, second red cell, legitimate black and presentation times. Callback-less Windows WebKit first two cells remain diagnostic, later cells asserted; physical Safari/core combinations remain open. 84 native lifecycle/pixel cases passed with explicit held native-frame vs Blob-fallback paths; 19 new Node cases fail 17 ways on prior checkpoint and all 52 current cases pass per candidate. Risk and task03 remain open. Native-only18-case Windows probe also misses the purple first frame in all6 WebKit26.6 cases (hidden/visible paused and immediate play-pause, original and no-B-frame H.264);12 Chromium/Firefox controls recover it. No ArtPlayer/plugin is imported, narrowing but not resolving the native surface boundary. Rate/offset/layout explorations failed and must not be reintroduced as assumed fixes. CI-01 实际安装候选三引擎生命周期/像素 27 项通过;Windows WebKit 两个像素用例仍明确仅验证后面三格,首两格为诊断。没有将此结果用于关闭原首帧风险或认定完整核心组合。 + +已做处理/后续方向:Establish actual decoded-frame readiness for the existing timeline/grid and preserve silent independent extraction; do not waive colored pixel checks as unsupported media. Intrinsic-size hidden/opacity/clip/visible rendering crossed with current/readyState/first-loadeddata-event strategies still misses the unique first frame in all 12 Windows WebKit profiles. Correct Firefox frames retain totalVideoFrames=0, so that counter cannot be a portable readiness gate. Do not reintroduce these unvalidated workarounds. First-seek diagnostics additionally exclude drawing the first loadeddata frame without seek, one/two RAF waits, post-seek RAF waits and verified forward/back seeking on the recorded Windows WebKit host. The warm comparison first had an invalid stale-event completion, then a timeout; final bounded retries verify actual [1,1,0] seeking and still miss purple. Controls retain purple. These are exclusions, not production fixes. + +关闭条件:Candidate source and artifacts generate usable sampled pixels on native browser controls with lifecycle checks; supported Safari and core combinations remain explicit final gates. + +复现、排查与验证依据: + +- [test/browser/auto-thumbnail.spec.js](../test/browser/auto-thumbnail.spec.js) +- [refactor/baselines/auto-thumbnail-failures.md](../refactor/baselines/auto-thumbnail-failures.md) +- [refactor/baselines/auto-thumbnail-failures-validation.json](../refactor/baselines/auto-thumbnail-failures-validation.json) +- [test/browser/auto-thumbnail-pixels.spec.js](../test/browser/auto-thumbnail-pixels.spec.js) +- [refactor/baselines/auto-thumbnail-hidden-renderer.json](../refactor/baselines/auto-thumbnail-hidden-renderer.json) +- [refactor/baselines/auto-thumbnail-timeline-media.json](../refactor/baselines/auto-thumbnail-timeline-media.json) +- [test/auto-thumbnail-frames.test.js](../test/auto-thumbnail-frames.test.js) +- [refactor/baselines/auto-thumbnail-frame-presentation.json](../refactor/baselines/auto-thumbnail-frame-presentation.json) +- [refactor/changes/2026-09-14-PKG-AUTO-THUMB-03-rendering-readiness.md](../refactor/changes/2026-09-14-PKG-AUTO-THUMB-03-rendering-readiness.md) +- [refactor/baselines/auto-thumbnail-rendering-readiness.json](../refactor/baselines/auto-thumbnail-rendering-readiness.json) +- [refactor/changes/2026-09-14-PKG-AUTO-THUMB-03-first-seek.md](../refactor/changes/2026-09-14-PKG-AUTO-THUMB-03-first-seek.md) +- [refactor/baselines/auto-thumbnail-first-seek.json](../refactor/baselines/auto-thumbnail-first-seek.json) +- [refactor/changes/2026-09-14-PKG-AUTO-THUMB-03-native-decoder.md](../refactor/changes/2026-09-14-PKG-AUTO-THUMB-03-native-decoder.md) +- [refactor/baselines/auto-thumbnail-native-decoder.json](../refactor/baselines/auto-thumbnail-native-decoder.json) +- [refactor/changes/2026-09-15-CI-01-adaptive-installed.md](../refactor/changes/2026-09-15-CI-01-adaptive-installed.md) +- [refactor/baselines/ci-adaptive-installed-validation.json](../refactor/baselines/ci-adaptive-installed-validation.json) + +### VTT-THUMB-DIST-01:Historical 1.0.0 main/legacy contain invalid regular expressions and cannot load + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-VTT-THUMB-06。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Preserve archive evidence without reproducing broken entry syntax. + +关闭条件:Candidate actual installed main/legacy/ESM/types/global entries work and historical deep paths are reviewed. + +复现、排查与验证依据: + +- [refactor/baselines/vtt-thumbnail-release.json](../refactor/baselines/vtt-thumbnail-release.json) +- [refactor/baselines/vtt-thumbnail-contract.md](../refactor/baselines/vtt-thumbnail-contract.md) +- [refactor/scripts/vtt-thumbnail-contract.test.mjs](../refactor/scripts/vtt-thumbnail-contract.test.mjs) + +### VTT-THUMB-LIFE-01:Fetch completion, setBar listeners and mobile timers have no destroy ownership + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-VTT-THUMB-02、PKG-VTT-THUMB-03、PKG-VTT-THUMB-05。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Own requests, listeners, timers and controls per registration without stale writes or cross-instance cleanup. + +关闭条件:Deferred request, destroy, failure, timer, repeated registration and native core scenarios demonstrate cleanup. + +复现、排查与验证依据: + +- [refactor/baselines/vtt-thumbnail-release.json](../refactor/baselines/vtt-thumbnail-release.json) +- [refactor/baselines/vtt-thumbnail-contract.md](../refactor/baselines/vtt-thumbnail-contract.md) +- [refactor/scripts/vtt-thumbnail-contract.test.mjs](../refactor/scripts/vtt-thumbnail-contract.test.mjs) +- [test/vtt-thumbnail.test.js](../test/vtt-thumbnail.test.js) +- [refactor/baselines/vtt-thumbnail-failures.json](../refactor/baselines/vtt-thumbnail-failures.json) +- [test/vtt-thumbnail-lifecycle.test.js](../test/vtt-thumbnail-lifecycle.test.js) +- [test/browser/vtt-thumbnail-lifecycle.spec.js](../test/browser/vtt-thumbnail-lifecycle.spec.js) +- [refactor/baselines/vtt-thumbnail-resources.json](../refactor/baselines/vtt-thumbnail-resources.json) + +### VTT-THUMB-EXPORT-01:Older CommonJS default objects and thumbnails control names differ from latest direct export and vtt-thumbnail name + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-VTT-THUMB-04、PKG-VTT-THUMB-05、PKG-VTT-THUMB-06。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Approved latest npm 1.1.0 root factory/namespace stays exact; additive runtime supplies accurate asynchronous and module forms. Earlier 1.0.x type conflicts have explicit migration under ADR-025. Historical thumbnails/vtt-thumbnail control names and complete core/distribution validation remain 05/06. + +关闭条件:Actual package consumers and old/new cores prove supported forms; unresolved differences stay explicit. + +复现、排查与验证依据: + +- [refactor/baselines/vtt-thumbnail-release.json](../refactor/baselines/vtt-thumbnail-release.json) +- [refactor/baselines/vtt-thumbnail-contract.md](../refactor/baselines/vtt-thumbnail-contract.md) +- [refactor/scripts/vtt-thumbnail-contract.test.mjs](../refactor/scripts/vtt-thumbnail-contract.test.mjs) +- [refactor/changes/2026-09-13-PKG-VTT-THUMB-04-public-types.md](../refactor/changes/2026-09-13-PKG-VTT-THUMB-04-public-types.md) +- [refactor/baselines/vtt-thumbnail-public-types.json](../refactor/baselines/vtt-thumbnail-public-types.json) +- [refactor/scripts/vtt-thumbnail-package-types.mjs](../refactor/scripts/vtt-thumbnail-package-types.mjs) +- [refactor/changes/2026-09-13-PKG-VTT-THUMB-04-module-forms.md](../refactor/changes/2026-09-13-PKG-VTT-THUMB-04-module-forms.md) +- [refactor/baselines/vtt-thumbnail-module-forms.json](../refactor/baselines/vtt-thumbnail-module-forms.json) +- [refactor/baselines/vtt-thumbnail-approved-types.json](../refactor/baselines/vtt-thumbnail-approved-types.json) +- [refactor/changes/2026-09-13-PKG-VTT-THUMB-04-approved-types.md](../refactor/changes/2026-09-13-PKG-VTT-THUMB-04-approved-types.md) + +### MULTI-SUB-MERGE-01:1.0.0 merges cues by index while later versions concatenate independently timed track cues + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-MULTI-SUB-02、PKG-MULTI-SUB-03、PKG-MULTI-SUB-05、PKG-MULTI-SUB-10。 + +当前状态:Task10 adapts old activeCue-only hosts to display all independently timed native cues. Source/main/legacy regressions cover old5.1.2/5.1.7. Historical1.1/1.2 losses remain explicit; broader profile/device acceptance remains in task05. Old5.1.2 ASS converter is separate task11. + +已做处理/后续方向:Keep historical merge profiles explicit and test real overlap/timing before choosing compatibility behavior. + +关闭条件:Unaligned lengths, overlap, sorting, names and real subtitle display across supported cores are verified. + +复现、排查与验证依据: + +- [refactor/baselines/multiple-subtitles-release.json](../refactor/baselines/multiple-subtitles-release.json) +- [refactor/baselines/multiple-subtitles-contract.md](../refactor/baselines/multiple-subtitles-contract.md) +- [test/multiple-subtitles.test.js](../test/multiple-subtitles.test.js) +- [refactor/scripts/multiple-subtitles-contract.test.mjs](../refactor/scripts/multiple-subtitles-contract.test.mjs) +- [test/multiple-subtitles-failures.test.js](../test/multiple-subtitles-failures.test.js) +- [test/browser/multiple-subtitles-history.spec.js](../test/browser/multiple-subtitles-history.spec.js) +- [refactor/baselines/multiple-subtitles-failures.json](../refactor/baselines/multiple-subtitles-failures.json) +- [refactor/changes/2026-09-13-PKG-MULTI-SUB-02-failures.md](../refactor/changes/2026-09-13-PKG-MULTI-SUB-02-failures.md) +- [refactor/baselines/multiple-subtitles-resources.json](../refactor/baselines/multiple-subtitles-resources.json) +- [refactor/changes/2026-09-13-PKG-MULTI-SUB-03-resources.md](../refactor/changes/2026-09-13-PKG-MULTI-SUB-03-resources.md) +- [test/multiple-subtitles-lifecycle.test.js](../test/multiple-subtitles-lifecycle.test.js) +- [test/multiple-subtitles-merge.test.js](../test/multiple-subtitles-merge.test.js) +- [test/browser/multiple-subtitles-lifecycle.spec.js](../test/browser/multiple-subtitles-lifecycle.spec.js) +- [refactor/changes/2026-09-14-PKG-MULTI-SUB-05-combinations.md](../refactor/changes/2026-09-14-PKG-MULTI-SUB-05-combinations.md) +- [refactor/baselines/multiple-subtitles-combinations-validation.json](../refactor/baselines/multiple-subtitles-combinations-validation.json) +- [test/browser/multiple-subtitles-combinations.spec.js](../test/browser/multiple-subtitles-combinations.spec.js) +- [refactor/changes/2026-09-14-PKG-MULTI-SUB-10-legacy-captions.md](../refactor/changes/2026-09-14-PKG-MULTI-SUB-10-legacy-captions.md) +- [refactor/baselines/multiple-subtitles-legacy-validation.json](../refactor/baselines/multiple-subtitles-legacy-validation.json) +- [test/multiple-subtitles-caption.test.js](../test/multiple-subtitles-caption.test.js) +- [test/browser/multiple-subtitles-legacy.spec.js](../test/browser/multiple-subtitles-legacy.spec.js) + +### MULTI-SUB-LIFE-01:Pending downloads and final object URL have no destroy owner + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-MULTI-SUB-02、PKG-MULTI-SUB-03、PKG-MULTI-SUB-05。 + +当前状态:Candidate resource fixes and serialization parity are verified in task 03. This risk remains open for the complete supported-core/device coverage owned by task 05. + +已做处理/后续方向:Reproduce stale completion and own requests and URLs without changing public selection methods. + +关闭条件:Cancellation, failures, source changes, repeated selection and destroy are verified with native core coverage. + +复现、排查与验证依据: + +- [refactor/baselines/multiple-subtitles-release.json](../refactor/baselines/multiple-subtitles-release.json) +- [refactor/baselines/multiple-subtitles-contract.md](../refactor/baselines/multiple-subtitles-contract.md) +- [test/multiple-subtitles.test.js](../test/multiple-subtitles.test.js) +- [refactor/scripts/multiple-subtitles-contract.test.mjs](../refactor/scripts/multiple-subtitles-contract.test.mjs) +- [test/multiple-subtitles-failures.test.js](../test/multiple-subtitles-failures.test.js) +- [test/browser/multiple-subtitles-history.spec.js](../test/browser/multiple-subtitles-history.spec.js) +- [refactor/baselines/multiple-subtitles-failures.json](../refactor/baselines/multiple-subtitles-failures.json) +- [refactor/changes/2026-09-13-PKG-MULTI-SUB-02-failures.md](../refactor/changes/2026-09-13-PKG-MULTI-SUB-02-failures.md) +- [refactor/baselines/multiple-subtitles-resources.json](../refactor/baselines/multiple-subtitles-resources.json) +- [refactor/changes/2026-09-13-PKG-MULTI-SUB-03-resources.md](../refactor/changes/2026-09-13-PKG-MULTI-SUB-03-resources.md) +- [test/multiple-subtitles-lifecycle.test.js](../test/multiple-subtitles-lifecycle.test.js) +- [test/multiple-subtitles-merge.test.js](../test/multiple-subtitles-merge.test.js) +- [test/browser/multiple-subtitles-lifecycle.spec.js](../test/browser/multiple-subtitles-lifecycle.spec.js) + +### MULTI-SUB-EXPORT-01:Older CommonJS default objects conflict with export-assignment declarations; latest exports a direct factory + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-MULTI-SUB-04、PKG-MULTI-SUB-06。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Approved latest npm 1.2.0 root factory/namespace stays exact; additive runtime supplies accurate asynchronous and module forms. Earlier 1.0.0/1.1.0 type conflicts have explicit migration under ADR-025. Complete shipped archive/deep-entry and example acceptance remains 06; actual browser/core combinations remain 05. + +关闭条件:Actual installed CJS/ESM/global/legacy consumers and their declarations are verified. + +复现、排查与验证依据: + +- [refactor/baselines/multiple-subtitles-release.json](../refactor/baselines/multiple-subtitles-release.json) +- [refactor/baselines/multiple-subtitles-contract.md](../refactor/baselines/multiple-subtitles-contract.md) +- [test/multiple-subtitles.test.js](../test/multiple-subtitles.test.js) +- [refactor/scripts/multiple-subtitles-contract.test.mjs](../refactor/scripts/multiple-subtitles-contract.test.mjs) +- [refactor/baselines/multiple-subtitles-public-types.json](../refactor/baselines/multiple-subtitles-public-types.json) +- [refactor/changes/2026-09-13-PKG-MULTI-SUB-04-public-types.md](../refactor/changes/2026-09-13-PKG-MULTI-SUB-04-public-types.md) +- [refactor/scripts/multiple-subtitles-types.test.mjs](../refactor/scripts/multiple-subtitles-types.test.mjs) +- [refactor/scripts/multiple-subtitles-package-types.mjs](../refactor/scripts/multiple-subtitles-package-types.mjs) +- [refactor/baselines/multiple-subtitles-approved-types.json](../refactor/baselines/multiple-subtitles-approved-types.json) +- [refactor/changes/2026-09-13-PKG-MULTI-SUB-04-approved-types.md](../refactor/changes/2026-09-13-PKG-MULTI-SUB-04-approved-types.md) + +### JASSUB-TYPE-01:JASSUB declared required URLs, Promise methods and resize parameter order differ from actual historical behavior + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-JASSUB-04。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Keep synchronous registration and real instance methods while separately preserving old parameter/return extraction and extension indexes. Do not implement the old inaccurate declaration as new runtime behavior. + +关闭条件:Strict old/new consumers and actual installed declarations cover option defaults, instance methods, callback/return extraction, resize order and existing extension fields. + +复现、排查与验证依据: + +- [refactor/baselines/jassub-contract.md](../refactor/baselines/jassub-contract.md) +- [test/jassub.test.js](../test/jassub.test.js) +- [refactor/scripts/jassub-contract.test.mjs](../refactor/scripts/jassub-contract.test.mjs) + +### JASSUB-EXPORT-01:JASSUB historical CommonJS object.default changes to a direct factory in 1.1.0 + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-JASSUB-04、PKG-JASSUB-06。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Preserve actual historical JS default/direct forms and validate their declared module views independently. + +关闭条件:Installed CJS/ESM/global/legacy consumers and public types preserve the supported historical forms. + +复现、排查与验证依据: + +- [refactor/baselines/jassub-contract-validation.json](../refactor/baselines/jassub-contract-validation.json) +- [refactor/baselines/jassub-release.json](../refactor/baselines/jassub-release.json) +- [test/jassub.test.js](../test/jassub.test.js) + +### ASR-CORS-01:Default WebAudio binding silences CORS-cross-origin media that otherwise advances normally + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-ASR-05。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Document required CORS setup and provide an explicitly chosen capture path that never takes over media playback; do not bypass browser security or silently change default PCM semantics. + +关闭条件:Authorized capture and same-origin recovery remain valid; an explicit integration avoids direct ownership for restricted input, fails or stays silent without rerouting playback, and is documented with native evidence. + +复现、排查与验证依据: + +- [test/browser/asr-cors.spec.js](../test/browser/asr-cors.spec.js) +- [refactor/baselines/asr-combinations-validation.json](../refactor/baselines/asr-combinations-validation.json) +- [refactor/baselines/asr-explicit-capture-validation.json](../refactor/baselines/asr-explicit-capture-validation.json) + +### MASK-LIFETIME-01:Mask asynchronous initialization and inference continue after stop or destroy + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-MASK-02、PKG-MASK-03、PKG-MASK-05。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Invalidate stale work while keeping restartable stop distinct from final destroy; release model and subscriptions. PKG-MASK-03 fixes controlled stale work, owned bitmaps and subscriptions; native SDK dispose completion is not exposed by body-segmentation 1.0.2 and remains a real-resource validation limit in PKG-MASK-05. + +关闭条件:Pending initialization/inference cannot write masks or schedule work after stop/destroy; errors settle and owned resources are released. + +复现、排查与验证依据: + +- [refactor/baselines/danmuku-mask-contract.md](../refactor/baselines/danmuku-mask-contract.md) +- [refactor/baselines/danmuku-mask-release.json](../refactor/baselines/danmuku-mask-release.json) +- [refactor/baselines/danmuku-mask-contract-validation.json](../refactor/baselines/danmuku-mask-contract-validation.json) +- [refactor/changes/2026-09-13-PKG-MASK-02-failures.md](../refactor/changes/2026-09-13-PKG-MASK-02-failures.md) +- [refactor/baselines/danmuku-mask-failures-validation.json](../refactor/baselines/danmuku-mask-failures-validation.json) +- [test/danmuku-mask-failures.test.js](../test/danmuku-mask-failures.test.js) +- [refactor/changes/2026-09-13-PKG-MASK-03-lifecycle.md](../refactor/changes/2026-09-13-PKG-MASK-03-lifecycle.md) +- [refactor/baselines/danmuku-mask-lifecycle-validation.json](../refactor/baselines/danmuku-mask-lifecycle-validation.json) +- [test/danmuku-mask-lifecycle.test.js](../test/danmuku-mask-lifecycle.test.js) +- [refactor/baselines/danmuku-mask-native-validation.json](../refactor/baselines/danmuku-mask-native-validation.json) +- [refactor/changes/2026-09-14-PKG-MASK-05-native-checkpoint.md](../refactor/changes/2026-09-14-PKG-MASK-05-native-checkpoint.md) + +### MASK-MODEL-01:Published Mask options and installed MediaPipe adapter consume different model settings + +证据性质:源码/声明/产物事实。后续任务:PKG-MASK-02、PKG-MASK-04、PKG-MASK-05。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Freeze actual default/zero behavior and distinguish supported SDK configuration from inactive historical option fields before changing effects. + +关闭条件:Effective model selection, zero values and configuration mapping have controlled and real model evidence, with explicit compatibility decisions for effect changes. + +复现、排查与验证依据: + +- [refactor/baselines/danmuku-mask-contract.md](../refactor/baselines/danmuku-mask-contract.md) +- [refactor/baselines/danmuku-mask-release.json](../refactor/baselines/danmuku-mask-release.json) +- [refactor/baselines/danmuku-mask-contract-validation.json](../refactor/baselines/danmuku-mask-contract-validation.json) + +### MASK-BACKEND-01:Mask TensorFlow backend fallback does not establish MediaPipe fallback and failed initialization keeps scheduling + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-MASK-02、PKG-MASK-03、PKG-MASK-05。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Model backend outcomes explicitly, settle initialization failures and document the actual MediaPipe capability boundary. + +关闭条件:Fulfilled false, rejection, CPU failure, createSegmenter failure and later retry are tested; real inference fallback is separately evidenced. + +复现、排查与验证依据: + +- [refactor/baselines/danmuku-mask-contract.md](../refactor/baselines/danmuku-mask-contract.md) +- [refactor/baselines/danmuku-mask-release.json](../refactor/baselines/danmuku-mask-release.json) +- [refactor/baselines/danmuku-mask-contract-validation.json](../refactor/baselines/danmuku-mask-contract-validation.json) +- [refactor/changes/2026-09-13-PKG-MASK-02-failures.md](../refactor/changes/2026-09-13-PKG-MASK-02-failures.md) +- [refactor/baselines/danmuku-mask-failures-validation.json](../refactor/baselines/danmuku-mask-failures-validation.json) +- [test/danmuku-mask-failures.test.js](../test/danmuku-mask-failures.test.js) +- [refactor/changes/2026-09-13-PKG-MASK-03-lifecycle.md](../refactor/changes/2026-09-13-PKG-MASK-03-lifecycle.md) +- [refactor/baselines/danmuku-mask-lifecycle-validation.json](../refactor/baselines/danmuku-mask-lifecycle-validation.json) +- [test/danmuku-mask-lifecycle.test.js](../test/danmuku-mask-lifecycle.test.js) + +### MASK-DOM-01:Mask registration and frame processing assume Danmuku DOM, readable frames and a 2D context + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-MASK-02、PKG-MASK-03、PKG-MASK-05。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Handle missing dependencies and frame/context failures without stale writes or uncontrolled loops while preserving plugin ordering. + +关闭条件:Missing Danmuku/context, CORS failure, source changes and ready/destroy timing have controlled and real browser evidence. + +复现、排查与验证依据: + +- [refactor/baselines/danmuku-mask-contract.md](../refactor/baselines/danmuku-mask-contract.md) +- [refactor/baselines/danmuku-mask-release.json](../refactor/baselines/danmuku-mask-release.json) +- [refactor/baselines/danmuku-mask-contract-validation.json](../refactor/baselines/danmuku-mask-contract-validation.json) +- [refactor/changes/2026-09-13-PKG-MASK-02-failures.md](../refactor/changes/2026-09-13-PKG-MASK-02-failures.md) +- [refactor/baselines/danmuku-mask-failures-validation.json](../refactor/baselines/danmuku-mask-failures-validation.json) +- [test/danmuku-mask-failures.test.js](../test/danmuku-mask-failures.test.js) +- [refactor/changes/2026-09-13-PKG-MASK-03-lifecycle.md](../refactor/changes/2026-09-13-PKG-MASK-03-lifecycle.md) +- [refactor/baselines/danmuku-mask-lifecycle-validation.json](../refactor/baselines/danmuku-mask-lifecycle-validation.json) +- [test/danmuku-mask-lifecycle.test.js](../test/danmuku-mask-lifecycle.test.js) +- [refactor/baselines/danmuku-mask-native-validation.json](../refactor/baselines/danmuku-mask-native-validation.json) +- [refactor/changes/2026-09-14-PKG-MASK-05-native-checkpoint.md](../refactor/changes/2026-09-14-PKG-MASK-05-native-checkpoint.md) + +### MASK-NOTICE-01:Published Mask bundles lack a separate third-party notice despite bundled SDK code + +证据性质:源码/声明/产物事实。后续任务:PKG-MASK-06。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Trace included SDK assets and license notices against actual bundle sources; preserve required notices in candidate packages. + +关闭条件:Document incorporated SDK provenance and applicable notices; inspect built and packed artifacts, without treating manifest license claims as full clearance. + +复现、排查与验证依据: + +- [refactor/baselines/danmuku-mask-contract.md](../refactor/baselines/danmuku-mask-contract.md) +- [refactor/baselines/danmuku-mask-release.json](../refactor/baselines/danmuku-mask-release.json) +- [refactor/baselines/danmuku-mask-contract-validation.json](../refactor/baselines/danmuku-mask-contract-validation.json) + +### DANMUKU-SOURCE-01:Danmuku registry Git associations differ from releases and static icon provenance remains incomplete + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-DANMUKU-09。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Use actual archive identity, preserve missing historical Git information and audit icon source/notice obligations. + +关闭条件:Candidate tarball paths, complete module forms and icon/source provenance are explicitly reviewed; unresolved history is not invented. + +复现、排查与验证依据: + +- [refactor/baselines/danmuku-contract.md](../refactor/baselines/danmuku-contract.md) +- [refactor/baselines/danmuku-contract-validation.json](../refactor/baselines/danmuku-contract-validation.json) +- [refactor/baselines/danmuku-release.json](../refactor/baselines/danmuku-release.json) + +### MASK-SCHEDULING-01:Native Mask startup can coincide with a missed narrow Danmuku timestamp window + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-MASK-05。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Retain startup sampling evidence and distinguish it from post-model-ready delivery; investigate actual startup scheduling without silently adding catch-up semantics. + +关闭条件:Identify the startup scheduling cause and assess a compatible mitigation or explicitly reviewed limitation using actual model/media evidence; post-ready success alone cannot close this risk. + +复现、排查与验证依据: + +- [test/browser/danmuku-mask-native.spec.js](../test/browser/danmuku-mask-native.spec.js) +- [refactor/baselines/danmuku-mask-native-validation.json](../refactor/baselines/danmuku-mask-native-validation.json) +- [refactor/changes/2026-09-14-PKG-MASK-05-native-checkpoint.md](../refactor/changes/2026-09-14-PKG-MASK-05-native-checkpoint.md) + +### JASSUB-HYBRID-01:Late hybrid frames mutate the new offscreen canvas or throw; terminal track calls recreate transferred canvases + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-JASSUB-09、PKG-JASSUB-05。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Ignore obsolete hybrid render side effects while releasing their bitmaps, and preserve terminal canvas ownership in reattachment. + +关闭条件:Controlled and held-native-bitmap red/green cases preserve the newly reattached canvas and pending demand; terminal public track calls allocate nothing, normal hybrid and default/main-thread rendering remain valid. Native capability limitations are recorded. + +复现、排查与验证依据: + +- [test/jassub-offscreen.test.js](../test/jassub-offscreen.test.js) +- [test/browser/jassub-hybrid.spec.js](../test/browser/jassub-hybrid.spec.js) + +### JASSUB-FIREFOX-OFFSCREEN-01:Windows Firefox offscreen readback and asynchronous ImageBitmap creation can stall through seek/layout, including a minimal Worker control + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-JASSUB-09、PKG-JASSUB-05。 + +当前状态:主台账未单列 workspaceState;须结合以下处理记录和证据确认候选已修复部分,不能仅以标题推断当前状态。 + +已做处理/后续方向:Isolate native media/compositor/readback and sequence effects without globally disabling default offscreen or deleting assertions. The pre-09 artifact also fails in the same sequence; do not claim the new hybrid guard caused or fixed this separate failure. Single-flight controls also stall; API-entry/return timing locates a captured delay before createImageBitmap returns its Promise, alongside synchronous main-thread canvas readback. A script-free native host has the same ten-second observation despite an eventual-pixel pass. Retain latency evidence; neither core scripts nor concurrent creation are required for that control stall. + +关闭条件:Identify and verify a compatible fix or a reviewed precise platform boundary with native controls. Preserve known red sequence and successful standalone comparison; candidate playback/fullscreen pixels and lifetime must be justified, not merely rerun to green. + +复现、排查与验证依据: + +- [refactor/changes/2026-09-14-PKG-JASSUB-09-hybrid.md](../refactor/changes/2026-09-14-PKG-JASSUB-09-hybrid.md) +- [refactor/baselines/jassub-hybrid-validation.json](../refactor/baselines/jassub-hybrid-validation.json) +- [refactor/changes/2026-09-14-PKG-JASSUB-09-firefox-diagnostics.md](../refactor/changes/2026-09-14-PKG-JASSUB-09-firefox-diagnostics.md) +- [refactor/baselines/jassub-firefox-diagnostics.json](../refactor/baselines/jassub-firefox-diagnostics.json) +- [refactor/changes/2026-09-14-PKG-JASSUB-09-display.md](../refactor/changes/2026-09-14-PKG-JASSUB-09-display.md) +- [refactor/baselines/jassub-display-validation.json](../refactor/baselines/jassub-display-validation.json) +- [test/browser/jassub-platform.spec.js](../test/browser/jassub-platform.spec.js) +- [test/browser/jassub-native.spec.js](../test/browser/jassub-native.spec.js) +- [test/browser/jassub-hybrid.spec.js](../test/browser/jassub-hybrid.spec.js) +- [refactor/changes/2026-09-15-CI-01-jassub-installed.md](../refactor/changes/2026-09-15-CI-01-jassub-installed.md) +- [refactor/baselines/ci-jassub-installed-validation.json](../refactor/baselines/ci-jassub-installed-validation.json) +- [refactor/changes/2026-09-15-PKG-JASSUB-09-native-call.md](../refactor/changes/2026-09-15-PKG-JASSUB-09-native-call.md) +- [refactor/baselines/jassub-native-call-validation.json](../refactor/baselines/jassub-native-call-validation.json) + +### VTT-CORE-NAME-01:Published VTT 1.0.1 control name conflicts with the core placeholder introduced in 5.1.7 + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-VTT-THUMB-05、REL-08。 + +当前状态:Final three-engine suite passes nine assertions of this historical rejection, not nine successful compatibility cells. No production control behavior was changed. + +已做处理/后续方向:Preserve current vtt-thumbnail and reserved core control identities; distinguish the actual working 1.0.1/5.1.6 pair from the already failing 5.1.7/5.4.0/candidate pair. Decide the supported historical pairing/migration or a compatible accommodation during release review without hiding duplicate-control failures. + +关闭条件:Historical working and failing browser pairs remain reproducible; any claimed accommodation preserves reserved-control ownership and duplicate-registration contracts, or an explicit reviewed historical support/migration boundary is recorded. + +复现、排查与验证依据: + +- [refactor/changes/2026-09-14-PKG-VTT-THUMB-05-combinations.md](../refactor/changes/2026-09-14-PKG-VTT-THUMB-05-combinations.md) +- [refactor/baselines/vtt-thumbnail-combinations.json](../refactor/baselines/vtt-thumbnail-combinations.json) +- [refactor/baselines/vtt-thumbnail-core.json](../refactor/baselines/vtt-thumbnail-core.json) +- [test/browser/vtt-thumbnail-combinations.spec.js](../test/browser/vtt-thumbnail-combinations.spec.js) + +### MULTI-SUB-SWITCH-01:Intermittent WebKit core5.3.0 caption loss after selected-track source switch + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-MULTI-SUB-05、PKG-MULTI-SUB-09。 + +当前状态:Still open after task11: property traces3+9 and passive105 cases pass while confirming early old-core settlement; default untraced63 has another near-zero seek miss on5.3.0/WebKit (time0.0015139, intact1..3 cue, no active cue). No failing native-write trace yet. Opt-in metadata/restoration-seeked control passes27 cases but is not a production/API fix; default and immediate-call probes remain unchanged. Candidate source guarantees pass. Task05 still owns remaining diagnosis and acceptance. + +已做处理/后续方向:Classify the old-host source/native-seek race separately from caption rendering; preserve immediate-call probes, require candidate first seeks, and wait for real native source completion before independent caption-seek assertions. + +关闭条件:Root cause classified with targeted evidence, any required fix validated, and changed candidate/old-core combination rerun without hiding the original failure. + +已有局部结论:No-plugin controls reproduce the same miss and a settled seek restores correct old/new captions without changing plugin data. Candidate source code already provides the necessary readiness guard (BASE-LIFE-44/CORE-19 context). This resolves the suspected plugin-switch defect; it does not approve every historical source call or complete package task05. + +复现、排查与验证依据: + +- [refactor/changes/2026-09-14-PKG-MULTI-SUB-05-combinations.md](../refactor/changes/2026-09-14-PKG-MULTI-SUB-05-combinations.md) +- [refactor/baselines/multiple-subtitles-combinations-validation.json](../refactor/baselines/multiple-subtitles-combinations-validation.json) +- [test/browser/multiple-subtitles-combinations.spec.js](../test/browser/multiple-subtitles-combinations.spec.js) +- [refactor/changes/2026-09-14-CORE-SUBTITLE-OFFSET-01-paused.md](../refactor/changes/2026-09-14-CORE-SUBTITLE-OFFSET-01-paused.md) +- [refactor/baselines/subtitle-offset-validation.json](../refactor/baselines/subtitle-offset-validation.json) +- [refactor/changes/2026-09-14-PKG-MULTI-SUB-09-switch-order.md](../refactor/changes/2026-09-14-PKG-MULTI-SUB-09-switch-order.md) +- [refactor/baselines/multiple-subtitles-switch-validation.json](../refactor/baselines/multiple-subtitles-switch-validation.json) +- [test/browser/multiple-subtitles-switch.spec.js](../test/browser/multiple-subtitles-switch.spec.js) +- [refactor/changes/2026-09-14-PKG-MULTI-SUB-10-legacy-captions.md](../refactor/changes/2026-09-14-PKG-MULTI-SUB-10-legacy-captions.md) +- [refactor/baselines/multiple-subtitles-legacy-validation.json](../refactor/baselines/multiple-subtitles-legacy-validation.json) +- [refactor/changes/2026-09-14-PKG-MULTI-SUB-05-seek-diagnostics.md](../refactor/changes/2026-09-14-PKG-MULTI-SUB-05-seek-diagnostics.md) +- [refactor/baselines/multiple-subtitles-seek-diagnostics.json](../refactor/baselines/multiple-subtitles-seek-diagnostics.json) +- [test/browser/source-seek-diagnostics.js](../test/browser/source-seek-diagnostics.js) +- [test/browser/source-restoration.js](../test/browser/source-restoration.js) + +### MB-SYNC-01:Installed MediaBunny hour soak exceeds the original frame/audio-clock tolerance in both Chromium core combinations + +证据性质:已复现(可能针对历史版本,须看当前状态)。后续任务:PKG-MB-09。 + +当前状态:Running-at-capture, not a final report: around 1767 seconds both Chromium cases using the same candidate proxy reach approximately 549ms/570ms max delta; visibility, advancing media/draws, node bounds and lack of media errors remain intact. Core-specific, historical-proxy and OS-cause claims are unproven. Superseded running status: session34354 was interrupted at user request around3491 seconds of the first1x phase, exit1; original processes and8084 listener are absent. No completed four-case report or successful cleanup assertion is claimed. See self-test-handoff-stop.json. + +已做处理/后续方向:2026-09-16 user requested stopping autonomous work. Preserve the interrupted run and original 250ms gate; defer diagnosis. If resumed, distinguish delayed presentation, catch-up draws, sustained clock drift and host scheduling with bounded controls before changing code; retain the public dropLateFrames default. + +关闭条件:Retain the first failing samples and terminal report; establish cause with appropriate historical/native controls, fix any confirmed project regression, and complete unchanged duration/cleanup requirements with a justified clock/presentation interpretation. A later passing run alone does not close this risk. + +复现、排查与验证依据: + +- [refactor/baselines/mb-hour-av-breach.json](../refactor/baselines/mb-hour-av-breach.json) +- [refactor/changes/2026-09-16-PKG-MB-09-av-breach.md](../refactor/changes/2026-09-16-PKG-MB-09-av-breach.md) +- [test/soak/mediabunny.spec.js](../test/soak/mediabunny.spec.js) +- [refactor/baselines/self-test-handoff-stop.json](../refactor/baselines/self-test-handoff-stop.json) +- [refactor/self-test-handoff.md](../refactor/self-test-handoff.md) + +## 独立分支的额外问题:MB-DROP-01 + +Queued frames ignore explicit late-frame dropping after the playback clock advances + +处理进展:Apply the existing frameAction policy to due queued frames only when dropLateFrames is enabled; retain default false and do not report playing for a discarded frame. Isolated source/main/legacy controls pass; native verification and main-branch integration remain. + +关闭条件:Old red/new green queued-frame controls, native scheduling/decode recovery, unchanged default behavior and cleanup pass; integrate source and updated artifacts. Do not infer closure of the default-mode long-soak AV risk. + +分支 `codex/mb-queued-frame-fix`,提交 `1af2c1347866590a7341316dcf304de4e5ac0a9a`;主分支尚不包含该修复。详细测试数量、依赖 junction 与接续限制见 [交接记录](self-test-handoff.md)。 + +证据文件位于独立工作区 `D:\github\ArtPlayer-mb-queued-frame`: + +- `refactor/baselines/mb-queued-frame-fix-checkpoint.json` +- `refactor/changes/2026-09-16-PKG-MB-DROP-01-queued-frames.md` +- `test/mediabunny-video.test.js` + +## 已按范围接受的 5 项差异 + +这些是历史决定,不应被当作完全无风险,也不应自动重开。恢复相应任务前先核对批准范围。 + +### VENDOR-08:console-bundle 来源、版本与许可闭环 + +责任任务:SITE-01、SITE-07。 + +All 100 retained modules and Parcel have exact reproducing sources, all identified embedded origins have original notices, and 44 components are bound to verified upstream materials before actual distribution. The unchanged runtime retains tested API behavior. Accept only the documented historical-reconstruction limits: the original full lockfile, uniquely installed versions and former online Closure service are not recovered. Component licenses remain separate, including CC BY-SA 4.0. Re-review changed code or integration boundaries and revalidate release candidates. + +依据: + +- [refactor/third-party.json](../refactor/third-party.json) +- [docs/assets/js/console.js](../docs/assets/js/console.js) +- [refactor/site-inventory.md](../refactor/site-inventory.md) +- [refactor/baselines/site-provenance.json](../refactor/baselines/site-provenance.json) +- [refactor/console-modernization.md](../refactor/console-modernization.md) +- [refactor/baselines/site-console-inventory.json](../refactor/baselines/site-console-inventory.json) +- [refactor/baselines/site-console-validation.json](../refactor/baselines/site-console-validation.json) +- [refactor/changes/2026-09-15-SITE-07-console-baseline.md](../refactor/changes/2026-09-15-SITE-07-console-baseline.md) +- [test/browser/site-console.spec.js](../test/browser/site-console.spec.js) +- [refactor/baselines/console-feed-provenance.json](../refactor/baselines/console-feed-provenance.json) +- [refactor/changes/2026-09-15-SITE-07-console-feed-source.md](../refactor/changes/2026-09-15-SITE-07-console-feed-source.md) +- [scripts/site-vendor/console/provenance.ts](../scripts/site-vendor/console/provenance.ts) +- [scripts/site-vendor/console/reproduce.ts](../scripts/site-vendor/console/reproduce.ts) +- [refactor/baselines/console-commonjs-provenance.json](../refactor/baselines/console-commonjs-provenance.json) +- [refactor/changes/2026-09-15-SITE-07-console-commonjs.md](../refactor/changes/2026-09-15-SITE-07-console-commonjs.md) +- [refactor/baselines/console-esm-provenance.json](../refactor/baselines/console-esm-provenance.json) +- [refactor/changes/2026-09-15-SITE-07-console-esm.md](../refactor/changes/2026-09-15-SITE-07-console-esm.md) +- [scripts/site-vendor/console/reconstruction.ts](../scripts/site-vendor/console/reconstruction.ts) +- [refactor/baselines/console-embedded-notices.json](../refactor/baselines/console-embedded-notices.json) +- [refactor/baselines/console-notices-validation.json](../refactor/baselines/console-notices-validation.json) +- [refactor/changes/2026-09-15-SITE-07-console-notices.md](../refactor/changes/2026-09-15-SITE-07-console-notices.md) +- [scripts/site-vendor/console/embedded-notices.ts](../scripts/site-vendor/console/embedded-notices.ts) +- [docs/THIRD_PARTY_NOTICES.md](../docs/THIRD_PARTY_NOTICES.md) +- [refactor/baselines/console-embedded-sources.json](../refactor/baselines/console-embedded-sources.json) +- [refactor/baselines/console-embedded-validation.json](../refactor/baselines/console-embedded-validation.json) +- [refactor/changes/2026-09-15-SITE-07-console-embedded-sources.md](../refactor/changes/2026-09-15-SITE-07-console-embedded-sources.md) +- [scripts/site-vendor/console/embedded-sources.ts](../scripts/site-vendor/console/embedded-sources.ts) +- [refactor/baselines/console-derived-attribution.json](../refactor/baselines/console-derived-attribution.json) +- [refactor/baselines/console-derived-validation.json](../refactor/baselines/console-derived-validation.json) +- [refactor/changes/2026-09-15-SITE-07-console-derived-attribution.md](../refactor/changes/2026-09-15-SITE-07-console-derived-attribution.md) +- [scripts/site-vendor/console/attribution.ts](../scripts/site-vendor/console/attribution.ts) +- [refactor/baselines/console-stackoverflow-provenance.json](../refactor/baselines/console-stackoverflow-provenance.json) +- [refactor/baselines/console-stackoverflow-validation.json](../refactor/baselines/console-stackoverflow-validation.json) +- [refactor/changes/2026-09-15-SITE-07-console-stackoverflow.md](../refactor/changes/2026-09-15-SITE-07-console-stackoverflow.md) +- [scripts/site-vendor/console/stackoverflow.ts](../scripts/site-vendor/console/stackoverflow.ts) +- [refactor/baselines/console-shallowequal-validation.json](../refactor/baselines/console-shallowequal-validation.json) +- [refactor/changes/2026-09-15-SITE-07-console-shallowequal.md](../refactor/changes/2026-09-15-SITE-07-console-shallowequal.md) +- [refactor/console-notice-review.md](../refactor/console-notice-review.md) +- [refactor/baselines/console-notice-review-validation.json](../refactor/baselines/console-notice-review-validation.json) +- [refactor/changes/2026-09-15-SITE-07-console-notice-review.md](../refactor/changes/2026-09-15-SITE-07-console-notice-review.md) +- [scripts/site-vendor/console/notices.ts](../scripts/site-vendor/console/notices.ts) + +### AUDIO-TYPE-01:Audio Track update 部分配置与公开/编辑器声明不一致 + +责任任务:PKG-AUDIO-04。 + +直接拓宽或重载会使旧上下文实现的 url 成为 string | undefined,已用实际编译复现。五组 TS 正反例、README、CJS/ESM 同一函数、真实 Monaco 三引擎已通过。接受默认旧声明有意保持窄签名的范围,不声称所有入口默认支持部分 update;隔离安装和完整分发仍由 Audio-06 验证。 + +依据: + +- [refactor/baselines/audio-track-contract.md](../refactor/baselines/audio-track-contract.md) +- [refactor/baselines/audio-track-release.json](../refactor/baselines/audio-track-release.json) +- [refactor/changes/2026-09-12-PKG-AUDIO-04-types.md](../refactor/changes/2026-09-12-PKG-AUDIO-04-types.md) +- [refactor/baselines/audio-types-validation.json](../refactor/baselines/audio-types-validation.json) +- [refactor/decisions.md](../refactor/decisions.md) + +### ADS-TYPE-01:Ads 声明丢失真实 html/video/url,旧 totalDuration 为 string,当前 source/type 未实现 + +责任任务:PKG-ADS-02、PKG-ADS-04。 + +用户在收到具体TS2322影响和两套矛盾声明证据后答复“接受这项类型推导修正,写清迁移说明并继续”。五模式、冻结声明、隔离包和真实编辑器通过;诊断测试继续保留,不声称所有历史TS程序无改动兼容。 + +依据: + +- [refactor/baselines/ads-release.json](../refactor/baselines/ads-release.json) +- [refactor/baselines/ads-contract.md](../refactor/baselines/ads-contract.md) +- [packages/artplayer-plugin-ads/types/artplayer-plugin-ads.d.ts](../packages/artplayer-plugin-ads/types/artplayer-plugin-ads.d.ts) +- [packages/artplayer-plugin-ads/src/index.ts](../packages/artplayer-plugin-ads/src/index.ts) +- [refactor/changes/2026-09-12-PKG-ADS-04-types.md](../refactor/changes/2026-09-12-PKG-ADS-04-types.md) +- [refactor/scripts/ads-types.test.mjs](../refactor/scripts/ads-types.test.mjs) +- [refactor/baselines/ads-types-validation.json](../refactor/baselines/ads-types-validation.json) +- [packages/artplayer-plugin-ads/README.md](../packages/artplayer-plugin-ads/README.md) +- [test/types/ads.ts](../test/types/ads.ts) + +### VAST-CONTEXT-01:Published VAST callback aliases and eager Player differ from the unpublished lazy workspace + +责任任务:PKG-VAST-02、PKG-VAST-03、PKG-VAST-04。 + +The mutually exclusive initialization timing is explicitly approved and covered by published/workspace consumer tests. Unpublished lazy callers add the second option; public declarations remain VAST-TYPE-01/task04 and real IMA remains task05. + +依据: + +- [refactor/baselines/vast-contract.md](../refactor/baselines/vast-contract.md) +- [refactor/baselines/vast-release.json](../refactor/baselines/vast-release.json) +- [refactor/changes/2026-09-12-PKG-VAST-01-contract.md](../refactor/changes/2026-09-12-PKG-VAST-01-contract.md) +- [refactor/baselines/vast-contract-validation.json](../refactor/baselines/vast-contract-validation.json) +- [refactor/vast-compatibility-decision.md](../refactor/vast-compatibility-decision.md) +- [refactor/changes/2026-09-14-PKG-VAST-03-compatibility.md](../refactor/changes/2026-09-14-PKG-VAST-03-compatibility.md) +- [refactor/baselines/vast-compatibility-validation.json](../refactor/baselines/vast-compatibility-validation.json) + +### VAST-TYPE-01:VAST declares an async factory as synchronous and imports an unavailable SDK type dependency + +责任任务:PKG-VAST-04、PKG-VAST-06。 + +User separately accepted npm1.0.0 root compatibility types and /runtime accurate Promise/SDK/context types, with unpublished workspace migration. Fourteen actual isolated installation/compiler cases pass without skipLibCheck and enforce SDK dependency resolution; root historical inaccuracy is disclosed, not presented as runtime truth. + +依据: + +- [refactor/baselines/vast-contract.md](../refactor/baselines/vast-contract.md) +- [refactor/baselines/vast-release.json](../refactor/baselines/vast-release.json) +- [refactor/changes/2026-09-12-PKG-VAST-01-contract.md](../refactor/changes/2026-09-12-PKG-VAST-01-contract.md) +- [refactor/baselines/vast-contract-validation.json](../refactor/baselines/vast-contract-validation.json) +- [refactor/baselines/vast-lifecycle-validation.json](../refactor/baselines/vast-lifecycle-validation.json) +- [refactor/changes/2026-09-12-PKG-VAST-03-lifecycle.md](../refactor/changes/2026-09-12-PKG-VAST-03-lifecycle.md) +- [refactor/changes/2026-09-14-PKG-VAST-04-types.md](../refactor/changes/2026-09-14-PKG-VAST-04-types.md) +- [refactor/baselines/vast-types-validation.json](../refactor/baselines/vast-types-validation.json) +- [refactor/vast-type-decision.md](../refactor/vast-type-decision.md) + +## 延期任务完整索引 + +下表涵盖主计划所有未完成任务。恢复前查 tasks.json 中的验收条件和原证据,不把延期算完成。 + +| 任务 | 停止前状态 | 内容 | +| --- | --- | --- | +| CI-01 | doing | 增强兼容矩阵、并发缓存与 CI 报告 | +| CI-03 | todo | 建立 npm 分包候选与发布工作流 | +| CI-04 | todo | 验收 GitHub 流水线与远端发布准入 | +| PKG-CHAPTER-05 | doing | 验证新旧核心和组合 | +| PKG-CHAPTER-06 | todo | 验证分发并同步文档 | +| PKG-AMBILIGHT-05 | doing | 验证新旧核心和组合 | +| PKG-AMBILIGHT-06 | todo | 验证分发并同步文档 | +| PKG-AUDIO-05 | doing | 验证新旧核心和组合 | +| PKG-AUDIO-06 | todo | 验证分发并同步文档 | +| PKG-AUTO-THUMB-03 | doing | 整理内部职责与资源 | +| PKG-AUTO-THUMB-05 | todo | 验证新旧核心和组合 | +| PKG-AUTO-THUMB-06 | todo | 验证分发并同步文档 | +| PKG-VTT-THUMB-05 | doing | 验证新旧核心和组合 | +| PKG-VTT-THUMB-06 | todo | 验证分发并同步文档 | +| PKG-HLS-SDK-01 | doing | 验证真实 SDK worker 与分组轨道组合 | +| PKG-HLS-05 | todo | 验证新旧核心和组合 | +| PKG-HLS-06 | todo | 验证分发并同步文档 | +| PKG-DASH-05 | doing | 验证新旧核心和组合 | +| PKG-DASH-06 | todo | 验证分发并同步文档 | +| PKG-MULTI-SUB-05 | doing | 验证新旧核心和组合 | +| PKG-MULTI-SUB-06 | todo | 验证分发并同步文档 | +| PKG-JASSUB-05 | todo | 验证新旧核心和组合 | +| PKG-JASSUB-06 | todo | 验证分发并同步文档 | +| PKG-MASK-05 | doing | 验证新旧核心和组合 | +| PKG-MASK-06 | todo | 验证分发并同步文档 | +| PKG-ASR-05 | doing | 验证新旧核心和组合 | +| PKG-ASR-06 | todo | 验证分发并同步文档 | +| PKG-ADS-05 | doing | 验证新旧核心和组合 | +| PKG-ADS-06 | todo | 验证分发并同步文档 | +| PKG-VAST-05 | doing | 验证新旧核心和组合 | +| PKG-VAST-06 | todo | 验证分发并同步文档 | +| PKG-CAST-05 | doing | 验证新旧核心和组合 | +| PKG-CAST-06 | todo | 验证分发并同步文档 | +| PKG-DPIP-05 | doing | 验证新旧核心和组合 | +| PKG-DPIP-06 | todo | 验证分发并同步文档 | +| PKG-DANMUKU-08 | doing | 完成新旧核心与组合验收 | +| PKG-DANMUKU-09 | todo | 完成分发、示例与文档 | +| PKG-CANVAS-05 | doing | 验证新旧核心和组合 | +| PKG-CANVAS-06 | todo | 验证分发并同步文档 | +| PKG-MB-09 | doing | 完成新旧核心和真实媒体组合 | +| PKG-MB-10 | todo | 完成分发和文档 | +| PKG-IFRAME-05 | doing | 验证新旧核心和组合 | +| PKG-IFRAME-06 | todo | 验证分发并同步文档 | +| PKG-TOOL-THUMB-05 | doing | 验证新旧核心和组合 | +| PKG-TOOL-THUMB-06 | todo | 验证分发并同步文档 | +| SITE-05 | doing | 构建文档站和验证链接/示例 | +| SITE-06 | todo | 文档站交付验收 | +| SITE-07 | doing | 整理站点第三方资产与来源说明 | +| EX-03 | todo | 验证全部原生 demo 与外部播放集成 | +| MOD-04 | todo | 测量并优化重型插件/proxy | +| MOD-05 | todo | 完成工具链与性能采用决策 | +| REL-02 | doing | 生成候选 tarball 并验证新旧组合 | +| REL-03 | todo | 完成真机、外部 SDK 与压力验收 | +| REVIEW-01 | todo | 第一轮全项目架构与兼容性复盘 | +| REVIEW-02 | todo | 第二轮真实浏览器与生态集成复盘 | +| REVIEW-03 | todo | 第三轮 npm 候选内容与发布准备复盘 | +| REL-05 | todo | 经授权发布候选并收集反馈 | +| REL-06 | todo | 经授权分批正式发布 | +| REL-07 | todo | 关闭重构里程碑并维护后续队列 | +| PKG-JASSUB-09 | doing | 修复 hybrid 迟到绘制与销毁后画布重建 | + +已关闭的 206 项仍完整保存在 risks.json,修复证据不删除。本清单不代替未来用户主导的复盘,也不触发新的检查任务。 diff --git a/refactor/risks.json b/refactor/risks.json index 7bbc736f2..a9bd6b89c 100644 --- a/refactor/risks.json +++ b/refactor/risks.json @@ -6898,11 +6898,13 @@ "evidence": [ "refactor/baselines/mb-hour-av-breach.json", "refactor/changes/2026-09-16-PKG-MB-09-av-breach.md", - "test/soak/mediabunny.spec.js" + "test/soak/mediabunny.spec.js", + "refactor/baselines/self-test-handoff-stop.json", + "refactor/self-test-handoff.md" ], - "compatibleResolution": "Keep the running test and original 250ms gate. Distinguish delayed presentation, catch-up draws, sustained clock drift and host scheduling using bounded controls after preserving the terminal result; fix a reproduced project defect without changing the public dropLateFrames default.", + "compatibleResolution": "2026-09-16 user requested stopping autonomous work. Preserve the interrupted run and original 250ms gate; defer diagnosis. If resumed, distinguish delayed presentation, catch-up draws, sustained clock drift and host scheduling with bounded controls before changing code; retain the public dropLateFrames default.", "closureCriteria": "Retain the first failing samples and terminal report; establish cause with appropriate historical/native controls, fix any confirmed project regression, and complete unchanged duration/cleanup requirements with a justified clock/presentation interpretation. A later passing run alone does not close this risk.", - "workspaceState": "Running-at-capture, not a final report: around 1767 seconds both Chromium cases using the same candidate proxy reach approximately 549ms/570ms max delta; visibility, advancing media/draws, node bounds and lack of media errors remain intact. Core-specific, historical-proxy and OS-cause claims are unproven." + "workspaceState": "Running-at-capture, not a final report: around 1767 seconds both Chromium cases using the same candidate proxy reach approximately 549ms/570ms max delta; visibility, advancing media/draws, node bounds and lack of media errors remain intact. Core-specific, historical-proxy and OS-cause claims are unproven. Superseded running status: session34354 was interrupted at user request around3491 seconds of the first1x phase, exit1; original processes and8084 listener are absent. No completed four-case report or successful cleanup assertion is claimed. See self-test-handoff-stop.json." } ] } diff --git a/refactor/self-test-handoff.md b/refactor/self-test-handoff.md new file mode 100644 index 000000000..febd03927 --- /dev/null +++ b/refactor/self-test-handoff.md @@ -0,0 +1,57 @@ +# 用户自测交接(2026-09-16) + +用户明确要求:重构已持续近六天,尽快停止当前任务;不会马上发布 npm,后续由用户长期自测,非必要问题留待以后。本记录覆盖此前自动推进完整计划的安排。停止新增实施工作,保留已有成果和证据,不以“全部完善”作为本轮交付条件。 + +用户随后要求把全部遗留问题记录清楚,见[逐项遗留问题清单](remaining-issues.md)。 +它完整汇总主台账 77 条 open、5 条按范围接受的差异和独立分支 MB-DROP-01, +并关联 60 项延期任务;206 条已关闭记录及其修复证据仍保留在原台账。 + +## 当前可使用的代码 + +- 主工作目录:`D:\github\ArtPlayer`,分支 `codex/compatible-modernization`。本次交接前提交为 `78e3107b688c940ef44b773d72327fd89b62481c`。交接提交只更新文档、状态与停止证据,不修改运行时、依赖或产物。 +- 主计划交接前 226 项 done、24 项 doing、36 项 todo。后两类共 60 项延期,保留原状态、验收要求、证据和依赖;它们不是 60 个未重构插件,也不能据此推算源码完成百分比。新增交接文档任务完成后为 227 done / 60 deferred。 +- 核心和生态已有大量源码、类型、模块拆分、测试及维护文档提交;本轮不重新认证所有包。当前成果用于自测,不宣称全部兼容验收完成或可直接发布。 +- 保留 Node `.node-version` 指定版本与 Yarn Classic 1.22.22;使用 `yarn dev` 选择待测包,打开 `http://localhost:8082`。需要更新某包生产产物时使用 `yarn build `。本次交接没有重新启动开发服务或全包构建。 +- 已有包内 `ARCHITECTURE.md` / README、[任务表](plan.md)、[类型规则](type-compatibility-policy.md)和[风险表](risk-table.md)继续作为维护依据。 + +## 本轮省略并延期的流程 + +| 流程 | 本轮安排 | 以后何时处理 | +| --- | --- | --- | +| 小时级播放、压力、泄漏和反复稳定性测试 | 停止当前长测,不重启到通过 | 自测发现相关问题或用户指定稳定性专项时 | +| 全浏览器、旧版本组合、真机、投屏接收端与外部 SDK 全矩阵 | 保留已测证据和缺口,不等待全部设备 | 按用户实际环境优先,正式发布前再决定覆盖范围 | +| 浏览器/第三方 SDK 历史缺陷和边缘行为 | 记录现象及影响,停止继续深挖 | 用户遇到、影响主要功能或安排专项时 | +| 性能深挖、包体进一步优化、低优先级内部完善 | 延期,不追加新的重构任务 | 用户自测反馈后排序 | +| 全包候选重新打包、完整回退演练、许可来源补证 | 延期,旧候选指纹不能冒充当前准入 | 确定发布批次后 | +| npm 工作流补全、远端 CI/CD 准入与发布验证 | 保留已实现配置,未验证部分不称完成 | 用户要求准备发布时 | +| REVIEW-01/02/03 正式复盘 | 本轮不启动 | 用户另行指导 | + +这只改变本轮工作范围,不删除测试、不放宽失败断言、不关闭已知风险,也不取消未来发布所需检查。当前不执行 push、部署或 npm 发布。 + +## 停止的长测与重要未决项 + +- MediaBunny 长测会话 `34354` 已由用户收缩范围后中断,工具返回退出码 1。已核对该次 Yarn、服务器、两个 worker 的原 PID 不再存在,8084 无监听。中断不能证明正常销毁检查通过,也不能记成完整运行失败后的自动清理通过。 +- 两个 Chromium 新旧核心组合在约 1767 秒时记录最大画帧时间戳/音频时钟差约 549ms / 570ms,超过 250ms 门槛。它们使用同一候选 proxy;不能推断旧 proxy 的原生测试同样失败,也未证明用户可听见的持续音画偏移。MB-SYNC-01 保留开放。 +- 终止时快照见 [停止证据](baselines/self-test-handoff-stop.json)。原始日志保留于 `refactor/.cache/mb09-hour-browser.log` 与 `refactor/.cache/soak/results/*/progress.jsonl`;本次不产生完整四组合通过结论。 +- 尚有 Windows WebKit 媒体能力、HLS/DASH 历史 SDK、JASSUB 绘制、自动缩略图、真机/Cast、站点资产来源和未发布链接等未决项;具体范围以各任务证据和风险表为准,不在本轮继续修复。 +- 已有候选包映射 `refactor/.cache/packages/run-kK0VCe/browser-artifacts.json` 的部分源输入指纹因后续共享工程变化过期;可追溯旧测试,但不是当前发布绿灯。本轮不为交接重复打包全部候选。 + +## 单独保存、尚未合入的修复 + +`D:\github\ArtPlayer-mb-queued-frame` / `codex/mb-queued-frame-fix` 的提交 +`1af2c1347866590a7341316dcf304de4e5ac0a9a` 保存 PKG-MB-DROP-01:显式启用 +`dropLateFrames` 时,已排队帧到期仍按当前音频时钟判断是否过晚,默认 false 行为保留。 + +该分支已有旧产物新用例 7 通过 / 3 失败、修复后视频 48/48、main 与 legacy 各 +156/156、类型/lint/build 与提交审计证据;原生浏览器专项仍未执行,不能称完整验收。 +此问题也不等于默认模式长测的 MB-SYNC-01。修复不合入主交付分支,不删除该工作区。 +该分支的旧任务状态尚为 doing,本轮执行安排明确延期;未来先读本交接记录再决定是否恢复。 +其 node_modules 通过 junction 复用主目录依赖,后续安装依赖会影响主目录,应先处理隔离。 + +## 自测与后续接续 + +由用户决定自测顺序。可从日常使用的核心播放、切源、字幕、弹幕和常用插件开始;记录包名、浏览器、媒体样本、复现步骤和控制台错误即可,不要求先跑完整测试套件。 + +AI 不再依据旧 progress 中“下一步继续”或 doing 状态自动推进。用户之后点名问题时,仅恢复对应任务、修复和必要的定向验证;保持每任务独立提交。用户安排发布准备前,不自行开启三轮复盘或发布工作。 + +本次交接只执行计划/链接校验、Git 差异检查和提交审计。没有新增生产修改,因此不重跑全仓测试或浏览器矩阵。 diff --git a/refactor/tasks.json b/refactor/tasks.json index 2dc6d31fa..fa9a1e3ee 100644 --- a/refactor/tasks.json +++ b/refactor/tasks.json @@ -750,7 +750,7 @@ "ENG-09", "ENG-10" ], - "status": "doing", + "status": "deferred", "risk": "H", "deliverable": "OS/Node/TS/浏览器与影响范围矩阵、缓存、超时、汇总检查和 artifact 报告", "acceptance": "固定安装、失败/取消不误报、核心影响全生态;检查只读,失败证据可追溯", @@ -799,8 +799,11 @@ "changes/2026-09-15-CI-01-installed-firefox.md", "baselines/ci-installed-firefox-validation.json", "changes/2026-09-15-CI-01-installed-webkit.md", - "baselines/ci-installed-webkit-validation.json" - ] + "baselines/ci-installed-webkit-validation.json", + "self-test-handoff.md" + ], + "statusBeforeDeferral": "doing", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "CI-02", @@ -840,11 +843,15 @@ "CI-NPM-02", "CI-NPM-03" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "候选准备、精确 artifact 发布配置、OIDC 评估、版本/tag/registry 预检和部分失败恢复", "acceptance": "不自动发布;明确逐包信任前置和 dry run 限制,不能重建未验证内容或重发冲突版本;按版本清单校验各包下一 major 和预发布/正式 tag,保留旧核心支持范围", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "CI-04", @@ -864,11 +871,15 @@ "SITE-EDITOR-VAST-01", "CI-JASSUB-SOURCE-01" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "静态/干净环境检查、真实 PR 正反例、候选 dry run、required checks/Pages/npm 必需配置状态及运维指南", "acceptance": "必要 Actions 证据和远端配置核对齐全;缺失保持未完成,真实 publish/deploy 仍在授权发布步骤执行", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "scope": [ @@ -1481,7 +1492,7 @@ "PKG-CHAPTER-04", "CORE-22" ], - "status": "doing", + "status": "deferred", "risk": "M", "deliverable": "chapter + quality/thumbnail、移动和全屏进度场景", "acceptance": "最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成", @@ -1493,8 +1504,11 @@ "changes/2026-09-15-PKG-CHAPTER-05-native-timing.md", "baselines/chapter-native-timing-validation.json", "changes/2026-09-16-PKG-CHAPTER-05-major-timing.md", - "baselines/chapter-major-timing-validation.json" - ] + "baselines/chapter-major-timing-validation.json", + "self-test-handoff.md" + ], + "statusBeforeDeferral": "doing", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-CHAPTER-06", @@ -1508,11 +1522,15 @@ "ENG-07", "PKG-CHAPTER-HOVER-01" ], - "status": "todo", + "status": "deferred", "risk": "M", "deliverable": "chapter.js 示例、产物和变更记录", "acceptance": "tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-AMBILIGHT-01", @@ -1638,7 +1656,7 @@ "PKG-CANVAS-04", "PKG-FACTORY-01" ], - "status": "doing", + "status": "deferred", "risk": "M", "deliverable": "原生 video、canvas proxy 的能力边界及销毁无帧循环", "acceptance": "最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成", @@ -1646,8 +1664,11 @@ "changes/2026-09-12-PKG-AMBILIGHT-PROXY-01-sampling.md", "ambilight-validation.md", "changes/2026-09-14-PKG-AMBILIGHT-05-installed-combination.md", - "baselines/ambilight-installed-validation.json" - ] + "baselines/ambilight-installed-validation.json", + "self-test-handoff.md" + ], + "statusBeforeDeferral": "doing", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-AMBILIGHT-06", @@ -1660,11 +1681,15 @@ "PKG-AMBILIGHT-05", "ENG-07" ], - "status": "todo", + "status": "deferred", "risk": "M", "deliverable": "ambilight.js 示例及样式/分发验证", "acceptance": "tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-AUDIO-01", @@ -1763,7 +1788,7 @@ "CORE-24", "PKG-AUDIO-BUFFER-01" ], - "status": "doing", + "status": "deferred", "risk": "H", "deliverable": "主视频切源和缓冲恢复,多实例独立音频、旧核心", "acceptance": "最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成", @@ -1773,8 +1798,11 @@ "baselines/audio-combinations-checkpoint.json", "audio-validation.md", "changes/2026-09-15-PKG-AUDIO-05-prefix.md", - "baselines/audio-prefix-validation.json" - ] + "baselines/audio-prefix-validation.json", + "self-test-handoff.md" + ], + "statusBeforeDeferral": "doing", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-AUDIO-06", @@ -1787,11 +1815,15 @@ "PKG-AUDIO-05", "ENG-07" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "audio.track.js 示例与运行返回值一致的声明", "acceptance": "tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-AUTO-THUMB-01", @@ -1849,7 +1881,7 @@ "CORE-19", "PKG-AUTO-THUMB-07" ], - "status": "doing", + "status": "deferred", "risk": "H", "deliverable": "隐藏 video、seek 队列、canvas 编码与 Blob URL 清理", "acceptance": "结构变化和缺陷修复分开记录;原 API/事件/资源生命周期通过", @@ -1866,8 +1898,11 @@ "changes/2026-09-14-PKG-AUTO-THUMB-03-first-seek.md", "baselines/auto-thumbnail-first-seek.json", "changes/2026-09-14-PKG-AUTO-THUMB-03-native-decoder.md", - "baselines/auto-thumbnail-native-decoder.json" - ] + "baselines/auto-thumbnail-native-decoder.json", + "self-test-handoff.md" + ], + "statusBeforeDeferral": "doing", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-AUTO-THUMB-04", @@ -1915,11 +1950,15 @@ "PKG-AUTO-THUMB-03", "PKG-AUTO-THUMB-13" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "旧核心/候选核心预览、多次加载无过期缩略图覆盖", "acceptance": "最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-AUTO-THUMB-06", @@ -1932,11 +1971,15 @@ "PKG-AUTO-THUMB-05", "ENG-07" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "auto.thumbnail.js、三种产物和内存/URL 证据", "acceptance": "tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-VTT-THUMB-01", @@ -2042,15 +2085,18 @@ "PKG-VTT-THUMB-04", "CORE-22" ], - "status": "doing", + "status": "deferred", "risk": "M", "deliverable": "鼠标和移动进度、全屏、切源、chapter 组合", "acceptance": "最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成", "evidence": [ "changes/2026-09-14-PKG-VTT-THUMB-05-combinations.md", "baselines/vtt-thumbnail-combinations.json", - "baselines/vtt-thumbnail-core.json" - ] + "baselines/vtt-thumbnail-core.json", + "self-test-handoff.md" + ], + "statusBeforeDeferral": "doing", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-VTT-THUMB-06", @@ -2063,11 +2109,15 @@ "PKG-VTT-THUMB-05", "ENG-07" ], - "status": "todo", + "status": "deferred", "risk": "M", "deliverable": "vtt.thumbnail.js、VTT/图片资源解析和产物验证", "acceptance": "tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-HLS-01", @@ -2168,7 +2218,7 @@ "PKG-HLS-04", "CORE-22" ], - "status": "doing", + "status": "deferred", "risk": "H", "deliverable": "固定历史及当前 SDK 归档、真实 worker/多音轨组、外部选择与重绑定浏览器证据", "acceptance": "受支持桌面 MSE 引擎与新旧核心通过;无 worker 回退伪通过,设备缺口仍由 PKG-HLS-05 保持未完成", @@ -2185,8 +2235,11 @@ "changes/2026-09-15-PKG-HLS-SDK-01-controller-state.md", "baselines/hls-controller-validation.json", "changes/2026-09-15-PKG-HLS-SDK-01-native-exception.md", - "baselines/hls-native-validation.json" - ] + "baselines/hls-native-validation.json", + "self-test-handoff.md" + ], + "statusBeforeDeferral": "doing", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-HLS-05", @@ -2200,11 +2253,15 @@ "CORE-22", "PKG-HLS-SDK-01" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "本地多码率 HLS、换成无轨道来源、旧核心和最终核心", "acceptance": "最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-HLS-06", @@ -2218,11 +2275,15 @@ "ENG-07", "PKG-HLS-PACK-01" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "hls.control.js、依赖范围与回退记录", "acceptance": "tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-DASH-01", @@ -2363,7 +2424,7 @@ "PKG-DASH-SEEK-01", "PKG-DASH-CLEANUP-01" ], - "status": "doing", + "status": "deferred", "risk": "H", "deliverable": "固定 dash.js 4.5.2/5.2.1 与本地 DASH 实际清晰度/音轨、高亮、Auto 和换源组合", "acceptance": "最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成", @@ -2377,8 +2438,11 @@ "changes/2026-09-12-PKG-DASH-05-sdk-events.md", "baselines/dash-sdk-events-validation.json", "changes/2026-09-12-PKG-DASH-05-seek-diagnosis.md", - "baselines/dash-seek-diagnosis.json" - ] + "baselines/dash-seek-diagnosis.json", + "self-test-handoff.md" + ], + "statusBeforeDeferral": "doing", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-DASH-06", @@ -2392,11 +2456,15 @@ "ENG-07", "PKG-DASH-MENU-01" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "dash.control.js、支持的 dash.js 版本与产物", "acceptance": "tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-MULTI-SUB-01", @@ -2539,7 +2607,7 @@ "PKG-MULTI-SUB-07", "PKG-MULTI-SUB-08" ], - "status": "doing", + "status": "deferred", "risk": "H", "deliverable": "与核心字幕/偏移/全屏组合,旧名称调用不变", "acceptance": "最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成", @@ -2548,8 +2616,11 @@ "baselines/multiple-subtitles-combinations-validation.json", "baselines/multiple-subtitles-cores.json", "changes/2026-09-14-PKG-MULTI-SUB-05-seek-diagnostics.md", - "baselines/multiple-subtitles-seek-diagnostics.json" - ] + "baselines/multiple-subtitles-seek-diagnostics.json", + "self-test-handoff.md" + ], + "statusBeforeDeferral": "doing", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-MULTI-SUB-06", @@ -2566,11 +2637,15 @@ "PKG-MULTI-SUB-10", "PKG-MULTI-SUB-11" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "multiple.subtitles.js、parser 来源许可及打包边界", "acceptance": "tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-JASSUB-01", @@ -2677,11 +2752,15 @@ "PKG-JASSUB-09", "PKG-JASSUB-10" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "真实 worker/WASM 字幕渲染与全屏、旧核心测试", "acceptance": "最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-JASSUB-06", @@ -2695,11 +2774,15 @@ "ENG-07", "CI-JASSUB-SOURCE-01" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "jassub.js、外部资源路径、许可和离线失败记录;接续 VENDOR-04/05 完整组件/字体通知、LGPL 源码分发核对及六份未明确字体的分发处置", "acceptance": "tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录;来源身份已由01冻结,完整通知和未明确字体的发布处理必须闭环,不能以来源相同替代许可结论", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-JASSUB-07", @@ -2819,15 +2902,18 @@ "PKG-MASK-04", "CORE-22" ], - "status": "doing", + "status": "deferred", "risk": "H", "deliverable": "真实模型和 danmuku/seek/全屏组合,GPU 资源释放", "acceptance": "最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成", "evidence": [ "changes/2026-09-14-PKG-MASK-05-native-checkpoint.md", "baselines/danmuku-mask-native-validation.json", - "baselines/danmuku-mask-historical-cores.json" - ] + "baselines/danmuku-mask-historical-cores.json", + "self-test-handoff.md" + ], + "statusBeforeDeferral": "doing", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-MASK-06", @@ -2841,11 +2927,15 @@ "ENG-07", "PKG-DANMUKU-MASK-LOAD-01" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "danmuku.mask.js、资源版本/许可、CPU fallback 和包体积证据", "acceptance": "tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-ASR-01", @@ -2947,7 +3037,7 @@ "PKG-ASR-09", "PKG-ASR-10" ], - "status": "doing", + "status": "deferred", "risk": "H", "deliverable": "真实 WebAudio 分块、播放暂停/切源/销毁,不引入网络 ASR", "acceptance": "最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成", @@ -2964,8 +3054,11 @@ "changes/2026-09-15-PKG-ASR-05-no-audio.md", "baselines/asr-no-audio-validation.json", "changes/2026-09-15-PKG-ASR-05-initial-error.md", - "baselines/asr-initial-error-validation.json" - ] + "baselines/asr-initial-error-validation.json", + "self-test-handoff.md" + ], + "statusBeforeDeferral": "doing", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-ASR-06", @@ -2978,11 +3071,15 @@ "PKG-ASR-05", "ENG-07" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "asr.js、Worklet 资源、输出格式与声明证据", "acceptance": "tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-ADS-01", @@ -3083,14 +3180,17 @@ "PKG-ADS-04", "CORE-22" ], - "status": "doing", + "status": "deferred", "risk": "H", "deliverable": "本地广告 fixture、多实例、正常结束/跳过/销毁;核验历史关联核心 4.5.5、发布 5.4.1 与候选核心的实际归档/能力/媒体组合", "acceptance": "最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成", "evidence": [ "changes/2026-09-12-PKG-ADS-05-browser.md", - "baselines/ads-ui-visibility-validation.json" - ] + "baselines/ads-ui-visibility-validation.json", + "self-test-handoff.md" + ], + "statusBeforeDeferral": "doing", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-ADS-06", @@ -3103,11 +3203,15 @@ "PKG-ADS-05", "ENG-07" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "ads.js/README/声明一致;旧 require(pkg).default、原 dist 路径、当前 callable/ESM/legacy 的隔离 tarball 及浏览器验收", "acceptance": "tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-VAST-01", @@ -3213,7 +3317,7 @@ "PKG-VAST-04", "CORE-22" ], - "status": "doing", + "status": "deferred", "risk": "H", "deliverable": "真实IMA广告播放、错误后主视频恢复、会话重建与销毁;核验npm5.1.7/npm5.4.0/候选5.4.1核心,VAST VPN外部脚本例外逐项记录,不将受控SDK当作实际IMA验收", "acceptance": "最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成", @@ -3223,8 +3327,11 @@ "changes/2026-09-14-PKG-VAST-05-skip-checkpoint.md", "baselines/vast-skip-validation.json", "changes/2026-09-15-CI-01-vast-installed.md", - "baselines/ci-vast-installed-validation.json" - ] + "baselines/ci-vast-installed-validation.json", + "self-test-handoff.md" + ], + "statusBeforeDeferral": "doing", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-VAST-06", @@ -3237,11 +3344,15 @@ "PKG-VAST-05", "ENG-07" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "vast.js、SDK 资源、声明消费和独立版本记录;核验实际发布 namespace default、历史深路径、ESM和准确声明,版本按政策2.0.0由REL-09统一处理", "acceptance": "tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-CAST-01", @@ -3339,15 +3450,18 @@ "PKG-CAST-04", "CORE-22" ], - "status": "doing", + "status": "deferred", "risk": "H", "deliverable": "stub 测试之外记录实际 Cast 设备会话、源更新和断开", "acceptance": "最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成", "evidence": [ "changes/2026-09-16-PKG-CAST-05-real-sdk.md", "baselines/chromecast-real-sdk-validation.json", - "chromecast-validation.md" - ] + "chromecast-validation.md", + "self-test-handoff.md" + ], + "statusBeforeDeferral": "doing", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-CAST-06", @@ -3360,11 +3474,15 @@ "PKG-CAST-05", "ENG-07" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "chromecast.js、SDK URL/权限能力及待支持环境说明", "acceptance": "tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-DPIP-01", @@ -3468,14 +3586,17 @@ "PKG-CANVAS-04", "PKG-MB-04" ], - "status": "doing", + "status": "deferred", "risk": "H", "deliverable": "原生视频及两个 proxy、键盘/焦点/全屏与关闭还原", "acceptance": "最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成", "evidence": [ "changes/2026-09-12-PKG-DPIP-05-native-checkpoint.md", - "baselines/dpip-native-validation.json" - ] + "baselines/dpip-native-validation.json", + "self-test-handoff.md" + ], + "statusBeforeDeferral": "doing", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-DPIP-06", @@ -3488,11 +3609,15 @@ "PKG-DPIP-05", "ENG-07" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "document.pip.js、浏览器能力矩阵、旧接口与恢复证据", "acceptance": "tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-DANMUKU-01", @@ -3655,7 +3780,7 @@ "CORE-22", "PKG-DANMUKU-START-01" ], - "status": "doing", + "status": "deferred", "risk": "H", "deliverable": "最终核心/旧核心、mask/fullscreen/PiP 组合报告", "acceptance": "性能无未解释退化,反复装卸无累计资源", @@ -3670,8 +3795,11 @@ "changes/2026-09-15-CI-01-installed-webkit.md", "baselines/ci-installed-webkit-validation.json", "changes/2026-09-16-PKG-DANMUKU-START-01-first-sample.md", - "baselines/danmuku-start-validation.json" - ] + "baselines/danmuku-start-validation.json", + "self-test-handoff.md" + ], + "statusBeforeDeferral": "doing", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-DANMUKU-09", @@ -3686,11 +3814,15 @@ "PKG-DANMUKU-MASK-LOAD-01", "PKG-DANMUKU-START-01" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "danmuku.js、README、声明、worker 与产物", "acceptance": "tarball 和静态 icons 等旧调用通过,有独立回退版本", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-CANVAS-01", @@ -3796,7 +3928,7 @@ "PKG-FACTORY-01", "PKG-CANVAS-SUBTITLE-01" ], - "status": "doing", + "status": "deferred", "risk": "H", "deliverable": "真实 video/canvas 绘制、字幕和 document PiP 恢复", "acceptance": "最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成", @@ -3804,8 +3936,11 @@ "changes/2026-09-14-PKG-CANVAS-05-native-pip.md", "baselines/canvas-dpip-validation.json", "baselines/canvas-subtitles-validation.json", - "baselines/ambilight-installed-validation.json" - ] + "baselines/ambilight-installed-validation.json", + "self-test-handoff.md" + ], + "statusBeforeDeferral": "doing", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-CANVAS-06", @@ -3818,11 +3953,15 @@ "PKG-CANVAS-05", "ENG-07" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "canvas.js、三种产物、调用兼容与资源证据", "acceptance": "tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-MB-01", @@ -4013,7 +4152,7 @@ "PKG-MB-08", "CORE-22" ], - "status": "doing", + "status": "deferred", "risk": "H", "deliverable": "跨浏览器能力、长播放、DPiP、HLS 音轨/质量报告", "acceptance": "资源释放、事件顺序、AV sync 与支持范围满足基线", @@ -4026,8 +4165,11 @@ "changes/2026-09-16-PKG-MB-09-hour-soak.md", "baselines/mb-hour-soak-start.json", "changes/2026-09-16-PKG-MB-09-av-breach.md", - "baselines/mb-hour-av-breach.json" - ] + "baselines/mb-hour-av-breach.json", + "self-test-handoff.md" + ], + "statusBeforeDeferral": "doing", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-MB-10", @@ -4040,11 +4182,15 @@ "PKG-MB-09", "ENG-07" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "mediabunny.js、README、依赖版本、三产物和许可; 拆分media声明后的独立编辑器生成/辅助文件过滤与语义检查(IFRAME-04全量生成时暴露)", "acceptance": "tarball 可消费、无意外依赖升级、旧调用与回退可用", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-IFRAME-01", @@ -4148,7 +4294,7 @@ "PKG-IFRAME-04", "CORE-22" ], - "status": "doing", + "status": "deferred", "risk": "H", "deliverable": "真实同源/跨源 iframe、既有 commit 协议;安全变化有独立结论;新旧核心/demo、实际 BFCache/设备和外部中断导航验收,旧端无文档标记的限制明确", "acceptance": "最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成", @@ -4158,8 +4304,11 @@ "changes/2026-09-13-PKG-IFRAME-05-history.md", "baselines/iframe-history-validation.json", "changes/2026-09-15-CI-01-iframe-installed.md", - "baselines/ci-iframe-installed-validation.json" - ] + "baselines/ci-iframe-installed-validation.json", + "self-test-handoff.md" + ], + "statusBeforeDeferral": "doing", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-IFRAME-06", @@ -4172,11 +4321,15 @@ "PKG-IFRAME-05", "ENG-07" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "iframe.js、示例集成和原 script/class 导出验证;旧包名/额外helper深入口与新工具名的迁移结论; 保留旧npm Function回调及namespace/helper与工具类的区别,核验实际编译后消费而非仅声明通过", "acceptance": "tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-TOOL-THUMB-01", @@ -4284,15 +4437,18 @@ "PKG-TOOL-THUMB-04", "CORE-22" ], - "status": "doing", + "status": "deferred", "risk": "H", "deliverable": "工具独立浏览器使用,生成缩略图在核心中显示", "acceptance": "最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成", "evidence": [ "changes/2026-09-16-PKG-TOOL-THUMB-05-core-combinations.md", "baselines/thumbnail-core-validation.json", - "baselines/thumbnail-core.json" - ] + "baselines/thumbnail-core.json", + "self-test-handoff.md" + ], + "statusBeforeDeferral": "doing", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-TOOL-THUMB-06", @@ -4305,11 +4461,15 @@ "PKG-TOOL-THUMB-05", "ENG-07" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "tool.thumbnail.js、历史 ESM 兼容文件、types 路径和 tarball", "acceptance": "tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "SITE-01", @@ -4632,7 +4792,7 @@ "SITE-VCONSOLE-01", "SITE-CONSOLE-01" ], - "status": "doing", + "status": "deferred", "risk": "M", "deliverable": "VitePress 构建、链接与嵌入 demo 检查", "acceptance": "文档构建、链接、嵌入路径与声明注入通过;真实完整 demo 保留 EX-03 独立门槛;核对 ENG-PM-01 登记的搜索 peer 范围和真实搜索行为", @@ -4640,8 +4800,11 @@ "changes/2026-09-16-SITE-05-search.md", "baselines/site05-search.json", "changes/2026-09-16-SITE-05-links-editor.md", - "baselines/site05-links-editor.json" - ] + "baselines/site05-links-editor.json", + "self-test-handoff.md" + ], + "statusBeforeDeferral": "doing", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "SITE-06", @@ -4654,11 +4817,15 @@ "SITE-05", "SITE-07" ], - "status": "todo", + "status": "deferred", "risk": "M", "deliverable": "维护指南和站点变更记录", "acceptance": "未手改 generated 目录,旧 URL 可用、部署与检查分离", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "SITE-07", @@ -4671,7 +4838,7 @@ "dependsOn": [ "SITE-01" ], - "status": "doing", + "status": "deferred", "risk": "H", "deliverable": "Monaco/vConsole/console bundle/字体和样本的冻结来源、可复现构建或替代与站点 notices", "acceptance": "接续 SITE-01 的字节与换行差异证据;完整许可随实际分发,consoleLog/global/CSS/worker 与旧 URL 兼容;缺字体/媒体使用依据明确处置;资产变更后执行编辑器/移动/字幕/示例回归,不以来源指纹替代授权或运行证据", @@ -4750,8 +4917,11 @@ "baselines/monaco-unicode-validation.json", "changes/2026-09-15-SITE-07-font-notices.md", "baselines/site-font-notices-provenance.json", - "baselines/site-font-notices-validation.json" - ] + "baselines/site-font-notices-validation.json", + "self-test-handoff.md" + ], + "statusBeforeDeferral": "doing", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "EX-01", @@ -4828,11 +4998,15 @@ "PKG-IFRAME-06", "PKG-TOOL-THUMB-06" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "8082 全 demo、HLS/DASH/FLV/MPEGTS/WebTorrent 集成记录", "acceptance": "旧 URL/参数/脚本加载保持;网络/SDK 限制明确,不静默跳过;覆盖编辑器重复 Run 和 ESM/i18n/mobile/iframe,记录实际候选脚本及状态隔离证据;依据 BASE-04 路径台账逐项消除 not-run,处理 BASE-DEMO-01", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "MOD-01", @@ -4949,11 +5123,15 @@ "PKG-MB-10", "ENG-08" ], - "status": "todo", + "status": "deferred", "risk": "M", "deliverable": "帧/队列/推理/音画同步与资源长期运行比较", "acceptance": "不改默认算法/阈值,性能改善有证据;无收益则保留旧实现", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "MOD-05", @@ -4969,11 +5147,15 @@ "MOD-04", "MOD-DEV-01" ], - "status": "todo", + "status": "deferred", "risk": "M", "deliverable": "最终 runtime/packageManager/构建配置及性能台账", "acceptance": "干净安装和全包检查通过;Bun 未采用有理由,不为状态强行切换", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "scope": [ @@ -5077,7 +5259,7 @@ "REL-09", "REL-04" ], - "status": "doing", + "status": "deferred", "risk": "H", "deliverable": "各候选本地 tarball/integrity 与新旧核心/插件消费者验证报告,外部门槛单独标注", "acceptance": "隔离安装和可自动化组合通过;设备结论不伪造,最终发布绑定同一候选内容;在目标 major 版本确定后构建 pack,不在测试后改版本;逐包核验完整回退产物、实际候选版本/integrity、应用导入与冻结锁,重跑对应回退并保留报告;缺失历史分发不准入", @@ -5102,8 +5284,11 @@ "baselines/shared-tools-candidate-refresh-check.json", "changes/2026-09-16-REL-02-site-inputs-refresh.md", "baselines/site-inputs-candidate-refresh.json", - "baselines/site-inputs-candidate-refresh-check.json" - ] + "baselines/site-inputs-candidate-refresh-check.json", + "self-test-handoff.md" + ], + "statusBeforeDeferral": "doing", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "REL-03", @@ -5118,11 +5303,15 @@ "SITE-06", "MOD-05" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "Safari/移动/PiP/Cast/IMA/模型/长播放完整报告", "acceptance": "包集成与全项目真机/SDK/压力结论齐全才完成本汇总;独立批次先建立自己的完整门槛子任务", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "REL-04", @@ -5171,11 +5360,15 @@ "ENG-13", "DOC-REVIEW-01" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "22 包结构、类型、旧 API/路径、测试盲区和维护文档的逐包报告", "acceptance": "本轮阻断项由独立修复任务关闭并复测;环境缺口转交下一轮,不宣称已发布就绪", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "REVIEW-02", @@ -5188,11 +5381,15 @@ "REVIEW-01", "REL-03" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "Chrome 交互、自动浏览器、新旧组合、真机/SDK/性能/资源的全范围报告", "acceptance": "所需环境证据齐全,前轮修复再次核对;本轮阻断项关闭,无关 mock 不替代真实验收", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "REVIEW-03", @@ -5206,11 +5403,15 @@ "REL-04", "CI-04" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "实际候选 integrity、干净安装构建/消费者、入口/许可/版本/tag/回退及前轮证据汇总", "acceptance": "最终候选完整检查通过,发布阻断项为零;准备可审阅的批次报告,不自动执行 publish;逐包核对 major 目标,不能用大版本豁免旧 API 兼容", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "REL-05", @@ -5224,11 +5425,15 @@ "REL-04", "REVIEW-03" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "候选 tag、完整产物 integrity、反馈与复现记录", "acceptance": "实际发布授权/操作/版本可追溯;本计划不自动执行发布", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "REL-06", @@ -5240,11 +5445,15 @@ "dependsOn": [ "REL-05" ], - "status": "todo", + "status": "deferred", "risk": "H", "deliverable": "正式分包版本/tag/站点文档及兼容公告", "acceptance": "候选验收通过,安装/浏览器复核和回退入口就绪;候选反馈修复须独立建任务并复验三轮受影响结论,正式内容与最终验证产物一致", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "REL-07", @@ -5258,11 +5467,15 @@ "ENG-LINT-01", "ENG-LINT-02" ], - "status": "todo", + "status": "deferred", "risk": "L", "deliverable": "最终任务/设计/证据归档和维护指南", "acceptance": "全范围任务有结论、无未解释兼容缺口;遗留项有明确后续责任", - "evidence": [] + "evidence": [ + "self-test-handoff.md" + ], + "statusBeforeDeferral": "todo", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-FACTORY-01", @@ -5496,7 +5709,7 @@ "dependsOn": [ "PKG-JASSUB-08" ], - "status": "doing", + "status": "deferred", "risk": "H", "deliverable": "释放旧混合绘制 bitmap,不改变新模式的画布/时钟;销毁后切字幕不重新分配画布;来源补丁、原生排队消息及维护记录", "acceptance": "旧红新绿验证旧帧不能重建画布/解除新绘制等待;正常 hybrid 绘制保持;真实 Worker/ImageBitmap 交错、主线程及默认模式回归通过,能力缺口明确", @@ -5508,8 +5721,11 @@ "changes/2026-09-14-PKG-JASSUB-09-display.md", "baselines/jassub-display-validation.json", "changes/2026-09-15-PKG-JASSUB-09-native-call.md", - "baselines/jassub-native-call-validation.json" - ] + "baselines/jassub-native-call-validation.json", + "self-test-handoff.md" + ], + "statusBeforeDeferral": "doing", + "reason": "2026-09-16 用户要求停止本轮自主重构,交付长期自测;原验收未完成,恢复需用户另行指示。详见 self-test-handoff.md。" }, { "id": "PKG-AUTO-THUMB-07", @@ -6290,6 +6506,26 @@ "changes/2026-09-16-PKG-AUDIO-BUFFER-01-order.md", "baselines/audio-buffer-order-validation.json" ] + }, + { + "id": "DOC-HANDOFF-01", + "phase": "0 规划", + "title": "停止自主推进并交接用户自测", + "scope": [ + "workspace" + ], + "dependsOn": [ + "DOC-03" + ], + "status": "done", + "risk": "L", + "deliverable": "停止长测、保留问题和独立修复、登记延期范围及自测接续入口,汇总所有开放风险、已按范围接受的差异和延期任务", + "acceptance": "未完成项如实延期;运行进程停止;交接文档、计划与证据一致,不启动新修复或复盘", + "evidence": [ + "self-test-handoff.md", + "baselines/self-test-handoff-stop.json", + "remaining-issues.md" + ] } ] }