# 初步开发与验收记录

当前源码版本 0.20.6，截至 2026-10-29。这是工程证据，不代表赛事评审保证通过。

赛事口径说明：本项目采用的十项验收指南包含 Mooncakes 发布，发布记录见下文。
官网公开摘要与正式章程可能另有补充，最终以赛事通知为准。
来源：https://moonbitlang.github.io/Hackathon2026/ ；
官网文字源码：https://github.com/moonbitlang/Hackathon2026/blob/main/src/App.tsx 。

| 要求 | 当前状态与证据 |
| --- | --- |
| 初审通过后持续开发 | 沿用已通过审核的项目与公开仓库，持续提交开发内容；验收前不额外提交表格 |
| MoonBit 主实现，moonc ≥ 0.10.14 | 核心算法与 CLI 逻辑为 MoonBit；本地 moonc 0.10.14 |
| 公开仓库、清晰提交 | https://github.com/wdgodghl/moontopolens ；按功能逐步提交 |
| 结构清晰且核心功能可运行 | H0/H1 与可选 H2、点云/矩阵/序列/二维网格/三维体数据 JSON 输入、有界 NIfTI-1/4D 导入、参数扫描、多帧点云与体数据轨迹、PGM/PNG 图像、批量距离与分组、点云/强度扰动稳定性、H2 代表面及三维投影、粗网格近似分析、瓶颈距离、尺度快照、景观向量和离线 HTML 等已实现 |
| README 可复现 | 安装、命令、预期结果、算法限制、三种完整场景 |
| CI 检查/构建/测试 | GitHub Actions 包含格式、检查、双后端构建和测试、CLI 场景、应用案例、资源基准与外部区间对照、CSV 数据流程及真实 Chromium 桌面/窄屏报告回归 |
| 运行示例 | cmd/demo + examples 中的点云、矩阵、时间序列、网格、三维体素、多帧体数据、PGM、PNG、批量分组和 H2 输入；CLI smoke 已通过 |
| 核心测试 | 0.20.6 本地 JS 和 Wasm GC 各 132 个测试；另有 CSV/JSON 等价、应用案例、报告精确尺度及既有 CLI 全流程验证 |
| Mooncakes 生态发布 | [模块页](https://mooncakes.io/docs/wdgodghl/moontopolens)已公开；采用 MIT；当前发布版本与构建状态见模块页。0.20.0 的独立安装与 API 验证记录保留在下文 |
| OSI 许可证与来源 | MIT；独立实现，公开算法背景见查重记录 |

## 0.20.6 应用研究

- 四类新工作流及其统计假设、物理分割语义和预算见 [研究工作流](research-workflows.md)。
- 独立解析正方形景观穷举分布、最近固体盒距离、导出面面积、信号窗口回放与失败路径由 research-cases.mjs 核对。
- 新增九份离线研究报告的桌面/窄屏交互、键盘、导出与 axe 检查；旧九类报告回归继续保留。
- 0.20.6 JS 单元测试计数点覆盖率为 3566/5121（约 69.6%）；CLI 与浏览器端到端验证另计。
- 新增 UCI Beijing PM2.5 固定测量子集，保留 CC BY 4.0、改编步骤与源记录编号；无事件标签时不报告准确率。

## 0.20.5 精确计算与教学

- GUDHI 33 组外部对照通过，含精确稀疏 H2 欧氏输入。
- 两后端各 114 项测试，精确稀疏路径与旧路径细胞/区间一致，含跳出贪心局部最优的最短代表链测试。
- 教学、键盘、辅助技术语义树及九类报告的自动规则检查接入 CI。
- 4096 点精确流程及 8192 点边界案例，详见 exact-and-guided.md。

## 0.20.2–0.20.4 数据流程完善

- 0.20.2：按列名选取数值特征，明确选择 none/zscore/minmax，记录变换参数。
- 0.20.3：确定性最远点采样，保存原始编号和覆盖半径；16 点精确对照与 512 点输入验证通过。
- 0.20.4：完整点云坐标、三维旋转、代表链原始行/延迟窗口追溯、共同网格批量特征。
- 本地 JS 与 Wasm GC 各 109 项测试通过；批量向量与单独景观一致，非法特征范围不创建目录。
- 真实 Chromium 的桌面与窄屏报告回归通过并接入 CI。范围与复现方式见 data-workflows.md。

## 本地验证

- 类型检查和构建：JS、Wasm GC。
- 测试：0.20.0 本地两后端各 104 个测试；参考测试内部覆盖 12×11 个形状/尺度组合，匹配见证覆盖 12 对形状。
- CLI：八种基础示例、九种分析导出文件、快捷摘要、尺度推荐、同图/异图比较、帮助、错误和输出冲突路径。
- 新功能：每个示例在全部事件尺度核对快照 H0/H1 与分组数；景观 JSON/CSV/向量一致，双洞帐篷高度已核对。
- 比较：三组报告导出、原始索引与代价 CSV 一致、同图零距离与存活类数量不同路径。
- 切片：分组着色 SVG、存活代表链高亮、无坐标仅 JSON；无效选择不创建输出目录。
- HTML：通过 DOM 替身验证分析页滑块/精确输入/事件跳转/筛选/高亮/翻页、比较页维度/对角线筛选；分析页另有桌面/窄屏真实浏览器实测，见 browser-validation.md。
- 已知环路：正方形 H1 `[1,√2)`；网格中心填充 H1 `[0,1)`；短暂环路 `[0.004,0.005)` 不在均匀采样中出现，但保留在精确事件和 HTML 曲线。
- PGM：P2 示例与等价 JSON 网格的区间一致；P5 8/16 位、非法灰度、截断、输出冲突路径已验证。
- 图像预处理：Otsu 阈值、常量图、亮色前景反转、单图与批量参数元数据已核对。
- 批量：六个案例、三个配对的完整输出与总索引核对；清单中的 `../` 路径被拒绝且未创建输出目录。
- 全对矩阵：六案例 H0/H1 对称、主对角零、CSV 行数、与单独比较距离一致、离线热图与条件提醒已核对；新增四案例 H2 的零距离、截断数不一致、未分析维度三种路径，H2 CSV/热图/树图可复现；关闭开关时不生成矩阵文件。
- 尺度推荐：有限/截断 H1、无环路分簇和空特征路径均已核对；CLI 与分析、图像、批量导出的 JSON/CSV 一致，并在推荐尺度验证 H0/H1 和区间存活。
- 参数扫描：四组维数/滞后组合、统一景观采样网格、JSON/两份 CSV 的顺序与数值一致；重复或超量参数、信号长度不足会报错。
- 扩展功能：四案例层次分组与建议切分、点云八次固定扰动、参数候选排序、PNG 单图及批量输入、H2 八面体 `[1,2)` 及双侧比较均通过 CLI 场景。
- 网格填充与分页：尺度 0 的环形网格不绘制方格面，尺度 1 绘制四个；Rips 点云不绘制投影三角形。离线报告模拟超过 120 条区间，核对每页 50 条、翻页和筛选后页码重置。
- GUDHI 外部差分：30 个 Rips/cubical 案例的相应 H0/H1/H2 区间一致，含八面体与空心体 H2；方法和局限见 reference-validation.md。
- 性能基准：8–28 点稠密输入和 32–128 点稀疏输入，三次独立运行取中位数；记录核心耗时和分析后进程 RSS，见 performance.md。
- 时间序列滞后提示：交替序列和无效输入用例通过；CLI 示例产生六行扫描结果和两个参考值。
- 多帧追踪：正方形扩张后变为三角形的轨迹延续/终止、无环路、环路出现、截断类不匹配与非法输入路径均已核对；离线时间线和变化图的 DOM 场景测试通过。
- 新增体数据：20³ 稀疏网格、H2 代表面导出和切片高亮、三帧空腔消失/重现、PGM/PNG 与体数据零扰动、NIfTI-1 小端 uint8 与大端 float32 缩放均已测试；`.nii.gz` CLI、离线逐帧表格和异常路径通过端到端验证。
- 0.18 扩展：NIfTI-1 4D 帧序列及 sform/qform 仿射、单位和时间元数据；32³ 稠密体数据粗网格预算；代表面旋转、点击/键盘切片联动的 DOM 测试通过。真实浏览器本地文件检查受浏览器安全策略阻止，未宣称视觉布局已验证。

源码量由 `node scripts/check-source.mjs` 复算。
统计排除测试和 host.mbt FFI，并另报告去除纯括号行后的代码行数。
当前非空非注释行与去除纯括号行后的行数由上述脚本即时输出（也排除 HTML/JS 多行模板）。
该统计口径用于内部质量检查，组织方“有效源码”口径由评审决定。

0.20.0 在 2026-10-12 重测 JS 单元覆盖率：2188/3250 个计数点（约 67.3%）。
排除三个命令入口的 757 个计数点后，核心库为 2188/2493（约 87.8%）；这是计数点覆盖率，不是分支覆盖率。
CLI 另有端到端场景验证，不计入上述单元覆盖率。覆盖率不等于全部行为正确；本地重跑 30 个 GUDHI 对照案例一致。

0.18.1 增加 NIfTI 原始字节、H2 计算状态和世界坐标溢出校验，新增三项双后端回归测试。
0.18.1 的 [GitHub CI](https://github.com/wdgodghl/moontopolens/actions/runs/38201855928) 全部通过；Mooncakes 注册表确认最新 0.18.1、MIT、`build_status=success`。
全新独立项目从注册表安装 0.18.1，验证粗网格空腔、世界坐标导出及溢出拒绝，JS/Wasm GC 样例均通过；上述 0.18.0 记录保留原版本范围。

## 下一阶段

0.20.0 新增可选代表链模式，JS/Wasm GC 各 104 项测试通过；CLI 核对点云、二维网格和三维体数据的区间/摘要一致。
资源对照覆盖 9177 个细胞的稠密输入；保存项明显减少，但总体耗时和峰值 RSS 未显示跨样本稳定改善，结果与限制见 reduction-modes.md。

1. 扩充外部参考至更多异常尺度；有条件时再与 Ripser 独立交叉核验。
2. 后续版本按语义化版本更新，并持续核验 Mooncakes 的独立安装路径。
3. 扩大性能样本并记录峰值内存、不同硬件和更复杂输入分布。
4. 将已完成的分析页桌面/窄屏实测扩充为跨浏览器回归；在线上传应用不纳入本轮完成范围。

## 0.19.0 新增验证

- CSV：BOM、CRLF、引号与转义、缺失值、非数值、重复表头、字段/行/列预算；CLI 与等价 JSON 的区间和代表索引一致，非法输入不创建输出目录。
- 精确尺度：短暂 H1 在 0.0045 可被输入定位；跳转死亡事件 0.005 后 H1=0。选择当前已死亡区间会自动切到出生尺度。
- 应用：UCI Iris 固定 36 行测量子集在 0.5/1.2 尺度分别有 18/2 个连接分量；两物种组的 H0/H1 瓶颈距离及合成信号参考结果由应用脚本复核。
- 数据授权：Iris 改编 CSV 保留 CC BY 4.0 来源、原始选择索引、文件哈希及改编说明；项目代码继续使用 MIT。
- 浏览器：1280×900 与 390×844 分析页布局、精确输入、事件与代表边高亮，以及三维代表面选择已实测；范围与局限见 browser-validation.md。
- [0.19.0 GitHub CI](https://github.com/wdgodghl/moontopolens/actions/runs/38203746142) 全部通过；Mooncakes 确认最新 0.19.0、MIT、`build_status=success`。全新独立项目从注册表安装后，CSV 解析/预览、点云/序列请求及报告 API 的 JS/Wasm GC 各两项测试通过。历史发布段落保留各自版本范围。

## 算法与结果解释

项目采用直径阈值、稳定的过滤排序与 GF(2) 对称差约化；
主元配对确定出生和死亡区间，出生代表链用于解释特征。
截止时未死亡类、对角线匹配、事件合并、并查集分组、景观采样及资源预算的含义
分别见 [架构与算法](architecture.md)、[功能范围](feature-scope.md) 和测试记录。

0.20.0 发布验证：[GitHub CI](https://github.com/wdgodghl/moontopolens/actions/runs/38205231226) 全部通过；当时 Mooncakes 版本 0.20.0、MIT、build_status=success。独立项目安装后，仅区间 API 的 JS/Wasm GC 样例各一项通过。
