# Upstream provenance

本文件记录这个静态运行时来自哪里，以及以后如何证明部署的版本。

## 固定来源

- 项目：n-gon
- 作者：Ross Landgreen
- 仓库：<https://github.com/landgreen/n-gon>
- 官方托管版本：<https://landgreen.github.io/n-gon/>
- 许可证：GNU General Public License version 3
- 固定提交：`3452c30d7ed95b36833a0a06b93ba3506f2adb10`
- 固定提交页面：<https://github.com/landgreen/n-gon/tree/3452c30d7ed95b36833a0a06b93ba3506f2adb10>
- 固定源码归档：<https://github.com/landgreen/n-gon/archive/3452c30d7ed95b36833a0a06b93ba3506f2adb10.zip>
- 提交时间：2026-08-26T13:44:28Z
- 本地取回日期：2026-08-30

GitHub 在取回日将仓库识别为 GPL-3.0。仓库根目录的 `LICENSE` 是 GNU GPL version 3 全文；本快照保留了该文件。

## 上游构建方式

上游没有 `package.json`、lockfile、Vite、Webpack、Rollup、Gulp、Makefile 或 Dockerfile。它是直接运行的 HTML/CSS/JavaScript：

- `index.html`
- `style.css`
- `favicon.ico`
- `js/*.js`
- `lib/matter.min.js`

因此没有可执行的 build 命令，也没有依赖安装。部署产物就是本目录中的静态文件。

## 快照策略

1. 永远按完整 40 位提交 SHA 取回，不追 `master`，不在部署时联网拉取上游。
2. 新版本先放进临时目录，与当前 SHA 做完整 diff。
3. 重新审计许可证、远程请求、HTML 入口脚本和 CSP。
4. 把每一项本地修改及日期写进 `CHANGES.md`。
5. 重新生成公开源码包并运行 `node scripts/verify-runtime.mjs`。
6. 只有人工复核通过后才能替换生产快照。

当前本地文件相对于固定上游的修改只列在 [CHANGES.md](CHANGES.md) 中。

