Files
Jyotisha/docs/tasks/PROGRESS-beta-safety-net-20261014.md
T
jesse-uxandGrok (agent loop) 14897f0bf3 merge origin/staging into the beta safety net branch
Safety-net records move to BUG-1358 through BUG-1361 because staging already uses BUG-1355 through BUG-1357 for capacity.

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

3.1 KiB
Raw Blame History

进度 · 内测安全网(2026-10-15)

  • 分支:codex/beta-safety-net-20261014
  • 基线:开工时 origin/staging 为 71f7fac3a13f817f91755ff01b25b8706380ae19
  • 前置:09906cdc(发布通路)和 4c3485bc、3893783e(#58)都已是这个基线的祖先。deploy/docker-compose.server.yml 在加日志段之前没有 #58 留下的未合入冲突。
  • 编号:本文件最大号是 BUG-1353。本单当时写成 BUG-1354(没有每日备份)、BUG-1355(没有探活和磁盘告警)、BUG-1356(日志不轮转、不能按请求编号查)。合并 staging 后 BUG-1354 已被更早的答题强度记录占用,三条顺延为 BUG-1355、BUG-1356、BUG-1357。2026-10-15 再次合并 staging 时,这三个号已被内测容量占用,最终编号是 BUG-1358、BUG-1359、BUG-1360。

做了什么

  • 新增每日备份工作流。北京时间 04:00,只在 main 上跑,调用现有的 deploy/run-production-recovery.sh。产物默认留 14 天。主机上只清理超过 7 天、且文件名严格是 production-daily- 的加密备份和对应校验文件。
  • 恢复脚本增加可选前缀。不设置时文件名仍是 production-pre-migration-。每日任务把它设为 production-daily。加密、还原校验、锁和磁盘 70% 拒绝没有改。
  • 探活、磁盘、错误汇总、飞书文本消息(可选签名)。没有 Webhook 时只写本机日志。
  • 两个编排文件的每个服务加上相同的日志上限:json-file,20 MB,10 个文件。镜像、环境、端口、健康检查没改。
  • 按 UUID 查 web / api / caddy 日志的只读脚本。拒绝其它写法。
  • 恢复演练步骤和空白结果模板。安装步骤写在 deploy/README.md 和 BLOCKED.md。

跑过的检查

检查 命令 结果
安全网测试 .venv\Scripts\python.exe -m pytest tests/test_beta_safety_net.py -q 13 通过,退出码 0
隐私标记 .venv\Scripts\python.exe -m pytest tests/test_repo_privacy_markers.py -q 退出码 0
编排能否解析 docker compose -f deploy/docker-compose.server.yml -f deploy/docker-compose.postgres.yml config --quiet 退出码 0。本机没有真实环境文件,检查时用了临时空文件,没有提交
shellcheck 无 本机没有这条命令
前端 tsc / lint / 全量测试 未跑 没有改网页
Python 快速门 未跑 按本轮约定不跑
数据库测试 未跑 没有改数据库

偏离

  • 没有改现有的四个生产工作流,也没有把它们的 SSH 步骤抽成共用脚本。新工作流自己复制了同一套 SSH,并调用同一个恢复脚本。
  • 没有往网页或接口日志里加新字段。现有观测记录已经有 requestId 和 errorCode。错误汇总会丢掉含有汉字、邮箱或第二个日期的整行,避免把对话带出去。因此中文报错不会进入计数。
  • 探活外发不带提交号,只带错误码 commit_changed。提交号留在 runner 本机状态里。
  • 本机没有生产主机,没有登录 runner,没有手动触发生产工作流。告警和定时备份要等产品安装,见 BLOCKED.md。