# 按既往驳回理由进行的严格复查

2026-11-05，MoonSquash 0.2 → 0.3。本报告记录发布前的技术自查，不是官方预审或通过承诺。后续已按用户指定的 Magic486 身份发布，公开仓库与注册表消费验证结果见 [release.md](release.md)；下列发布状态风险保留为原审查时点的记录。

## 判断

**0.2 的方向有足够扩展空间，但“完整”的表述超过了当时的证据。0.3 已补上本次发现的实质缺口，可以按有明确边界的文件系统镜像库申报；不能声称全部 SquashFS 能力或保证通过初审。**

用户提供的两次驳回针对的是功能范围集中、标准覆盖和验证不足，并没有给出可换算为代码行数的合格线。因此本次采用三个问题审查：能否独立完成真实工作流；文件系统对象和格式语义是否连贯覆盖；独立工具和失败用例能否证明实现有效。单纯增加命令、文档或测试数量不能回答这些问题。

现在的闭环是：宿主目录/声明式配置 → 流式构建镜像 → 独立读取与结构校验 → 属性和内容查询 → 安全提取 → 比较两个镜像的语义变化。它包含真正的布局生成、引用解析、压缩元数据寻址、共享 inode 与 fragment 语义，已经超出头部解析或工具调用包装。

## 发现并已修复的拒绝风险

| 发现 | 0.2 的问题与影响 | 0.3 修复和证据 |
|---|---|---|
| 元数据写入不完整 | 数据可压缩，但所有元数据只能 raw；“完整压缩镜像构建”容易被质疑 | 实现 inode、directory、ID、fragment、export、xattr 元数据压缩和 raw 回退；先子后父布局解决压缩引用依赖；六种真实算法均由官方解包核对 |
| 构建规模证据薄弱 | CLI 先载入全部数据，累计 128 MiB；约 97 MiB 合成输入实际峰值约 428 MiB | 增加 `External`/`build_to`，逐块读取和写入，最后回填头部；同数据峰值约 147 MiB；约 201 MiB 数据集通过官方互操作、全文件比较和确定性验证 |
| 配置可静默丢信息 | 同一 entry 多种类型、错误字段类型、拼错字段、硬链接自带元数据等 8 个配置均被接受 | 严格校验字段、类型与唯一内容选择；硬链接属性只能写在目标上；8 个旧版复现全部改为拒绝，宿主扫描器相应输出无歧义配置 |
| 校验器放过损坏镜像 | 无效长目录索引偏移、部分重叠数据区、无效 LZ4 options version 均通过旧版 verify | 校验目录索引约束、数据区范围/重叠及压缩选项；允许合法同区共享；3 个旧版复现全部拒绝 |
| 资源预算不明确 | verify 缺少累计解码数据预算，构建上限混同于读取能力 | verify 增加可配置预算；区分内存便利 API、流式 API、物理偏移、单文件和累计数据限制；失败条件写入文档和回归 |
| 真实发行物证据缺失 | 原有互操作与规模测试都是合成数据 | 新增公开 OpenWrt 24.10.0 镜像：1564 条目、1225 文件、224 符号链接与官方工具对照；设备记录识别后报告省略 |
| 申报文字过宽 | “完整”可能被理解为任意镜像、全部官方选项和普遍固件兼容 | README、申报稿、PDF 与审查材料统一为 0.3 已测范围；保留 0.2 历史证据，不倒改历史成绩 |

复现脚本、实际运行结果及测量条件见 [0.3 验证记录](test-evidence/review-0.3.md)。

## 当前完整性矩阵

| 子系统 | 已交付范围 | 仍应明说的边界 |
|---|---|---|
| 格式读取 | SquashFS 4.0 little endian；14 种 inode；目录、fragment、稀疏块、链接、ID、inline/out-of-line xattr、export | 不是旧版 SquashFS；偏移与单文件 <2 GiB |
| 构建 | 文件、目录、链接及特殊类型记录；所有元数据表；确定性布局；流式数据和输出；六种压缩 | xattr 写入使用 inline；不做内容去重；不是官方工具参数全集；元数据保留在内存 |
| 数据访问 | 内存与随机访问源，范围读取、块缓存、二进制属性 | 字符串路径要求 UTF-8；来源在操作期间必须稳定 |
| 校验 | 表/记录/引用、所有 inode、目录关系/索引、数据区/解码、链接计数、属性、ID、export、压缩选项形状及 LZ4 版本 | 不宣称穷尽所有压缩器参数语义、恶意输入或内核认证；不是修复工具 |
| 差异 | 内容、目标、设备、类型、权限、属主、时间、属性、硬链接分组 | 语义比较而非镜像字节 diff；不提供增量镜像补丁 |
| 宿主操作 | 目录打包、安全提取、已有目标拒绝、受限权限和硬链接回归 | 不创建特殊节点、不改属主、不应用特权模式/xattr，报告省略；失败可能留下部分新提取目录 |
| 可复用性 | 公开 API、JS/Wasm-GC、独立 ZIP 消费者、九个 CLI 命令 | CLI 用 JS；算法及 POSIX 适配有 Node/Python/系统库依赖；无 native 后端承诺 |
| 工程证据 | Linux 从源码构建；双向官方 oracle；OpenWrt 实际发行镜像；无效配置/镜像回归；规模与内存测量；CI 配置 | CI 尚未在公开仓库运行；单个发行镜像不是广泛固件语料或全面 fuzz |

## 尚存的初审风险

1. **公开交付尚未成立。** 没有选定参赛身份、公开仓库、正式 namespace、registry 版本、公开 CI 及可访问的开发历史。代码质量不能替代报名交付物。当前只完成本地开发与真实历史；不得捏造账号、链接或发布日期。需要真实发布目标后才能完成这些平台事项。
2. **十一月规则尚未确认。** 当日读取的赛事页面源码仍是十月，不能借用十月截止时间或其他赛事的行数/提交数量门槛。提交时必须按十一月正式要求核对。
3. **主办方仍可能要求更宽的标准覆盖。** 大于 2 GiB 的镜像/文件、任意字节路径、特权还原、全部上游选项并不在当前范围。若主办方明确要求这类能力，需要改变设计或扩展已测范围；不能靠文字把有限 profile 说成通用替代品。
4. **独立贡献需要讲清楚。** 六个压缩算法来自宿主库，并非六个原创算法。参赛价值在 MoonBit 的文件系统语义、读写布局、流式接口、验证与差异，不在调用压缩函数。`THIRD_PARTY.md` 已披露边界，运行时不借官方工具实现核心。
5. **生态去重与真实应用证据有界。** 当日公开检索未发现直接同类 MoonBit 实现，不等于没人私下开发。规模数据均为合成；真实发行物验证为一个公开 OpenWrt 根文件系统，不是广泛厂商固件语料。已有受保护系统样本未读取或改权限。当前互操作证据说明已测路径，不能冒充广泛部署经验。

官方公开资料：[赛事页面源码](https://github.com/moonbitlang/Hackathon2026/blob/main/src/App.tsx)、[内核 SquashFS 文档](https://docs.kernel.org/filesystems/squashfs.html)。主办方的具体驳回理由来自用户提供的原文，本文未补造额外官方门槛。

建议申报定位为“MoonBit SquashFS 4 镜像读写、验证与语义分析工具库”，用功能闭环和可运行证据证明规模。当前已修复的缺口无需靠更换题目解决；剩余公开交付和规则问题不能由本地代码伪装完成。
