# 0.2.0 正式验收整改对照

适用反馈：MoonBit 开源大赛·九月黑客松，MoonFlame 正式验收未通过。
整改范围是现有功能的正确性、可复现性与交付合规，不增加分析功能。

| 正式审核意见 | 修复 | 可复验的证据 |
| --- | --- | --- |
| 负权重可生成负宽 | 解析拒绝负数与非有限值；库聚合拒绝直接非法 Sample、空栈、累计溢出；布局与 SVG 独立检查树及几何；CLI 无效行整次失败 | `validation_wbtest.mbt`、`acceptance_test.mbt`、`python scripts/test-cli.py` |
| Apache-2.0 上游样例缺少随仓库分发的许可证与来源 | 上游 WASM 与固定提交逐字节核对；分发完整 Apache-2.0 正文；逐项说明原始、采样、转换及演示材料；记录 SHA-256；核查固定提交没有 NOTICE 文件 | `THIRD_PARTY_NOTICES.md`、`LICENSES/Apache-2.0.txt`、`testdata/SOURCES.json`、`python scripts/verify-fixtures.py`、`python scripts/verify-package.py` |

其他已确认问题同步整改：

- 自身变化在差异标注阶段直接计算，删除的子调用不会归到 `(self)`；负百分比正常舍入和显示。
- 调用关系按样本覆盖去重，自递归、互递归及宽泛查询不会重复累计同一条目。
- CLI 参数错误退出 2，数据/IO/校验错误退出 1；标准输出只放结果；输出文件在校验和计算成功后才打开。
- 过滤零匹配写空结果并覆盖旧文件，避免继续分析过期数据。
- SVG 搜索使用当前视图中匹配区间的并集；祖先、隐藏帧不参与；无命中及无效正则不保留旧结果。
- 连续缩放重新计算所有帧状态；点击祖先恢复兄弟分支；窄帧放大后可显示标签。
- 深栈聚合、物化、差异标注、布局及分析改为显式遍历栈；四后端验证不限深的 7254 层链路。
- 修正 README API 参数顺序和使用示例，新增独立消费项目编译测试及 0.2.0 迁移说明。

## 本地验证与边界

本地记录日期：2026-10-20。工具链：`moon 0.1.20260920`、`moonc 0.10.14`。
根模块 177 个测试在 wasm、wasm-gc、JS、native 上全部通过；示例负载独立模块另行测试。
真实浏览器验收覆盖两种方向、搜索并集、递归覆盖、连续缩放和窄帧标签；
Playwright 锁定为 1.64.1，浏览器通过 `PLAYWRIGHT_CHROMIUM_EXECUTABLE` 选用本地 Chromium。

Windows PowerShell 完整采样链已用安装的 `moon-pprof 0.1.3` 重跑：
编译 wasm-gc、采样三轮、转换、热点报告均完成。冻结数据未被覆盖。
安装元数据对应的上游提交及两份冻结剖面的确定性重转换已核对，详见第三方说明。

验证限制须保留：

- 本机 native 工具链运行时存在开发期 MinGW 补丁，因此本机成功不等于干净 Windows/MSVC 验证成功。
  CI 已配置 MSVC，须以本次提交的远程运行结果补齐干净环境证据。
- 当前 0.10.14 的 wasm-gc builtin `eprintln` 回退到 stdout，因此流重定向契约的 CLI
  支持 native、JS、WASI wasm；纯计算库仍验证四后端。不要用 wasm-gc CLI 管道代替受支持目标。
- 本机没有 Bash；Unix 脚本语法验证安排在 Linux CI。PowerShell 完整链路已本地执行。
- Windows native CLI 的非 ASCII 绝对路径限制应使用相对路径或 JS CLI 规避。
- 独立消费测试在临时目录使用工具链仍支持的兼容格式来绑定本地未发布模块，会显示格式迁移提示；
  仓库本身使用 `moon.mod` / `moon.pkg`，测试覆盖的是 README 中的公开调用代码。

## 发布与复验交接

当前文档描述本地整改结果，不能替代尚未运行的远程 CI 或正式验收结论。
本次基线为 `db803be`。核心正确性修复提交为 `aeb0696`，样例许可及来源材料提交为 `64d45c0`；工程验证、文档与示例更新见后续提交。
对应远程 CI 链接和 mooncakes 0.2.0 发布链接在授权推送与发布后填写，不能沿用 0.1.1 的成功记录。

复验顺序：运行 README 的检查命令；检查发布 ZIP 中的许可证和样例；
确认三平台 CI 通过；核实发布版本与提交一致；再将本文件、提交及 CI 链接提交赛事复核。
本次赛事资格以九月黑客松的具体通知为准，不套用其他批次的七月赛程。
