Files
kefu/wechat_rpa/tmp/unread-account-regression.log
T
2026-09-21 10:34:06 +08:00

404 lines
33 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[导航定位] “消息”入口不在默认位置,已按文字识别定位到 y 249~336px。
[导航定位] “消息”入口不在默认位置,已按文字识别定位到 y 249~336px。
[导航定位] “消息”入口不在默认位置,已按文字识别定位到 y 249~336px。
[页面清理] test已返回“消息”页面并通过选中态校验。
[导航定位] “消息”入口不在默认位置,已按文字识别定位到 y 249~336px。
[页面清理] 返回消息页失败: 企业微信未能取得前台焦点,已取消本次点击
[页面清理] test已点击“消息”,但页面尚未确认切换成功。
[导航定位] test未识别到“消息”文字,等待重新识别,不点击其他导航项。
[导航定位] test未识别到“消息”文字,等待重新识别,不点击其他导航项。
[导航定位] test未识别到“消息”文字,等待重新识别,不点击其他导航项。
[导航定位] “消息”入口不在默认位置,已按文字识别定位到 y 249~336px。
[导航定位] “消息”入口不在默认位置,已按文字识别定位到 y 249~336px。
[导航定位] “消息”入口不在默认位置,已按文字识别定位到 y 125~168px。
[导航定位] “消息”入口不在默认位置,已按文字识别定位到 y 156~210px。
[导航定位] “消息”入口不在默认位置,已按文字识别定位到 y 187~252px。
[导航定位] “消息”入口不在默认位置,已按文字识别定位到 y 249~336px。
[导航定位] “消息”入口不在默认位置,已按文字识别定位到 y 311~420px。
[导航定位] “消息”入口不在默认位置,已按文字识别定位到 y 374~504px。
[导航定位] “消息”入口不在默认位置,已按文字识别定位到 y 249~336px。
[导航定位] “消息”入口不在默认位置,已按文字识别定位到 y 249~336px。
[AI] 本次提取的新内容:
客户甲 10:00:00
帮我看看这个
[AI] 媒体/视觉模式,已截取完整聊天消息区域 (8 bytes)
[编排] 未配置模型网关,本次使用本机 ai_config 里的单模型设置。后台的「角色编排」不会生效。
[开发模式] 模型请求地址: http://ai.zhenyangtang.com.cn/v1/chat-messages
[开发模式] 本次模型配置(聊天内容与敏感值未输出): {"服务类型":"dify","调用协议":"Dify chat-messages","出口名称":"gpt-5.6-sol","API 基础地址":"http://ai.zhenyangtang.com.cn/v1","实际请求地址":"http://ai.zhenyangtang.com.cn/v1/chat-messages","模型名称":"gpt-5.6-sol","API Key":"[已配置,值已隐藏]","请求超时(秒)":20.0,"最大回复 tokens":500,"温度":0.35,"始终视觉模式":false,"媒体消息自动视觉":true,"AI 页面守护":true,"上下文":false,"MCP 工具":false}
[AI] 回复内容: 我看到了,您想重点确认哪一处?
[AI] 媒体/视觉模式,已截取完整聊天消息区域 (8 bytes)
[AI] 已确认未读但媒体类型未知,使用通用安全追问
[AI] 回复内容: 收到消息,请把重点打字说一下
[会话守护] 当前聊天页出现新内容,检查是否为客户未回复消息...
[会话守护] 页面有变化但剪贴板为空,将按非文字消息检查。
[会话守护] 发现客户新消息,先合并连续消息再回复。
[AI] 本次提取的新内容:
客户甲 7/29 10:00:00
请问今天下午能挂号吗
[AI] 媒体/视觉模式,已截取完整聊天消息区域 (8 bytes)
[开发模式] 模型请求地址: http://ai.zhenyangtang.com.cn/v1/chat-messages
[开发模式] 本次模型配置(聊天内容与敏感值未输出): {"服务类型":"dify","调用协议":"Dify chat-messages","出口名称":"gpt-5.6-sol","API 基础地址":"http://ai.zhenyangtang.com.cn/v1","实际请求地址":"http://ai.zhenyangtang.com.cn/v1/chat-messages","模型名称":"gpt-5.6-sol","API Key":"[已配置,值已隐藏]","请求超时(秒)":20.0,"最大回复 tokens":500,"温度":0.35,"始终视觉模式":false,"媒体消息自动视觉":true,"AI 页面守护":true,"上下文":false,"MCP 工具":false}
[AI] 视觉结果与已确认未读冲突,改用可验证内容安全回复
[AI] 回复内容: 可以,我先帮您登记。
[AI] 本次提取的新内容:
客户甲 10:00:00
[图片]
[AI] [!] 聊天消息区域截图失败: capture failed
[AI] 视觉不可用,使用对应媒体类型的安全追问
[AI] 回复内容: 图片我收到了,这边暂时没看清具体内容,您想让我重点看哪一处?
[AI] 本次提取的新内容:
客户甲 7/29 10:00:00
请问今天下午能挂号吗
[AI] 媒体/视觉模式,已截取完整聊天消息区域 (8 bytes)
[AI] 回复内容: 可以的,我先帮您登记需求。
[AI] 本次提取的新内容:
贴心管家 09:59:00
上一轮已经发出的回复
[AI] 媒体/视觉模式,已截取完整聊天消息区域 (8 bytes)
[AI] 已确认未读但媒体类型未知,使用通用安全追问
[AI] 回复内容: 收到消息,请把重点再发一句
[AI] 本次提取的新内容:
客户甲 10:00:00
[图片],这个处方天数改成15天吧
[AI] 媒体/视觉模式,已截取完整聊天消息区域 (8 bytes)
[AI] 回复内容: 我看到了,先核对后再告诉您。
[待回复恢复] 已从磁盘恢复 1 个未完成任务。
[回复保护] 最终提取期间又出现新消息,重新开始消息合并等待。
[AI] 本次提取的新内容:
客户甲 10:00:00
[图片],请看一下
[AI] 媒体/视觉模式,已截取完整聊天消息区域 (8 bytes)
[回复保护] 模型处理期间又出现新消息,已取消旧回复并重新合并。
[开发模式] 模型请求地址: https://api.example/v1/chat/completions
[开发模式] 本次模型配置(聊天内容与敏感值未输出): {"服务类型":"openai","调用协议":"OpenAI 兼容视觉请求","出口名称":"vision-model","API 基础地址":"https://api.example/v1","实际请求地址":"https://api.example/v1/chat/completions","模型名称":"vision-model","API Key":"[已配置,值已隐藏]","请求超时(秒)":120.0,"最大回复 tokens":500,"温度":0.35,"始终视觉模式":true,"媒体消息自动视觉":true,"AI 页面守护":true,"上下文":true,"MCP 工具":false}
[AI] 已恢复上次未成功发送的待回复内容
[AI] 本次提取的新内容:
客户甲 10:00:00
上一轮尚未成功发送的问题
[AI] 使用文本模式分析聊天记录...
[AI] 回复内容: 这次继续回复。
[待回复恢复] 已从磁盘恢复 1 个未完成任务。
[待回复恢复] 已从磁盘恢复 1 个未完成任务。
[AI] 本次提取的新内容:
客户甲 10:00:00
[语音]
[AI] 检测到未转写语音,使用不猜测内容的安全回复
[AI] 回复内容: 这条语音我这边暂时没法准确听清,麻烦您把重点打成文字发我一下。
[AI] 媒体/视觉模式,已截取完整聊天消息区域 (8 bytes)
[AI] 回复内容: 图片我看到了,您想重点确认哪一处?
[AI] 媒体/视觉模式,已截取完整聊天消息区域 (8 bytes)
[AI] 回复内容: 这条语音我这边暂时没法准确听清,麻烦您把重点打成文字发我一下。
[AI] 媒体/视觉模式,已截取完整聊天消息区域 (8 bytes)
[AI 页面确认] 纯色头像候选不是客户消息页,已跳过且不会发送。
[AI] 媒体/视觉模式,已截取完整聊天消息区域 (8 bytes)
[AI] 视觉结果与已确认未读冲突,改用可验证内容安全回复
[AI] 回复内容: 收到消息,请把重点打字说一下。
[AI] 本次提取的新内容:
客户甲 10:00:00
帮我看看这个
[AI] 媒体/视觉模式,已截取完整聊天消息区域 (8 bytes)
[AI] 视觉结果与已确认未读冲突,改用可验证内容安全回复
[AI] 回复内容: 您想让我重点看哪一处?
[AI] 本次提取的新内容:
客户甲 10:00:00
帮我看看这个
[AI] 媒体/视觉模式,已截取完整聊天消息区域 (8 bytes)
[AI] 视觉不可用,降级为同批可见文字回复
[AI] 回复内容: 您想让我重点看哪一处?
[档案] 增量提取到 2 行新消息(历史上下文由会话档案提供)
[档案] 剪贴板没有新增文字,将检查是否为非文字消息
[AI] 媒体/视觉模式,已截取完整聊天消息区域 (8 bytes)
[AI] 无法确认本轮非文字内容,保留任务稍后重试
[待回复恢复] 已从磁盘恢复 1 个未完成任务。
[AI] 媒体/视觉模式,已截取完整聊天消息区域 (8 bytes)
[AI 页面确认] 尚未确认这是客户消息页,保留任务且不发送兜底话术。
[AI] 媒体/视觉模式,已截取完整聊天消息区域 (8 bytes)
[AI] 视觉失败且剪贴板只有旧文字,保留任务稍后重试
[AI] 本次提取的新内容:
客户甲 10:00:00
帮我看看这个
[AI] 媒体/视觉模式,已截取完整聊天消息区域 (8 bytes)
[AI] 视觉结果与已确认未读冲突,改用可验证内容安全回复
[AI] 回复内容: 您想让我重点看哪一处?
[AI] 本次提取的新内容:
客户甲 10:00:00
[语音] 00:05
明天下午能挂号吗
[AI] 媒体/视觉模式,已截取完整聊天消息区域 (8 bytes)
[AI] 回复内容: 明天下午可以,我先帮您登记。
[发送保护] 发送间隔还差 1.0 秒,等完这段再把本条发出去。
[会话守护] 已建立当前聊天页基线;画面未变化时不会操作鼠标。
[安全验证] 检测到企业微信登录/安全验证二维码,已停止全部自动点击和发送。请用手机企业微信扫码完成验证,再重新点击“开始监听”。
[剪贴板] 最新一条消息超过一屏,正在向上翻找开头…
[剪贴板] 成功提取 23 行聊天记录(共采集 2 屏 / 去重后 23 行)
[剪贴板] 成功提取 17 行聊天记录(共采集 1 屏 / 去重后 17 行)
[会话过滤] 该会话连续 3 次没有输入框,判定为订阅号/系统号,已移出回复队列,不再重复调用模型。6 小时后会自动复查一次。
[发送对账] 挂满 600 秒仍无法确认,屏幕上也找不到这句回复,放回队列重新回复。
[新消息] 正在处理 row0(坐标: 200, 16)
[页面校验] 目标会话本轮打不开,先服务其他未读会话,稍后再回来。
[新消息] 正在处理 row0(坐标: 200, 16)
[页面校验] 目标会话本轮打不开,先服务其他未读会话,稍后再回来。
[发送对账] 挂满 600 秒;回复已在屏幕上,判定发送成功。
[剪贴板] 成功提取 1 行聊天记录(共采集 1 屏 / 去重后 1 行)
[排队] 当前会话已占用 61 秒仍未回完,先放行其他会话,稍后再回来处理它。
[会话过滤] 该会话连续 2 次被判定为非聊天行(订阅号/系统号),已移出回复队列,不再为它扫描列表。6 小时后会自动复查一次。
[待回复恢复] 找到已读未回复会话,正在按头像和名称复合指纹重新打开。
[待回复恢复] 该任务连续 8 次在会话列表里找不到对应会话,判定为失效任务并已丢弃;对方再来消息会重新建单。
[发送保护] 输入框里这段字已放置 10.0 分钟,超过设置的 5 分钟,按设置直接发送框里的内容。
[人工审核] 命中审核规则「诊断」,回复已填入输入框,等待人工审核发送。
[发送对账] 等了 10 秒,最后一条仍是客户发来的,放弃这条旧草稿,改为回答最新消息。
[AI页面守护] 测试: non_message_page / open_messages / 95%(当前是微盘)
[AI页面守护] 测试: security_verification / none / 93%(需要扫码)
[安全验证] AI 判断为登录或安全验证页,已禁止自动关闭和发送。
[裁判] 评审输出无法解析,按主模型结果继续。
[发送保护] 发送后暂未确认我方消息,已保留本会话并后台对账;不会重复发送,也不会阻塞其他会话。
[发送对账] 发送结果暂未确认,已保留当前任务并后台核对;不会重复发送,也不会阻塞其他会话。
[时钟] 检测到系统时间被回拨(发现于发送对账)。已按“已过很久”重新裁定相关任务,避免超时判断永远不成立而卡死。
[发送对账] 等了 1789359616 秒,聊天区跟按回车前完全一样,判定没发出去,将重新回复。
[档案] 会话画面留存失败(不影响回复): 满了
[裁判] 评审输出无法解析,按主模型结果继续。
[页面校准] 导航栏 136px→320px,会话列表 460px→460px,输入面板顶边 1000px→1000px;会话列表、消息区与输入区域已同步重算。
[人工审核] 模型裁判评估为高风险,回复已填入输入框,等待人工审核发送。
[人工审核] 命中审核规则「诊断」,回复已填入输入框,等待人工审核发送。
[发送保护] 发送后暂未确认我方消息,已保留本会话并后台对账;不会重复发送,也不会阻塞其他会话。
[会话守护] 当前聊天页出现新内容,检查是否为客户未回复消息...
[会话守护] 复制文字未证明有新客户消息,将用视觉确认是否新增媒体。
[会话守护] 发现客户新消息,先合并连续消息再回复。
[*] 企业微信存在 2 个同类顶层窗口,已挑选真正渲染了主界面的那一个(其余为子进程空壳窗口)。
[页面校准] 导航栏 136px→320px,会话列表 460px→460px,输入面板顶边 1000px→1000px;会话列表、消息区与输入区域已同步重算。
[页面校验] 会话列表发生变化,实际打开对象与目标不一致,已停止后续发送。
[页面校验] 导航选中取色不稳定,但目标会话、标题和聊天区均已确认。
[页面校验] 点击后导航与目标选中行均消失,已确认离开消息页。
[未读扫描] 当前可视区没有客户红点,开始从列表顶部逐页查找未置顶未读…
[待回复恢复] 已从磁盘恢复 1 个未完成任务。
[发送兼容] 检测到 Enter 仅保留草稿,改用 Ctrl+Enter 发送。
[未读扫描] 继续从上轮停留位置向下查找未置顶未读…
[未读扫描] 已扫到列表底部,本轮没有找到可回复的客户未读。
[未读扫描] 当前可视区没有客户红点,开始从列表顶部逐页查找未置顶未读…
[未读扫描] 列表较长,本轮已达到 45 秒安全扫描上限;下轮从当前位置继续。
[未读扫描] 继续从上轮停留位置向下查找未置顶未读…
[未读扫描] 已扫到列表底部,本轮没有找到可回复的客户未读。
[开发模式] 模型请求地址: https://dify.example/v1/files/upload
[开发模式] 本次模型配置(聊天内容与敏感值未输出): {"服务类型":"dify","调用协议":"Dify 文件上传(AI 页面守护)","出口名称":"gpt-5.6-sol","API 基础地址":"https://dify.example/v1","实际请求地址":"https://dify.example/v1/files/upload","模型名称":"gpt-5.6-sol","API Key":"[已配置,值已隐藏]","请求超时(秒)":120.0,"最大回复 tokens":500,"温度":0.35,"始终视觉模式":true,"媒体消息自动视觉":true,"AI 页面守护":true,"上下文":true,"MCP 工具":false}
[开发模式] 模型请求地址: https://dify.example/v1/chat-messages
[开发模式] 本次模型配置(聊天内容与敏感值未输出): {"服务类型":"dify","调用协议":"Dify 视觉 chat-messages","出口名称":"gpt-5.6-sol","API 基础地址":"https://dify.example/v1","实际请求地址":"https://dify.example/v1/chat-messages","模型名称":"gpt-5.6-sol","API Key":"[已配置,值已隐藏]","请求超时(秒)":120.0,"最大回复 tokens":500,"温度":0.35,"始终视觉模式":true,"媒体消息自动视觉":true,"AI 页面守护":true,"上下文":true,"MCP 工具":false}
[发送保护] 发送后暂未确认我方消息,已保留本会话并后台对账;不会重复发送,也不会阻塞其他会话。
[剪贴板] 聊天区域边界尚未可靠识别,已取消提取。
[待回复恢复] 找到已读未回复会话,正在按头像和名称复合指纹重新打开。
[页面校验] 未读行点击后已从筛选列表消失,聊天标题逐字身份校验通过。
[新消息] 正在处理 row0(坐标: 200, 132)
[页面校验] 目标会话本轮打不开,先服务其他未读会话,稍后再回来。
[新消息] 正在处理 row0(坐标: 200, 132)
[页面校验] 目标会话本轮打不开,先服务其他未读会话,稍后再回来。
[新消息] 正在处理 row0(坐标: 200, 132)
[页面校验] 目标会话本轮打不开,先服务其他未读会话,稍后再回来。
[新消息] 正在处理 row0(坐标: 200, 132)
[页面校验] 目标会话本轮打不开,先服务其他未读会话,稍后再回来。
[新消息] 正在处理 row0(坐标: 200, 132)
[页面校验] 目标会话本轮打不开,先服务其他未读会话,稍后再回来。
[新消息] 正在处理 row0(坐标: 200, 132)
[完成] 回复完成,红点已消失 → row0
[新消息] 正在处理 row0(坐标: 200, 148)
[会话识别] 连续两帧确认候选离开消息页,已排除系统入口并继续扫描。
[会话识别] 检测到未读纯色文字头像候选,将先确认消息页与会话身份再回复。
[会话校验] 标题发生渲染变化,已通过头像和名称复合指纹确认仍是原会话。
[AI] 会话档案提供历史上下文 2 条
[AI] 本次提取的新内容:
客户甲 7/29 10:00:01
第一段
客户甲 7/29 10:00:08
第二段
客户甲 7/29 10:00:18
第三段
[AI] 使用文本模式分析聊天记录...
[开发模式] 模型请求地址: http://ai.zhenyangtang.com.cn/v1/chat-messages
[开发模式] 本次模型配置(聊天内容与敏感值未输出): {"服务类型":"dify","调用协议":"Dify chat-messages","出口名称":"gpt-5.6-sol","API 基础地址":"http://ai.zhenyangtang.com.cn/v1","实际请求地址":"http://ai.zhenyangtang.com.cn/v1/chat-messages","模型名称":"gpt-5.6-sol","API Key":"[已配置,值已隐藏]","请求超时(秒)":20.0,"最大回复 tokens":500,"温度":0.35,"始终视觉模式":false,"媒体消息自动视觉":true,"AI 页面守护":true,"上下文":true,"MCP 工具":false}
[AI] 回复内容: 统一回复
[未读扫描] 当前可视区没有客户红点,开始从列表顶部逐页查找未置顶未读…
[未读扫描] 在第 3 页找到客户未读。
[发送保护] 检测到人工草稿,已保留原内容并取消自动发送。
[发送保护] 已清除本次未完整写入的自动回复草稿。
[发送保护] 回复未能完整写入聊天输入框,已禁止按下发送键。
[页面清理] 测试检测到阻塞弹窗,已用 Esc 自动关闭。
[未读扫描] 会话列表几何无效,已禁止窗口外滚动。
[未读扫描] 会话列表几何无效,已禁止窗口外翻页。
[发送保护] 按 Enter 前窗口布局发生变化,已保留自动草稿和已生成回复,稳定后自动续发。
[视觉重定位] 窗口布局已稳定,聊天文字未新增;沿用已生成回复继续发送。
[档案] 已将旧版会话档案一次性迁移到新版复合会话键。
[档案] 旧会话档案归属无法唯一证明,已保留但不会自动用于当前会话。
[档案] 旧会话档案归属无法唯一证明,已保留但不会自动用于当前会话。
[发送对账] 检测到客户后续新消息,已放弃结果不明的旧草稿并重新合并;旧回复不会重发。
[消息合并] 开始收集本会话 0 秒内的连续消息…
[消息合并] 等待期间聊天对象发生变化,取消本次回复。
[消息合并] 当前选中会话指纹已变化,取消本次合并与回复。
[会话校验] 标题发生渲染变化,已通过头像和名称复合指纹确认仍是原会话。
[消息合并] 收集完成(期间检测到 0 次消息画面更新),将只发起 1 次模型请求。
[消息合并] 开始收集本会话 0 秒内的连续消息…
[消息合并] 收集完成(期间检测到 1 次消息画面更新),将只发起 1 次模型请求。
[消息合并] 开始收集本会话 7 秒内的连续消息…
[消息合并] 继续上次合并窗口,剩余约 0 秒…
[导航定位] “消息”入口不在默认位置,已按文字识别定位到 y 264~300px。
[页面校准] 导航栏 136px→320px,会话列表 460px→460px,输入面板顶边 1000px→1000px;会话列表、消息区与输入区域已同步重算。
[发送对账] 发送结果暂未确认,已保留当前任务并后台核对;不会重复发送,也不会阻塞其他会话。
[几何刷新] 已先按视觉更新导航和会话列表;当前尚未打开可回复会话,输入区将在打开客户后继续识别。
[导航定位] “消息”入口不在默认位置,已按文字识别定位到 y 400~480px。
[页面清理] 测试:已返回“消息”页面并通过选中态校验。
[页面清理] 测试:已返回“消息”页面并通过选中态校验。
[页面托管] 当前选中的不是“消息”,正在自动恢复工作页。
[待回复恢复] 未读任务无法落盘,已禁止点击以避免丢失消息。
[待回复恢复] 跨分页发现多个相同视觉身份,已拒绝自动选择。
[待回复恢复] 列表较长,本轮达到扫描上限;下轮从当前位置继续。
[档案] 已将旧版会话档案一次性迁移到新版复合会话键。
[待回复恢复] 已将上一版待回复任务迁移到新版会话指纹。
[会话守护] 当前聊天页出现新内容,检查是否为客户未回复消息...
[会话守护] 复制文字未证明有新客户消息,将用视觉确认是否新增媒体。
[会话守护] 发现客户新消息,先合并连续消息再回复。
[待回复恢复] 找到已读未回复会话,正在按头像和名称复合指纹重新打开。
[会话校验] 标题发生渲染变化,已通过头像和名称复合指纹确认仍是原会话。
[新消息] 正在处理 row0(坐标: 200, 148)
[完成] 回复完成,红点已消失 → row0
[待回复恢复] 已确认回复实际发出,完成档案提交且不会重复发送。
[几何刷新] 检测到右侧工具栏展开,聊天面板右边界收窄到 x=1550px。
[页面校准] 导航栏 320px→320px,会话列表 460px→460px,输入面板顶边 916px→916px;会话列表、消息区与输入区域已同步重算。
[AI] 窗口布局已变化但内容尚未确认,保留原回复且不重复调用模型。
[待回复恢复] 已从磁盘恢复 1 个未完成任务。
[待回复恢复] 已按持久化渲染身份找回红点消失前的会话任务。
[会话守护] 当前会话仍有已读未回复任务,正在安全重试...
[会话守护] 复制文字未证明有新客户消息,将用视觉确认是否新增媒体。
[会话守护] 发现客户新消息,先合并连续消息再回复。
[发送对账] 发送结果暂未确认,已保留当前任务并后台核对;不会重复发送,也不会阻塞其他会话。
[待回复恢复] 已确认回复实际发出,完成档案提交且不会重复发送。
[人工审核] 回复已填入输入框,等待人工审核发送。
[待回复恢复] 找到已读未回复会话,正在按头像和名称复合指纹重新打开。
[待回复恢复] 头像相同但聊天标题不一致,已禁止回复。
[新消息] 正在处理 row0(坐标: 200, 132)
[页面校验] 目标会话本轮打不开,先服务其他未读会话,稍后再回来。
[新消息] 正在处理 row0(坐标: 200, 132)
....................................................................................................................................................................................................................................F.............................F....................................................................................................................................................................................................................................................................................................
======================================================================
FAIL: test_global_unread_signature_follows_located_band (test_reply_safety.SafetyGateTest.test_global_unread_signature_follows_located_band)
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\kefu\wechat_rpa\test_reply_safety.py", line 7416, in test_global_unread_signature_follows_located_band
self.assertTrue(bot._global_unread_signature(with_badge))
AssertionError: b'' is not true
======================================================================
FAIL: test_message_nav_selected_uses_located_band (test_reply_safety.SafetyGateTest.test_message_nav_selected_uses_located_band)
选中态校验跟随动态定位的“消息”行,而不是固定 y 65~105。
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\kefu\wechat_rpa\test_reply_safety.py", line 7368, in test_message_nav_selected_uses_located_band
self.assertTrue(bot._message_nav_selected(selected))
AssertionError: False is not true
----------------------------------------------------------------------
Ran 551 tests in 36.459s
FAILED (failures=2)
[裁判] 评审输出无法解析,按主模型结果继续。
[页面校验] 目标会话本轮打不开,先服务其他未读会话,稍后再回来。
[新消息] 正在处理 row0(坐标: 200, 132)
[页面校验] 目标会话本轮打不开,先服务其他未读会话,稍后再回来。
[新消息] 正在处理 row0(坐标: 200, 132)
[页面校验] 目标会话本轮打不开,先服务其他未读会话,稍后再回来。
[新消息] 正在处理 row0(坐标: 200, 132)
[页面校验] 目标会话本轮打不开,先服务其他未读会话,稍后再回来。
[会话校验] 标题发生渲染变化,已通过头像和名称复合指纹确认仍是原会话。
[会话守护] 当前会话仍有已读未回复任务,正在安全重试...
[会话守护] 复制文字未证明有新客户消息,将用视觉确认是否新增媒体。
[页面校准] 导航栏 136px→320px,会话列表 460px→500px,输入面板顶边 1000px→1000px;会话列表、消息区与输入区域已同步重算。
[发送保护] 当前聊天对象已经变化,已取消粘贴和发送。
[发送保护] 聊天输入区域空间不足,已禁止窗口外粘贴和发送。
[发送保护] 按 Enter 前又收到新消息,已清除旧草稿并重新合并。
[发送保护] 生成回复后又收到新消息,已取消旧回复并重新合并。
[发送保护] 当前聊天对象已经变化,已取消粘贴和发送。
[发送保护] 当前聊天对象已经变化,已取消粘贴和发送。
[发送保护] 发送前处理了页面弹窗,本轮保留任务并重新校验。
[发送保护] 发送前处理了阻塞子窗口,本轮保留任务并重新校验。
[AI会话分类] 未知未读行判断失败,保留后续页面复核:temporary link error
[AI会话分类] 客户甲 → unknown / 0%(temporary link error)
[会话守护] 已建立当前聊天页基线;画面未变化时不会操作鼠标。
[待回复恢复] 发现已读但没有回复的客户消息,正在恢复本次回复...
[会话守护] 当前会话仍有已读未回复任务,正在安全重试...
[会话守护] 复制文字未证明有新客户消息,将用视觉确认是否新增媒体。
[会话守护] 发现客户新消息,先合并连续消息再回复。
[会话识别] 检测到未读图标型头像候选,将先确认消息页与会话身份再回复。
[待回复恢复] 发现已读但没有回复的客户消息,正在恢复本次回复...
[会话守护] 当前会话仍有已读未回复任务,正在安全重试...
[会话守护] 复制文字未证明有新客户消息,将用视觉确认是否新增媒体。
[会话守护] 发现客户新消息,先合并连续消息再回复。
[页面清理] 测试弹窗仍在,将限频重试且本轮不执行会话操作。
[页面清理] 阻塞子窗口暂未关闭,将限频重试: 发送文档
[排队] 当前会话已占用 61 秒仍未回完,先放行其他会话,稍后再回来处理它。
[页面校准] 导航栏 136px→320px,会话列表 460px→460px,输入面板顶边 280px→280px;会话列表、消息区与输入区域已同步重算。
[发送保护] 输入框里这段字已放置 10.0 分钟,超过设置的 5 分钟,按设置直接发送框里的内容。
[发送兼容] 检测到 Enter 仅保留草稿,改用 Ctrl+Enter 发送。
[发送保护] 发送后暂未确认我方消息,已保留本会话并后台对账;不会重复发送,也不会阻塞其他会话。
[待回复恢复] 已从磁盘恢复 1 个未完成任务。
[发送保护] 检测到人工草稿,已保留原内容并取消自动发送。
[待回复恢复] 已从磁盘恢复 1 个未完成任务。
[剪贴板] 最新一条消息超过一屏,正在向上翻找开头…
[剪贴板] 成功提取 96 行聊天记录(共采集 6 屏 / 去重后 96 行)
[剪贴板] 聊天框选区域空间不足,已禁止窗口外拖拽。
[窗口托管] 企业微信窗口过小,正在最大化并重新进行视觉标定。
[发送对账] 发送结果暂未确认,已保留当前任务并后台核对;不会重复发送,也不会阻塞其他会话。
[时钟] 检测到系统时间被回拨(发现于发送对账)。已按“已过很久”重新裁定相关任务,避免超时判断永远不成立而卡死。
[发送对账] 发送结果暂未确认,已保留当前任务并后台核对;不会重复发送,也不会阻塞其他会话。
[页面清理] 测试Esc 前后该区域画面完全一致,判定为聊天内容误判,本轮继续正常回复。
[AI] 聊天内容未变化,直接复用上次未发送成功的回复。
[会话身份] 导航栏宽度尚未识别确认,无法生成会话身份,自动回复已暂停 0 秒。请确认企业微信主界面已还原、且停在“消息”页。
[消息续接] 回执画面中存在方向不明确的后续消息,已保留为下一轮待核对任务。
[待回复恢复] 已确认回复实际发出,完成档案提交且不会重复发送。
[发送对账] 发送结果暂未确认,已保留当前任务并后台核对;不会重复发送,也不会阻塞其他会话。
[引擎B] 已登记新消息 → 客户甲
[引擎B] 已登记新消息 → 客户甲
[引擎B] 已登记新消息 → 客户甲
[引擎B] [!] 投递未执行: busy
[引擎B] 已登记新消息 → 客户甲
[引擎B] DB 直读失败: unreadable,备用检测继续运行
[档案] 首次遇到该会话,已暂存(2 行可见历史)
[档案] 旧会话档案归属无法唯一证明,已保留但不会自动用于当前会话。
[AI] 本次提取的新内容:
客户甲 2026/09/14 10:00:00
你好
[AI] 回复内容: 有什么可以帮您?
[档案] 首次遇到该会话,已建档(2 行可见历史)
[档案] 首次遇到该会话,已建档(1 行可见历史)
[并行监听] 模型生成期间发现新未读,已入队:客户甲
[目标恢复] 测试已双帧确认并关闭居中弹窗,继续寻找消息页。
[目标恢复] 测试已双帧确认并关闭居中弹窗,继续寻找消息页。
[视觉安全] 弹窗候选需连续两帧稳定,本轮冻结但不按键。
[页面清理] 测试检测到阻塞弹窗,已用 Esc 自动关闭。
[会话识别] 检测到未读图标型头像候选,将先确认消息页与会话身份再回复。
[会话识别] 新应用提醒 经多模态复核为系统入口,本轮不点击。
[会话识别] 新应用提醒 尚未证明是可回复客户会话(unknown/31%),本轮不点击。
[身份] 昵称疑似误读,已按已认识的联系人纠正:'一个小迷糊@徽信' → '一个小迷糊@微信'
[AI页面守护] 处置 open_messages 本轮未能执行,已记住模型结论,下一轮不等冷却直接重试。
[AI页面守护] 处置 open_messages 本轮未能执行,已记住模型结论,下一轮不等冷却直接重试。
[AI页面守护] 处置 open_messages 本轮未能执行,已记住模型结论,下一轮不等冷却直接重试。