Files
Jyotisha/docs/tasks/PROGRESS-beta-safety-net-fix2-20261015.md
T
jesse-uxandGrok (agent loop) 9455fbfc4f fix(release): keep daily backups from stalling when the disk fills
Expired daily files are pruned before a new backup, a verify older than 36 hours raises an alert, and the host monitors call sudo with the production env file. The Linux 0600 check is on the staging quick list.

Co-Authored-By: Grok (agent loop)
2026-10-15 17:24:26 +08:00

3.0 KiB
Raw Blame History

进度 · 内测安全网修复单 2(2026-10-15)

  • 分支:codex/beta-safety-net-20261014
  • 任务书:docs/tasks/TASK-beta-safety-net-fix2-20261015.md
  • 被打回的提交:5c0d895391b5d0806c98de669a2e9cdcd61e3335
  • 先合并最新 origin/staging(32b238cf),没有改写已经推送的提交。

做了什么

  • 合并时安全网旧编号和内测容量撞号。容量保留 BUG-1355~1357。安全网顺延为 BUG-1358~1361。这次三条例外是 BUG-1362、BUG-1363、BUG-1364。
  • 飞书测试写完环境文件后改成 0600。脚本里「Linux 上必须是 0600」的检查没改。这个测试文件加进 staging 自动门禁的 quick 清单。
  • 每日工作流先清理过期的每日备份,再做新备份。磁盘到 70% 时仍会拒绝备份,但旧的每日文件不会因此永远留着。70% 这条拒绝本身没改。
  • 生产主机上的磁盘检查同时看 daily-backup-latest.env 的 VERIFIED_AT。缺失,或比现在早超过 36 小时,告警一次;重新变新后再发一次已恢复。探活模式不读这份文件。
  • 错误汇总和按请求查日志改为 sudo -n docker,并显式传入生产编排和 ../.env.production.database。
  • 飞书请求加了 --fail,响应里的 code 必须是 0。失败时不写入已发送记录。同一服务、同一路由、同一错误码 30 分钟内不重复发。
  • 容器日志先去掉行首的服务名前缀,再按时间排序。
  • 上一轮「每日备份不改当前恢复点」没有重做。四个已有生产工作流、staging 工作流、gated-paths.txt、is-docs-only-range.sh 没改。

跑过的检查

检查 命令 结果
安全网 .venv\Scripts\python.exe -m pytest tests/test_beta_safety_net.py -q 20 通过,退出码 0
隐私标记 .venv\Scripts\python.exe -m pytest tests/test_repo_privacy_markers.py -q 62 通过,退出码 0
前端 tsc / lint 未跑 没有改网页
Python 快速门 未跑 按本轮约定不跑
数据库测试 未跑 没有改数据库
shellcheck 未跑 本机没有这条命令

断言变更

位置 原值 新值 原因
飞书测试桩的响应正文 ok {"code":0} 发送方现在要求飞书 code 为 0。请求体字段断言没改
磁盘测试的准备数据 不提供每日核对记录 提供一份核对时间等于当前时间的记录 磁盘模式会同时检查核对时间。没有记录会多一条告警。磁盘告警原文断言没改

偏离

  • 任务书写 verified_at。上一轮文件里的键是 VERIFIED_AT。这次读这个键,没有改名。
  • 本机 os.chmod(path, 0o600) 之后,stat 仍是 0o666。Windows 存不下 Unix 权限。0600 相等断言只在 POSIX 上执行;chmod 每次都会调用。Linux 上的脚本检查保持原样。
  • 没有在这台 Windows 上安装到生产,没有点任何生产按钮。主机安装和恢复演练仍留给产品。