14a00774d9
- 新增 web 能力并挂载 platform/web(web_search/fetch_url) - 实时查询强制 web skill,router fallback 与 await session Finish - Session Broker 覆盖率/指标、stream replay 与相关单测/E2E 脚本 Co-authored-by: Cursor <cursoragent@cursor.com>
89 lines
3.5 KiB
Markdown
89 lines
3.5 KiB
Markdown
# H5 Session 本地 Soak 测试
|
||
|
||
> **状态:自动化已通过(2026-07-06 14:57);手工场景待 john 账号验证**
|
||
> 分支:`0706-bug干净` · 禁止 merge main / 上 103 / commit(除非另行指令)
|
||
|
||
## 前置
|
||
|
||
```bash
|
||
# .env 建议全开(勿提交 Git)
|
||
MEMIND_SESSION_BROKER_ENABLED=1
|
||
MEMIND_SESSION_BROKER_METRICS=1 # 场景 8
|
||
MEMIND_ROUTER_NORMALIZED_DECISION=1
|
||
MEMIND_SSE_EVENT_TAXONOMY=1
|
||
MEMIND_RUN_STREAM_REPLAY=1
|
||
MEMIND_SESSION_STREAM_REPLAY=1 # 场景 5(4c)
|
||
MEMIND_H5_HTML_FINISH_GUARD=1
|
||
|
||
pnpm dev
|
||
# 访问 http://127.0.0.1:5173/ 全屏聊天
|
||
```
|
||
|
||
**2026-07-06 检查**:本地 `.env` 已有 5 个开关,**缺少** `MEMIND_SESSION_STREAM_REPLAY`、`MEMIND_SESSION_BROKER_METRICS`。
|
||
手工测场景 5/8 前请补上并 **重启 `pnpm dev`**。
|
||
|
||
**DB**:已执行 `migrateSchema`,`h5_session_stream_events` 表已创建。若 dev 在迁移前启动,需重启后 4c store 才会注入。
|
||
|
||
---
|
||
|
||
## 自动化验收(2026-07-06 14:57)
|
||
|
||
| 命令 | 结果 |
|
||
|------|------|
|
||
| `npm run verify:h5-session-patches` | ✅ pass(含单测 + broker coverage + goosed boundary + publish guards) |
|
||
| `npm run verify:chat-finish-sync` | ✅ pass |
|
||
| `npm run verify:mindspace-page-sync-guards` | ✅ pass |
|
||
| `node scripts/check-session-broker-coverage.mjs` | ✅ pass |
|
||
| `node scripts/check-goosed-proxy-boundary.mjs` | ✅ pass |
|
||
| 本地服务探活 `5173` / `8081` | ✅ HTTP 200 |
|
||
| `h5_session_stream_events` 表 | ✅ 迁移后存在 |
|
||
|
||
### 历史数据辅助(john,近 2h intent_routed)
|
||
|
||
| 指标 | 值 |
|
||
|------|-----|
|
||
| 采样条数 | 10 |
|
||
| router timeout fallback | 2/10(睡前故事、讲笑话各 1 次) |
|
||
| 其余 | `source: llm`,路由正常 |
|
||
|
||
> 自动化**不能**替代场景 1–8 的浏览器/DevTools 验证。
|
||
|
||
---
|
||
|
||
## 测试账号
|
||
|
||
| 用户 | 用途 |
|
||
|------|------|
|
||
| john | 主 soak 账号(已有 session 历史) |
|
||
|
||
## 场景清单
|
||
|
||
| # | 场景 | 操作 | 预期 | 结果 | 备注 |
|
||
|---|------|------|------|------|------|
|
||
| 1 | 普通 direct_chat | 「讲一个睡前故事吧」 | ~7s 内整段回复;loading 点消失 | ☐ 待人工 | 历史:7.1s,曾 router timeout |
|
||
| 2 | 简单 hi | 「hi」 | 2–3s 回复;无永久 loading | ☐ 待人工 | Finish 竞态 |
|
||
| 3 | agent 生成页 | 「帮我生成一个唐诗页面…」 | agent 路径;Finish 后 public HTML 落盘 | ☐ 待人工 | publish guards 已自动化 ✅ |
|
||
| 4 | run SSE 重连 | 发消息 → DevTools 断网 3s → 恢复 | run events 从 Last-Event-ID 补发 | ☐ 待人工 | 4b,需 `MEMIND_RUN_STREAM_REPLAY=1` |
|
||
| 5 | session SSE 重连 | 流式回复中断网 | 重连后 merge,不盲覆盖 | ☐ 待人工 | 4c,需补 `MEMIND_SESSION_STREAM_REPLAY=1` + 重启 dev |
|
||
| 6 | MindSpace 小窗 | `/?preview=mindspace` 发消息 | 同全屏,Finish 不丢消息 | ☐ 待人工 | |
|
||
| 7 | Router 稳定性 | 连发笑话/写诗/故事各 1 条 | 无频繁 1500ms timeout fallback | ☐ 待人工 | 历史 2/10 timeout;快路径已合入未 soak |
|
||
| 8 | Broker metrics | 403 访问他人 session | Portal 日志含 `[session_broker.ownership.denied]` | ☐ 待人工 | 需 `MEMIND_SESSION_BROKER_METRICS=1` |
|
||
|
||
## 记录模板(每条失败场景填写)
|
||
|
||
```text
|
||
场景 #:
|
||
时间:
|
||
sessionId / runId:
|
||
现象:
|
||
Network / Console:
|
||
是否 blocker:
|
||
```
|
||
|
||
## 结论(手工测试后填写)
|
||
|
||
- **自动化闸门**:✅ 通过(2026-07-06)
|
||
- **整体 soak**:☐ 待人工
|
||
- **blocker 列表**:(暂无)
|
||
- **是否可进入 merge main 讨论**:等手工场景 1–8 完成后再定
|