Files
agent-radar/scripts
gitea-publish 8be2e8e611 fix(mirror): 翻 public 的时机、快照强推、上游不可用时降级
四处修复,都来自本次重跑 openwork 时实际踩到的失败:

1. 翻 public 从「推送之前」移到「推送成功之后」
   原实现先翻可见性再推,踩出「仓库已 public + 内容还是旧快照」的窗口期:
   --set-public 成功 → 推送被拒(source-only 历史不连续) → 公开了旧版本。
   旧内容虽不含 ee/(合法),但公开了不该公开的版本,正是最该避免的局面。
   正确顺序:先推对内容,再翻可见性;任一步失败都停在 private,无害。
   收紧方向(private)仍留在同步前——锁起来永远安全,早做没代价。

2. source-only 快照改强推
   每次快照都是 checkout → git init → 单次 commit,与远端上次快照无血缘,
   永远不可能 fast-forward。改了排除项后重跑必被拒:"! [rejected] fetch first"。
   强推在此语义正确:source-only 保的是当前源码状态,不是历史链。

3. 新增 --no-fetch
   GitHub 连不上(Empty reply from server)时脚本在 fetch 阶段就退出,
   本地裸仓明明有 18763 条 commit 却什么都做不了。
   上游不可用不该阻止用已有内容重做快照。

4. 补充 LICENSES/LicenseRef-OpenWork-EE.txt 到 openwork 的 excludes
   详见上一提交,此处是让它真正生效后落库。

新增 scripts/validate.py:档案 schema 校验。
起因是我手写临时探针把 risk.claim_vs_reality 写成顶层字段,
得到「该字段 0 条」的错误结论——层级写错不报错,只会安静返回 0。
校验项含:核心字段完整性、claim_vs_reality 下限与 source 必填、
excludes 与 redistributable_after_excludes 的一致性、
以及自动抓「七个里」这类随样本增加即过时的计数表述。
当前 7 个项目全部通过。
2026-09-02 01:07:11 +08:00
..