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>
3.5 KiB
3.5 KiB
H5 Session 本地 Soak 测试
状态:自动化已通过(2026-07-06 14:57);手工场景待 john 账号验证
分支:0706-bug干净· 禁止 merge main / 上 103 / commit(除非另行指令)
前置
# .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 |
记录模板(每条失败场景填写)
场景 #:
时间:
sessionId / runId:
现象:
Network / Console:
是否 blocker:
结论(手工测试后填写)
- 自动化闸门:✅ 通过(2026-07-06)
- 整体 soak:☐ 待人工
- blocker 列表:(暂无)
- 是否可进入 merge main 讨论:等手工场景 1–8 完成后再定