# 钠守：真实网站文件检查与进度恢复

署名：陈鹏旭。记录日期：2026年10月16日。

这是进展11的受支持软件工作流。冻结输入是钠守上一公开版本的67个实际文件；没有使用私人目录，没有实测电量，没有运行AI模型。

## 最小复现

需要预先安装Node.js，无第三方依赖。将实验包解压到一个新目录，在包根目录执行：

```text
node work/reality-loop/run.cjs
node work/reality-loop/verify.cjs
node work/reality-loop/correct-summary.cjs
```

一次运行只使用一个全新解压目录。不要先运行snapshot.cjs或freeze.cjs，不要修改协议、代码或输入。程序拒绝覆盖已有runs或正式结果。新运行的时间戳和耗时会变化，不能要求它们与本轮相同。

本轮原始结果在reference-results/reality-loop；新产生的原始结果在work/reality-loop/results.json，核验产物为该目录的verification.json。第三条命令按原始明细生成results-corrected.json，保留原始汇总并附可追溯更正。该辅助程序不是冻结实验的一部分，不重新执行正式任务。

网站“本机报告”导入框接受results.json或results-corrected.json这一结果汇总格式；它不是逐文件report.json。建议使用更正后的文件。导入原始汇总时，网页隐藏已知有重复计数问题的写入开销。导入仅在浏览器内展示，不上传，不等于独立复核。

## 三个固定条件

1. 正常完成：建立完整质量参照。
2. 中断对照：分别让普通方法和逐项检查点方法在第4项完成后，由自有Node子进程主动process.exit(75)，然后重启。普通方法从头再查，检查点方法先验证绑定，再复用已完成结果。
3. 诊断闭环：只在隔离副本index.html里预先加入一条不存在的CSS引用；检查后恢复已知原始字节，再复查。不是线上事故，也不是AI自主修复。

本轮每组只有一次固定顺序的观察，不是统计性能基准。正常参照及两组最终报告均有67项，0个诊断错误。普通方法合计71次任务检查，重复4项；检查点方法67次，复用4项，不重复任务检查。两组最终完整报告与参照一致。

普通方法两次子进程合计764.3574毫秒，检查点方法727.6728毫秒。该计时包含子进程启动、输入哈希、检查、报告I/O和重启，未作随机交叉或多次性能比较，不能据此宣称提速。

独立只读复核发现开销汇总错误：冻结run.cjs既累计task-complete明细，又重复加了worker-finish小计，导致原始results.json的checkpointBytes和checkpointWriteMs偏大。原始代码、协议和结果保留，不在事后改写。按67条task-complete独立重建，实际累计写入1,789,132字节，序列化、写入与rename调用累计71.1873毫秒；最终检查点文件38,368字节。原始错误汇总为3,529,861字节和137.0283毫秒。网站更正汇总与独立复核分别列出来源，导入原始报告时不能直接采信这两个字段。

## 任务和核验范围

任务按文件计数，不是67个用户或67种独立工作负载。

- HTML：支持指定元素的带引号href/src/poster属性，检查相对资源、链接和带引号id片段。不是完整HTML解析或语义检查。
- JavaScript：用vm.Script解析语法，不执行脚本；不支持ES模块或浏览器运行时验证。
- CSS：检查url()里的本地目标；不是完整CSS语法或全部导入规则检查。
- 其他文件：仅做冻结字节完整性检查。
- 外部URL只记录，不发出网络请求。

每次启动都重新核验全部67个输入文件，完成前也会再次核验。复用4项检查结果不代表免去所有文件读取或输入核验；不能换算为4/67的省时或省电比例。

## 绑定与失败

protocol-lock.json绑定协议，协议绑定代码和输入清单。检查点绑定协议、输入和任务顺序；变更前后的旧检查点均被拒绝，拒绝时未开始新的任务检查。畸形JSON、摘要错误、非冻结输入及不安全路径均有核验。

SHA摘要只能用于本实验内的意外损坏和输入变更检查，没有密钥签名，不提供防恶意伪造保证。临时文件加rename没有fsync；第4项检查点提交后主动退出是受控边界，不代表随机崩溃或物理掉电下的持久性保证。

首次受限环境不允许启动自有子进程，runner因此发生启动异常；没有worker开始检查。失败启动记录保留在reference-results/reality-loop/attempts。后在允许子进程的执行环境下，使用相同冻结代码、协议和输入完成正式流程，没有为得到更好结果修改代码或任务。

## 如何理解本轮价值

链接检查和持续集成本来就有成熟方案。本轮新增的是一个真实软件任务的可核验反馈入口：输入、执行、中断、诊断、已知修改与复查一一对应。它补充原来的有限预算任务安排研究，没有证明检查器本身新颖，也没有实现旧BMP多批次调度器的整体异常恢复。

减少重复检查不直接等于节约电量、时间或钱。实际用户需求、接入维护成本、愿付费与商业模式尚未验证。轻量任务是否值得逐项保存，需要结合开销继续比较；允许结论是直接重跑更合适。

## 证据

protocol.json及protocol-lock.json：正式运行前冻结的协议与代码绑定。

input-manifest.json及inputs/site：固定输入与字节摘要。

raw-events.jsonl、controller-events.jsonl及runs：原始事件、子进程退出状态、报告和检查点。

results.json：汇总结果，适合导入公开网站本地查看。

verification.json：10组软件核验；其中直接重查复用了同一checker，不能称为完全独立实现。

独立只读复核与浏览器验收另列在网站证据区，不与程序自检混为一组结果。
