diff --git a/docs/regression-guards/103-release-0706007-rollback.md b/docs/regression-guards/103-release-0706007-rollback.md new file mode 100644 index 0000000..f561cef --- /dev/null +++ b/docs/regression-guards/103-release-0706007-rollback.md @@ -0,0 +1,108 @@ +# 103 发布 0706007 — 回退说明 + +**Portal release_id:** `20260706-160810-14a0077` +**Portal Git commit:** `14a0077`(`main`) +**memind_adm release_id:** `20260706-161141-ebcc33b` +**memind_adm Git commit:** `ebcc33b`(`main`) +**发布时间:** 2026-07-06 + +## 本次内容 + +### Portal (Memind) + +- **web 联网能力**:`capabilities.web` 挂载 `platform/web`(`web_search` / `fetch_url`) +- **实时查询**:世界杯等实时问题强制 `web` skill + agent 编排;router timeout fallback 纠正 +- **Run / Session 对齐**:`session-reply-wait` + gateway 默认 await session Finish +- **H5 Session**:Session Broker 覆盖率/指标、stream replay、Finish 竞态修复等(含 `08feae8` + `14a0077`) + +### memind_adm + +- **技能页 `/ops/skills`**:联网搜索工具(`web` 能力)与 `web` 技能一并保存/覆盖 + +## 103 自动备份 + +### Portal + +| 类型 | 路径(103 上) | +|------|----------------| +| 全量 live 备份 | `/Users/john/Project/backups/memind/memind-full-20260706-160810-14a0077-before.tar.gz` | +| 持久目录备份 | `/Users/john/Project/backups/memind/memind-persisted-20260706-160810-14a0077-before.tar.gz` | +| 旧源码归档 | `/Users/john/Project/archives/Memind-source-before-20260706-160810-14a0077` | +| 当前 live | `/Users/john/Project/Memind`(无源码 runtime) | + +**上一版 Portal:** `20260705-231551-e2ad3bf`(commit `e2ad3bf`) + +### memind_adm + +| 类型 | 路径(103 上) | +|------|----------------| +| 全量 live 备份 | `/Users/john/Project/backups/memind_adm/memind-adm-20260706-161141-ebcc33b-before.tar.gz` | +| 旧 live 归档 | `/Users/john/Project/archives/memind_adm-source-before-20260706-161141-ebcc33b` | +| 当前 live | `/Users/john/Project/memind_adm`(无 `src/`,preview @ 5174 base `/ops/`) | + +## 健康验证(2026-07-06 发版后) + +| 检查项 | 结果 | +|--------|------| +| Portal `8081/api/status` | 200 | +| goosed 18006–18009 `/status` | 200 | +| `https://m.tkmind.cn/auth/login` 错误密码 | 401 + `用户名或密码错误` | +| Portal 日志关键词 | 无异常关键词 | +| memind_adm API `8085/health` | 200 | +| memind_adm Web `/ops/skills` | 200 | + +**注意:** 发版脚本末尾 `cn.tkmind.memind-portal-tunnel` 重启报错,但公网 `m.tkmind.cn` 登录探测正常;若隧道异常请单独检查 LaunchAgent。 + +发版前本地已通过: + +- Memind 196 项单测(含 capabilities / router / gateway / wechat-mp 等) +- `verify:mindspace-publish-guards:full` +- `ALLOW_MAIN_RELEASE=1 bash scripts/check-release-ready.sh` + +## Portal 回退到上一版(e2ad3bf) + +```bash +RELEASE_ID=20260706-160810-14a0077 +PREV_RELEASE=20260705-231551-e2ad3bf +APP_DIR=/Users/john/Project/Memind +PORTAL_LABEL=cn.tkmind.memind-portal +LAUNCHD_GUI="gui/$(id -u)" + +launchctl bootout "${LAUNCHD_GUI}/${PORTAL_LABEL}" 2>/dev/null || true +lsof -tiTCP:8081 -sTCP:LISTEN | xargs kill -9 2>/dev/null || true + +mv "${APP_DIR}" "${APP_DIR}.failed-runtime-${RELEASE_ID}" +tar -xzf /Users/john/Project/backups/memind/memind-full-${PREV_RELEASE}-before.tar.gz -C /Users/john/Project + +launchctl bootstrap "${LAUNCHD_GUI}" "${HOME}/Library/LaunchAgents/${PORTAL_LABEL}.plist" +launchctl kickstart -k "${LAUNCHD_GUI}/${PORTAL_LABEL}" +curl -sf http://127.0.0.1:8081/api/status +``` + +## memind_adm 回退 + +优先重新发布上一已知 good commit;紧急时从备份 tar 恢复: + +```bash +# 备份路径 +# /Users/john/Project/backups/memind_adm/memind-adm-20260706-161141-ebcc33b-before.tar.gz +# /Users/john/Project/archives/memind_adm-source-before-20260706-161141-ebcc33b + +cd /Users/john/Project/memind_adm +bash scripts/remote_restart.sh # 或从 backup tar 解包后 remote_restart +``` + +## 本地再发版 + +```bash +# Portal +cd /Users/john/Project/Memind +git checkout main +ALLOW_MAIN_RELEASE=1 bash scripts/check-release-ready.sh +ALLOW_MAIN_RELEASE=1 bash scripts/release-portal-runtime-prod.sh --skip-tests --yes + +# memind_adm +cd /Users/john/Project/memind_adm +git checkout main +ALLOW_MAIN_RELEASE=1 bash scripts/release-prod.sh --yes +```