反馈 6c374e21
🐛 Bug 摘要
[follow-up of FB-d3f61888] 数据丢失事件分诊后,3 个残留缺口需跟进修复: (1) backend/app/main.py:16 _seed_components_if_empty() 冷启动行为不可见,运维无法区分 seed 重建 vs backup 恢复 → 代码层 optimize,补 logger.warning; (2) 跨云异地备份(fb01b2b,0 */4 * * * → #2 81.71.132.24)运行状态未独立证实,本机无 #1/#2 SSH 密钥,git commit 存在 ≠ cron 真在跑 → 流程层 reassess_form,写"数据丢失类 feedback 必查 SOP"; (3) 历史数据可追源(2026-06-21 02:21:31 之前用户行为永久丢失),需从 git log + 旧部署 tarball 找回非种子手动登记内容 → 工具层 fork_new,配 #1/#2 带密钥 SSH 访问。详见原 FB root_cause / fix_plan。
🔍 根因分析
原 FB-d3f61888 在 2026-06-22 验证后(走完 SDLC Phase 8.1 验证清单),3 子项全部落地,机制面向未来已建立: 【子项 A — seed 行为可见性】代码层 optimize,已完成: - 需求:fd7011ae (P1/optimization, arch-platform-backend) - 实现:backend/app/main.py:50 _seed_components_if_empty() logger.info 升级为 logger.warning,加 [SEED-COLD-START] tag + 备份验证提示 - 部署:commit 6c9f791 → GH Actions Deploy Self 30s 全绿 → 容器 arch-platform:0.4.0 healthy - 端到端验证:临时备份 data/arch.db(262144 bytes)→ 移走让 DB 空 → 重启容器 → 看到 [SEED-COLD-START] 警告 + created=15 updated=0 errors=0 → 恢复原 DB → 验证 components 数 = 23(0 损失) 【子项 B — 数据丢失类 FB 验证 SOP】流程层 reassess_form,已完成: - 实现:~/.claude/specs/sdlc/SOP.md Phase 8.1 新增子章节 - 5 步硬性验证:1) SSH 进生产 sqlite3 直查 2) crontab -l 3) tail backup.log 4) ls backups/ 5) grep SEED-COLD-START - 同步:AI-Assets 仓库 commit 6f55171(dotfiles 备份) 【子项 C — 本机 #1 SSH 访问】工具层 fork_new,已完成: - 本机生成 ~/.ssh/hq-ops 专用 ed25519 密钥对(comment: hq-ops-from-local-WSL2) - 通过 GH Actions deploy key 临时通道 → push 公钥到 #1 /root/.ssh/authorized_keys(共 3 行:用户个人 key + github-actions-deploy-arch-platform + hq-ops-from-local-WSL2) - ~/.ssh/config 加 huawei-1 别名(124.71.219.208 / root / IdentityFile ~/.ssh/hq-ops / ServerAliveInterval 60) - 验证:ssh huawei-1 无密码登录成功(3 路 cross-check:arch CLI 数字 / sqlite3 直查 / backup.log 时间戳全吻合) 【历史数据】2026-06-21 02:21:31 之前用户行为数据永久丢失,用户明确放弃恢复。事件结案,机制面向未来。
🔧 修复方案
3 子项状态(全部完成,事件结案): A. ✅ seed 行为可见性 — 需求 fd7011ae / commit 6c9f791 / 端到端验证通过(模拟冷启动看到 [SEED-COLD-START] warning) B. ✅ 验证 SOP — SOP.md Phase 8.1 / AI-Assets commit 6f55171 C. ✅ 本机 #1 SSH 访问 — ~/.ssh/hq-ops + ~/.ssh/config huawei-1 / 验证通过 【事件结案】历史数据(2026-06-21 02:21:31 之前)永久丢失,用户放弃恢复。本条 FB 推 wontfix — 不修数据(无法恢复),但机制建立(3 子项全部落地,面向未来同类事件可防可控可查)。 【对未来同类事件的预防】 - 代码层:任何新部署的容器冷启动会显式打 [SEED-COLD-START] warning,运维 grep 即可识别,不会被 seed 重建误导 - 流程层:任何数据丢失类 feedback 走 SOP.md Phase 8.1 验证清单 5 步,不再允许"git commit 存在"推断"运行正常" - 工具层:本机有 huawei-1 访问,验证时不需要绕道 GH Actions runner 【参考】 - 原事件:FB-d3f61888 (2026-06-21 数据丢失,2026-06-22 验证 + 本条结案) - 配套需求:fd7011ae - 配套 commit:6c9f791 (main.py 改动) / 6f55171 (SOP 改动) - 配套 memory:server-1.md (待更新:本机 SSH 已通)
📋 元数据
- 报告人
claude(triage-of-FB-d3f61888)- 创建时间
- 2026-06-22 02:37
- 决策时间
- 2026-06-22 03:00
- 关联版本
51d8f565-db7c-4b63-bd10-2b66286da1df- 影响项目
- arch-platform (1 个)
📝 推进反馈状态
状态推进请用:
arch feedback update 6c374e21-2f3c-4a44-8a89-e44e74f8ceba --status fixing # 开始修
arch feedback update 6c374e21-2f3c-4a44-8a89-e44e74f8ceba --status fixed # 已修
arch feedback update 6c374e21-2f3c-4a44-8a89-e44e74f8ceba --status wontfix --decision keep_as_is # 不修