mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-11 05:26:15 -08:00
docs: record approved historical type compatibility policy
This commit is contained in:
1 parent
146b78d576
commit
d5562b05b7
4 files changed
+31
-8
No files matched your search
@@ -29,7 +29,7 @@ BASE 阶段必须同时采集:本分支起点源码、实际 npm 已发布 tar
|
||||
| --- | --- |
|
||||
| 内部重排、无可观察变化 | 原样保留契约,增加回归测试 |
|
||||
| 已公开且正在使用的功能 | 兼容门面转发,保持入口、返回值和时序;不能要求所有调用方改代码 |
|
||||
| 源码与声明不一致 | 分别记录运行时和 TS 用户影响,先加精确重载或扩展类型;无法兼容时标为待决,不能静默收紧 |
|
||||
| 源码与声明不一致 | 分别记录运行时和 TS 用户影响,先加精确重载或扩展类型;已获确认的历史声明冲突按[统一规则](type-compatibility-policy.md)执行,其余实质差异不能静默收紧 |
|
||||
| 文档描述了未实现的行为 | 核实发布包和使用样例,独立修复或明确记录;不把错误描述当作重构任务直接实现 |
|
||||
| 明确缺陷 | 建立复现、比较旧行为、记录修正差异和发布级别,避免为通过差分测试而永久保留缺陷 |
|
||||
| 无法验证的历史路径 | 标记缺证据及影响,不能计入兼容通过 |
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
| ADR-022 | 采用方向 | Chrome 不可用时使用 Codex 内置浏览器 | 用户明确授权;记录实际环境和能力范围,必要设备测试仍独立验收 |
|
||||
| ADR-023 | 已验证于 Audio Track | 参数类型纠正会破坏旧推断时,默认入口保留兼容类型,/runtime 复用相同运行文件提供精确类型 | PKG-AUDIO-04 的 Parameters 与无注解 update 实现证明 Partial/重载仍可能破坏旧用户;沿用核心的类型分层方向,具体包需独立编译与入口身份验证,不增加第二套实现或用 any 绕过 |
|
||||
| ADR-024 | 已验证于 CORE-24 | 切源播放意图归属当前操作,在公开 play/pause 命令入口更新,内部暂停不覆盖用户意图 | Audio-05 三引擎复现连续切源最终停在 0;新操作继承未完成操作的意图,显式暂停及其修订号终止旧恢复副作用,过期 Promise 仍保留原结算语义;不依赖用户回调之后才执行的事件监听器 |
|
||||
| ADR-025 | 用户已确认,待实施验证 | 历史声明冲突以最新已发布类型形状为准,较早差异提供迁移,合法旧JS继续兼容,/runtime提供精确类型 | 2026-09-13明确答复“接受这条规则并继续”;覆盖Canvas/Ambilight/VTT Thumbnail/Multiple Subtitles,见[type-compatibility-policy.md](type-compatibility-policy.md),不等同任务完成或发布授权 |
|
||||
|
||||
## 开始实现前需补齐的决定
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Canvas / Ambilight 工厂类型兼容取舍(待确认)
|
||||
# Canvas / Ambilight 工厂类型兼容取舍(已确认,待实施)
|
||||
|
||||
PKG-FACTORY-01 已复现当前声明的问题,但尚未修改生产声明,不能标记完成。
|
||||
本页推荐方案需要用户确认;Ads 的单独类型修正授权不适用于这里。
|
||||
2026-09-13用户已接受统一规则,见[确认记录](type-compatibility-policy.md)。本页推荐
|
||||
方向已授权;此前Ads单项授权之外的待决状态由此次确认替代,实施和验证仍须完成。
|
||||
|
||||
## 问题与真实发布对照
|
||||
|
||||
@@ -64,15 +65,14 @@ module.default({})
|
||||
|
||||
完整候选声明由 `scripts/factory-assignability.mjs` 的 declaration(pkg, 'latest-default')
|
||||
生成。当前它只是可编译的核心签名提案,尚未加入全部命名类型、格式包装和安装验收,
|
||||
不属于已经实施或批准的生产修复。
|
||||
属于已批准方向,尚不属于已经实施并验证的生产修复。
|
||||
|
||||
## 决策与后续
|
||||
|
||||
- 状态:待用户确认是否接受上述 1.0.0 TypeScript 导入迁移;不把大版本升级视为自动授权。
|
||||
- 若接受:修改两包声明和包装,补充 RuntimeFactory、全工厂赋值测试、编辑器和包内文档,
|
||||
- 状态:用户已明确接受上述较早版本TypeScript导入迁移;不因批准而跳过验证。
|
||||
- 下一步:修改两包声明和包装,补充 RuntimeFactory、全工厂赋值测试、编辑器和包内文档,
|
||||
重建并执行真实安装消费矩阵;保留逐版本负例,验证 JS 产物与浏览器证据,单独完成任务提交。
|
||||
- 若不接受:保留该风险与发布依赖,继续评估显式兼容入口;不把 optional .default、any、
|
||||
skipLibCheck 或删除历史消费者当作修复。
|
||||
- 仍不得把optional .default、any、skipLibCheck或删除历史消费者当作修复。
|
||||
- PKG-CANVAS-05、PKG-AMBILIGHT-05、REL-01 仍依赖本任务完成。
|
||||
|
||||
证据:[编译矩阵](baselines/factory-compatibility-proposals.json)、
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
# 已确认的历史类型冲突规则
|
||||
|
||||
2026-09-13,用户对以下完整问题回答“接受这条规则并继续”:保留各包最新已发布
|
||||
版本的旧类型形状,较早版本的冲突写清迁移说明;所有合法旧JavaScript调用继续
|
||||
兼容,新增/runtime提供准确类型。本次明确涉及Canvas、Ambilight、VTT Thumbnail、
|
||||
Multiple Subtitles。此确认独立于此前Ads的参数推导修正。
|
||||
|
||||
## 实施约束
|
||||
|
||||
- 从真实npm归档确定最新已发布声明;不得把重构中的候选声明当成兼容基线。
|
||||
- 保留默认工厂的完整赋值关系、参数必需性、Parameters/ReturnType及模块形状,
|
||||
不以附加必填default属性或可选重载破坏普通替代函数。
|
||||
- 正确运行时异步结果、额外可选调用及自default别名通过独立/runtime类型描述,
|
||||
与根入口复用同一运行实现。
|
||||
- 对较早export=/export-default等互相矛盾的声明,保留历史失败证据并给出迁移
|
||||
示例;这些被批准的类型差异不再等待重复确认。
|
||||
- 所有合法旧JS入口仍验证,不将类型取舍扩展成任意运行时破坏或删除旧分发入口。
|
||||
- 真实安装消费者、正反例、编辑器声明和包内文档通过后才完成相关任务。批准方案
|
||||
不等同实现完成、风险自动关闭或发布授权。
|
||||
|
||||
适用任务:PKG-FACTORY-01、PKG-VTT-THUMB-04、PKG-MULTI-SUB-04。后续记录必须注明
|
||||
采用哪一个真实版本、哪些旧类型用法需要迁移,以及/runtime的具体形状。
|
||||
Reference in new issue
Block a user