目标
这是 Bao 从当前 feature-complete alpha 向 100% 目标面 / production-ready stable runtime 收口的总控 Issue。
本 Issue 不重复实施细节。所有实际工作必须落在对应 Domain Issue;这里仅定义统一口径、依赖关系和最终放行门槛。
统一的“100%”定义
Bao 的 100% 不是:
- 所有上游源码一字不差复制;
- 所有 Node/Bun/Chrome/V8 能力强行伪实现;
- README 功能表全部打勾;
- 测试很多或当前全绿。
Bao 的 100% 是:
- 目标能力面 100% inventory;
- inventory 中每项必须分类为
Supported / Explicitly Unsupported / N/A,零未知、零静默漏项;
- 所有
Supported 项有真实行为测试,覆盖成功、错误、生命周期、资源/并发边界;
- 所有 Supported 测试 100% pass,skip/flaky/expected-failure 必须显式计数和裁决;
- Unsupported/N/A 有稳定技术理由和用户可见行为,禁止 fake success / no-op / stub 伪装支持;
- 测量结果绑定 Bao commit + upstream ref + 环境 + 日期,可自动重建;
- production gate 不只看功能测试,还必须通过长期运行、资源回收、消费者构建和安全边界。
Domain Issues
Cross-domain dependencies
Compatibility layer
#12 Node + #13 Bun + #14 Web + #11 CDP
四者回答“Bao 对外承诺的语言/浏览器/自动化协议到底完整到什么程度”。
Runtime layer
#15 Runtime + #20 Security + #16 Stealth
三者回答“这些能力放进同一个进程以后,生命周期、权限和身份是否仍然一致”。
Productization layer
#17 API/CLI + #18 Platform/Build + #19 Performance/Soak
三者回答“第三方是否能稳定依赖、构建、部署并长期运行”。
Stage gates
Gate A — Feature/compatibility complete
必须满足:
Gate B — Runtime beta
必须满足:
Gate C — Product beta
必须满足:
Gate D — 1.0 candidate
必须满足:
Completion accounting
建议总控只使用两种数字,避免“85% 看起来差不多”的主观完成度:
1. Classification completeness
classified inventory items / total target inventory items
必须最终达到 100%。
2. Supported conformance
passed behavior checks / total behavior checks for Supported items
stable release 必须达到 100%;任何 skip/flaky 必须先转成明确裁决。
Unsupported/N/A 不能消失,单独作为数量和原因公开。
Global hard rules
- 不允许 stub/no-op/fixed return/fake success 计 Supported。
- 不允许为了通过率删测试、静默 skip 或把失败项移出分母。
- 不允许 Servo/Bun/Node upstream 测试结果直接冒充 Bao 自己结果。
- 不允许
cargo check 冒充 consumer build/link/run。
- 不允许短时测试冒充长期 soak。
- 不允许 Realm isolation 冒充完整 OS sandbox。
- 不允许单个 JA3/UA 命中冒充 Stealth 完整性。
- 不允许每日 upstream absorb 改变本 Issue 的完成定义;upstream 前移后应更新绑定 ref 并重新计算矩阵。
当前建议状态
在 #11–#20 收口前,Bao 保持 0.x alpha 是合理的。达到 Gate A + Gate B 后可考虑进入 compatibility/runtime Beta;达到 Gate C 后再进入 production Beta;只有 Gate D 通过才建议冻结并发布 v1.0 stable。
目标
这是 Bao 从当前 feature-complete alpha 向 100% 目标面 / production-ready stable runtime 收口的总控 Issue。
本 Issue 不重复实施细节。所有实际工作必须落在对应 Domain Issue;这里仅定义统一口径、依赖关系和最终放行门槛。
统一的“100%”定义
Bao 的 100% 不是:
Bao 的 100% 是:
Supported/Explicitly Unsupported/N/A,零未知、零静默漏项;Supported项有真实行为测试,覆盖成功、错误、生命周期、资源/并发边界;Domain Issues
bao compat cdpbao compat nodebao compat bunbao compat webCross-domain dependencies
Compatibility layer
#12 Node+#13 Bun+#14 Web+#11 CDP四者回答“Bao 对外承诺的语言/浏览器/自动化协议到底完整到什么程度”。
Runtime layer
#15 Runtime+#20 Security+#16 Stealth三者回答“这些能力放进同一个进程以后,生命周期、权限和身份是否仍然一致”。
Productization layer
#17 API/CLI+#18 Platform/Build+#19 Performance/Soak三者回答“第三方是否能稳定依赖、构建、部署并长期运行”。
Stage gates
Gate A — Feature/compatibility complete
必须满足:
bao compat node|bun|web|cdp均可自动生成版本绑定报告。TBD/ “待确认” / Partial / Experimental 进入 stable promise。Gate B — Runtime beta
必须满足:
Gate C — Product beta
必须满足:
Gate D — 1.0 candidate
必须满足:
Completion accounting
建议总控只使用两种数字,避免“85% 看起来差不多”的主观完成度:
1. Classification completeness
classified inventory items / total target inventory items必须最终达到 100%。
2. Supported conformance
passed behavior checks / total behavior checks for Supported itemsstable release 必须达到 100%;任何 skip/flaky 必须先转成明确裁决。
Unsupported/N/A 不能消失,单独作为数量和原因公开。
Global hard rules
cargo check冒充 consumer build/link/run。当前建议状态
在 #11–#20 收口前,Bao 保持
0.x alpha是合理的。达到 Gate A + Gate B 后可考虑进入 compatibility/runtime Beta;达到 Gate C 后再进入 production Beta;只有 Gate D 通过才建议冻结并发布 v1.0 stable。