Files
ArtPlayer/refactor/decisions.md
T

4.0 KiB

决策记录

状态:采用方向 / 待验证 / 已拒绝 / 已替代。采用方向不代表实现完成,技术细节可由后续证据修订。

ID 状态 决策 原因与约束
ADR-001 采用方向 保留公共 Artplayer 门面、渐进替换内部 大量旧用户及插件;属性/事件/分发均是契约
ADR-002 采用方向 自有核心、插件、proxy、工具逐步 TS 化 消除实现/声明漂移;JS/TS 过渡,公开类型兼容
ADR-003 采用方向 先测试、生命周期,再大范围模块调整 已有销毁与切源风险;不能仅靠改写语言获得可靠性
ADR-004 待验证 Bun 先用于依赖管理和脚本入口 需要固定版本、干净安装和完整包验证;不替换 Node 测试语义
ADR-005 采用方向 保留 Vite/Rollup 的既有分发能力 UMD/AMD/legacy、Less/SVG/worker 兼容成本明确
ADR-006 采用方向 每包独立任务和版本,公共共享依赖谨慎增加 支持旧核心配新插件;不强制生态同步升级
ADR-007 采用方向 机器任务表 + 可读生成表 + 每次变更记录 支持 AI 接续、依赖检查和证据追溯
ADR-008 待验证 内部资源作用域和操作身份隔离 清理/取消语义待基线测试,不能先决定新增 Promise 拒绝
ADR-009 待验证 精确公共类型的兼容扩展策略 错误声明修正也可能破坏现有 TS 用户;逐项记录
ADR-010 采用方向 AI 改善工程,不默认给播放器加入远程 AI 能力 避免增加运行依赖、网络请求、成本和用户行为变化
ADR-011 采用方向 vendored 代码维持独立来源和许可 TS 迁移限自有逻辑,第三方更新独立验证
ADR-012 已拒绝 一次性重写核心并同时更换包管理器、bundler、测试框架 变量过多,难以定位回归和回退
ADR-013 采用方向 用户授权在旧接口兼容前提下主动改善全部不合理内部设计 2026-09-10 明确要求:TS 迁移伴随清晰拆分、充分有效测试、持续文档和 AI 接续能力;任务清单可按证据扩展
ADR-014 采用方向 每完成一个任务立即创建独立本地 commit 用户明确要求;实现/测试/文档/状态同次提交,主题带任务 ID,核实成功后再开始下一任务;不等同推送授权
ADR-015 采用方向 自主安装所需依赖并添加合理脚本 用户明确授权;按具体任务选型,记录用途/版本/环境/依赖归属,验证旧接口、产物与可复现执行,随任务独立提交
ADR-016 采用方向 最小基线和旧核心上的早期插件试点 DOC-07 发现原试点依赖 32 个前置任务;先验证工具闭环,再做核心大范围迁移
ADR-017 采用方向 分离准备工作、自动化验证与真实环境发布门槛 文档/本地候选不等待无关硬件;相关能力发布仍须真实证据,全项目任务范围不缩减
ADR-018 采用方向 历史失败台账与逐模块严格门槛 初始全包类型/环境不一定全绿;不掩盖既有问题、不允许新增回归,迁移包与发布范围严格验收
ADR-019 采用方向 候选产物内容绑定测试证据 来源 SHA、锁文件/工具和 tarball integrity 可追溯,内容变化后重新验证,避免测一份发布另一份

开始实现前需补齐的决定

  1. 支持的历史核心/插件版本、TS 最低版本与浏览器能力矩阵,由 BASE-01/ENG-01 登记证据。
  2. 连续切源、销毁中 Promise 的结果与错误策略,由 CORE-04/CORE-09 的变更记录明确。
  3. 真机与外部 SDK 验证环境、负责者和缺失检查的发布处理,由 ENG-05/REL-03 明确。
  4. 公共类型发现历史错误且无法完全兼容时的版本策略,由 CORE-07 和 REL-01 明确。

新决策模板

ID / 日期 / 关联任务:
状态:
问题与源码/测试证据:
选择及备选方案:
为何选择:
公开 API、类型、包分发影响:
验证方法与回退:
替代的旧决策: