From 336fb1d241d4f810bca0a1b4a60f659795d7645b Mon Sep 17 00:00:00 2001 From: kenyanghui Date: Tue, 29 Sep 2026 10:07:37 +0800 Subject: [PATCH] pitfall #18: Escape in search flow breaks rendering -> transparent shell -> session killed by self-heal; remove Escape from search path --- references/pitfalls-linux.md | 12 ++++++++++++ scripts/agent.py | 3 ++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/references/pitfalls-linux.md b/references/pitfalls-linux.md index 3141151..a3b744b 100644 --- a/references/pitfalls-linux.md +++ b/references/pitfalls-linux.md @@ -87,3 +87,15 @@ glm-4v-flash 对"只输出JSON: {chat_name:'名字', text:'...'}"这类带占位 桌面版微信记住了账号A,但登录页可 Switch Account;用户重新扫码时可能扫成**另一个账号B**。后果:聊天列表全变、白名单联系人"消失"(搜索只剩 Internet search results)。agent 表面正常,实际监护着错误的身份。 **对策**:①登录后第一件事,核对左上角头像/特征会话是否与白名单匹配;②白名单联系人在当前账号不存在时,搜索只剩网络建议——这是换错号的强信号;③部署时明确告知用户"扫码前确认手机当前登录的是哪个号"。 + +## 18. 搜索交互中按 Escape 会把渲染打成透明壳(会间接毁掉登录会话) + +实测规律:在微信主窗口按 Escape(如"关掉残留下拉"的习惯动作)后,搜索交互会让 +Qt 渲染管线崩掉——窗口 Map State 仍是 IsViewable、wmctrl 一切正常,但内容全透明, +截图只见壁纸。更糟的是:透明壳会被自愈逻辑判定"渲染死亡"而 pkill 重启, +**刚登录的会话随之丢失**,用户被迫重新扫码+手机确认。 + +**对策**:①搜索路径禁用 Escape(进入搜索框后 ctrl+a 全选即可覆盖旧关键词); +②自愈的透明壳重启前,先看进程存活时长——刚登录几分钟就"渲染死亡"的, +大概率是这条坑,宁可等待观察也不要立即杀; +③同样的坑没人知道微信哪版会修,升级微信后应重测。 diff --git a/scripts/agent.py b/scripts/agent.py index 5f3c936..7530063 100644 --- a/scripts/agent.py +++ b/scripts/agent.py @@ -225,7 +225,8 @@ def header_matches(header, name): def open_chat_via_search(name): c = CFG["coords"] - press("Escape", 0.3) # 关掉可能残留的下拉 + # 注意:此处绝不能按 Escape——实测按 Esc 会打断搜索交互并让渲染崩成透明壳, + # 进而被自愈逻辑误判死亡而重启进程,毁掉登录会话(坑#18)。 click(*c["search_box"]) press("ctrl+a", 0.2) paste(name)