diff --git a/.agents/skills/ui-walkthrough-cdp.md b/.agents/skills/ui-walkthrough-cdp.md index 8883fc06..e9d972fe 100644 --- a/.agents/skills/ui-walkthrough-cdp.md +++ b/.agents/skills/ui-walkthrough-cdp.md @@ -6,7 +6,8 @@ ## 1. 大原则 - **chrome 一律在 mini-desktop 本地起**(6c6g 连续 exit 144,该路线已作废);被测前端/后端同机,全 localhost。 -- 浏览器内访问前端必须 **`http://localhost:4173`**(非 Tailscale IP):宿主 manifest 校验用 `crypto.subtle`,仅安全上下文(https/localhost)可用,走 IP 会永远 demo 兜底。 +- 浏览器内访问前端**优先 `http://localhost:4173`**(安全上下文,省心)。**经 Tailscale IP/明文 http 现也可用**:宿主 manifest 校验的 `crypto.subtle` 在非安全上下文缺失,已补纯 JS SHA-256 兜底(2026-06-17 `4e486f60`),不再「走 IP 永远 demo 兜底」。 +- **红线(此坑血泪)**:上条「IP→demo 兜底」曾被当成「走查改用 localhost 规避」记着,却没意识到**创始人/真实用户正是经 IP 访问 → 线上游戏一直「加载失败」**(demo 退化后 W-CLEAN 占位发 game_error)。教训:**走查环境 localhost = 安全上下文,会系统性掩盖「上下文依赖缺陷」(`crypto.subtle`、`isSecureContext` 门控特性等);用户可见 UI/e2e 走查必须另跑一遍真实访问 origin(IP/明文 http),不能只在 localhost 取证。当走查需要一个 workaround 才能避开某失败时,先问「真实用户会不会也撞上同一失败」。** - chrome 起后必先 `curl -s localhost:9222/json/version` 验活再用。 ## 2. CDP 七坑(Chrome 146 实证,逐个血泪)