个人微信获客 · 早会汇报 · 第二版 · 10 月 19 日

个微早会汇报 · 第二版 · 10 月 19 日

10.16—10.18 数据、五项问题的客户名单、证据与整改进度

这份和今早发布的公开页(personal-wechat-morning-sync-20261019)的区别:公开页讲结论,这份把每一位具体客户、每一条条数、证据原文摊开,给早会逐项核对用。数字口径以公开页为准;和公开页取数时刻(10-19 07:30–08:00)不同的地方,写了两个时刻的数字。

取数时刻:库和心跳取自 10-19 09:02–09:15(北京时间);07:3x–07:55 的数字来自今早的取证底稿,每处都标了「07:40」之类。三天=北京时间 10-16 00:00 到 10-18 23:59。

客户写法

客户写法:电脑字母·会话 id 前 6 位,加打码的备注编码(只留省份和字母)。附录里的清单用同样的写法,备注原名只在私聊的对照表里,按本文每张表的 # 顺序一一对应。团队成员用 A / B / C 代称。

结论标记

结论标记:已验证=有库记录、日志行或代码行;推测=合理但没有直接证据;待核实=缺证据。

00
第 0 节

先看这页

项 一句话 状态
1. 三天数据 添加新人 1、首触 1、召回发出 191(电脑 153);按规则当天该召回没发的 148 人次 已验证
2(1) 召回打断对话 #2225 今早 08:00 合并、09:03 生产已含;09:05 开窗后第一条召回已发出,核对符合规则;拦截 0 次(预期内:积压会话里没有近 24 小时互动、没有转人工) 已上线,真实拦截待出现
2(2) 首触记录缺失 系统里 17 个会话没有送达的首触,Jade 截图核对:15 个不是新好友(9 个根本不是好友、6 个几个月前的老联系人),2 个是同一位真新好友、他先开口;这 17 个里发给真新好友而漏发 0 个、发了没记录 0 个(只覆盖系统里已有会话的这 17 个;库里完全没有痕迹的新好友查不到,附录 F4 的 10 位也还没核) 原因已验证;修复部分已上线、部分待装 1.25.18
2(3) 召回漏发 到期没发的召回任务 07:40 为 91 条,现在 83 条;按规则该发没发 168 位;频次不足 37 位;补发清单 122 位(其中 C 的 9 位就是 2(2) 那 9 个空会话,已核实不是好友,要剔除,实际可补 113 位)等 Jade 确认,未执行 已验证(分类里个别归因为推测,见 (3)-3)
2(4) 升级后不自启 三天 11 次自动升级重启,只有 1 次 20 分钟内回来;三台暂停自动升级;根因没落到日志行 现象已验证 / 根因待现场复现
2(5) 老联系人当新好友 6 位(4–8 月加的好友)10 月被当新好友:5 条首触全部红叹号、1 条撤回;#2226 已合并,要装 1.25.18 才对电脑生效 已验证 / 修复待装
01
第 1 节

10.16—10.18 自动回复数据(按电脑、按天)

数据来源:看板接口 weixin-pc-live(口径代码 wecom-chat src/lib/weixin-pc-live.ts,#2221 修正后);今早公开页取数 07:30–08:00,09:05 重新取了三天合计与逐天逐台,数字没变(客户消息 33、自动回复 6、首触 1、召回已发 191)。「应召回」「当天未召回」是今早按召回规则新算的,没重算(已发数当天固定,应召回由历史送达回推,不随时间变)。

日期·电脑 添加新人 首触 召回已发 应召回(上限) 其中当天已发 当天未召回
10-16·A 0 0 4 26 4 22
10-16·B 0 0 32 44 25 19
10-16·C 1 1 18 15 13 2
10-17·A 0 0 8 33 7 26
10-17·B 0 0 47 64 43 21
10-17·C 0 0 2 2 0 2
10-18·A 0 0 3 29 3 26
10-18·B 0 0 26 48 22 26
10-18·C 0 0 13 17 13 4
三天·安卓 — 0 38 — — —
合计 1 1 191(电脑 153) 278 130 148
  • 添加新人 / 首触:全部是 C 10-16 一位。看板口径是程序读到「好友通过」旁边的具体时间才记通过(10-01 起有意如此,宁可漏记不虚增),所以不等于销售实际加了多少人;销售实际加友数靠看板底部「销售加友登记」,#2227 今早合并后「是否通过」由系统自动回填。
  • 首触另有 1 条(C·4a49e7,10-16 19:28)库里有记录但实际红叹号,#2221 后看板不再计入(见 2(5))。
  • 召回已发:「含第 1 轮」;应召回、当天已发只算第 2 轮及以后。148 是人次(同一位连着几天没发,每天都算一次),不能和「召回已发」相减。
  • A 三天当天应发 88、实发 14,约 16%;A 10-17 没掉线也只发 7/33,主因是巡检翻不到人(见 2(3))。
  • 今天(10-19)截至 09:15:召回已发 2 条(任务表 sent_at ≥ 10-19 00:00,三台电脑;09:00 开窗前为 0)。
02
第 2 节

Bug 集:分析与解决情况

(1) 召回打断正在进行的对话

问题:客户正在聊,或销售已经接手,系统还是按排期发了召回话术。

真实案例(messages 表原文时间,北京时间) —— 已验证

# 电脑·会话 召回时间 距上一条互动 证据(库里的记录) 性质
1 B·627019 10-13 12:55 2 分 27 秒 12:53 客户发图 → 12:53 自动回复「…您最关心哪部分?」→ 12:55 召回“…样板房活动对业主主要有三点…” 刚问完就推活动
2 A·5d20b8 10-10 17:27 71 分钟 10-10 14:27 通过好友后连续聊 2 小时(报价、户型、小孩房要无甲醛);16:16 自动回复;17:27 召回;18:01 客户接着问「这个一平什么报价呢」 销售一对一聊需求的间隙插入
3 B·2dd3cb 10-11 21:49 2.4 小时 报价谈判中(19:26 客户问费用,自动回复「也要四千出头」),21:49 召回;28 分钟后(22:17)会话被设为“持续人工接管:客户已引导到店” 谈判中插入
4 B·10d205 10-16 11:12 7 天 10-09 12:31 起销售手打接管(stage=handed_off 至今),客户 10-09 说「全屋给你们做」并追问价格;10-16 仍发第 4 轮召回 转人工后仍被召回

另有 7 条召回发在上次互动后 21–48 小时,属边缘,不算打断。10-16—10-18 三天库里能看到的打断是 0 条;但销售在微信里手打、没被电脑读到的消息不在库里,所以「0」不能证明没打断。检测口径:10-09 00:00 起全部 736 条召回回执(电脑 487 + 安卓 249),逐条查发送前 24/48 小时内同会话有没有客户消息或我方非召回消息;另有 36 条电脑召回是「没读到聊天的盲发」(B 11、C 25),库里无对照,是否打断待核实。

根因(已验证到代码):召回放行链上没有“这位客户最近一次互动是多久以前”和「是否已转人工」两个判据。读不到聊天时还会按服务端兜底话术照发(windows-recall-service.ts 的 read:fallback 路径);titleRecallEligibility 原先不读 handed_off_at;电脑端 60 秒空闲判断是整台电脑空闲,不是这位客户空闲(runner.py:4758)。

修复(wecom-chat #2225,服务端,不用装新版):合并 10-19 08:00:12(commit ffb0ada2);生产 /api/status 09:03 返回 commit f91b0b9(含它)。规则:同会话最近 24 小时有客户消息、自动回复、首触或销售手打,召回推迟到满 24 小时再发,不取消、不扣次数;stage=handed_off / handed_off_at / handoff_triggered_at 任一非空视为转人工,不派不发;读成功和兜底两条路径都拦,安卓同样;拦下时任务 reason 写 recent_interaction_<24h 或 handed_off。库里没有互动证据时不拦(历史没导入的老客户照旧)。

进度检查(09:15,北京 9 点开窗之后)

  • 拦截记录:windows_recall_tasks 里 reason 含 recent_interaction / handed_off 的行 = 0 条。截至此刻 0 次拦截。
  • 原因(已验证):今天的召回才刚开始(开窗 09:00),截至 09:15 共发出 2 条;而且积压的会话本来就不会被这个闸拦住——预检:现在到期未发的 83 个任务对应 83 个会话,其中已转人工 0 个、最近 24 小时库里有互动记录的 0 个(conversations 与 messages 表,09:15 查询)。所以补发这批时 0 拦截是预期,不是闸没生效;闸要等“刚聊完的客户恰好到了召回时间”才会出现第一次真实拦截。
  • 反向核(上线后发出的召回,发送前 24 小时内有没有互动、是不是转人工会话):
电脑·会话 召回发出 距上一条非召回互动 是转人工会话吗 结论
B·2b7a80 10-19 09:05:04 库内无任何客户/我方非召回消息 否 符合规则(无 24h 内互动、未转人工)
B·4af20f 10-19 09:10:54 库内无任何客户/我方非召回消息 否 符合规则(无 24h 内互动、未转人工)
  • 上线前 4 个案例已写成自动测试(#2225 的单测:AI 刚回完 2 小时 / 销售手打 5 小时 / stage=handed_off / handed_off_at 非空,都应返回不发);真实拦截的第一次要等有案例触发,待观察。
  • 没拦住的:读不到聊天、库里也没有近期互动记录的盲发(三天 36 条)。要等电脑端读屏改好再收紧。
  • 验收口径(建议每天跑):召回发送前 24 小时内同会话有客户或我方非召回消息的条数 = 0;转人工会话召回数 = 0。

(2) 首触记录缺失(最高优先级)

一句话:系统里「缺首触」的会话共 17 个(16 位客户,10-09 起三台电脑、系统认为该由我方先开口的新好友会话 39 个里没有送达首触的);Jade 10-19 早上在销售电脑上逐个搜索、截图核对:9 个不是好友,6 个是几个月前的老联系人,2 个是同一位真新好友(客户先开口,我们也回了)。没有发现「首触发了但系统没记录」,也没有漏发给真新好友。

分母是 39(22 个首触送达 + 17 个没送达),按会话算 17/39=43.6%(按人 16/38)。10-15 起 10/12,10-16 起 1/2。这个比例里的 15 个不是真新好友,所以不能读成“43.6% 的新好友没收到首触”。

(2)-1 逐个客户(17 个会话)

A 组:9 个空会话(C,10-15 14:42–15:42 建)—— 系统里:0 条消息、挂「等首触」任务;真实:9 位都不是好友,在 C 的微信里搜不到

# 电脑·会话 编码 会话创建 召回任务 端上事件 系统里的样子→处理
1 C·6c3d38 闽D** 10-15 14:42 25034bf0 14:43:30 recall_presend_read_failed 0 消息,任务 pending/awaiting_first_touch#1(due 10-16)→ 今早任务已 cancelled,不补发
2 C·eca2a0 闽A** 10-15 14:46 03667a30 14:47:26 recall_presend_read_failed 0 消息,任务 pending/awaiting_first_touch#1(due 10-16)→ 今早任务已 cancelled,不补发
3 C·6adf7e 闽A** 10-15 14:53 9099ff05 14:54:12 recall_presend_read_failed 0 消息,任务 pending/awaiting_first_touch#1(due 10-16)→ 今早任务已 cancelled,不补发
4 C·911c99 闽D** 10-15 14:55 7624cd62 14:56:09 recall_presend_read_failed 0 消息,任务 pending/awaiting_first_touch#1(due 10-16)→ 今早任务已 cancelled,不补发
5 C·0cf5d0 闽E** 10-15 15:32 544985ab 15:33:03 recall_presend_read_failed 0 消息,任务 pending/awaiting_first_touch#1(due 10-16)→ 今早任务已 cancelled,不补发
6 C·841220 闽C** 10-15 15:34 7ac320b4 15:34:54 recall_presend_read_failed 0 消息,任务 pending/awaiting_first_touch#1(due 10-16)→ 今早任务已 cancelled,不补发
7 C·4c3cb8 闽E** 10-15 15:37 3be1829d 15:38:29 recall_presend_read_failed 0 消息,任务 pending/awaiting_first_touch#1(due 10-16)→ 今早任务已 cancelled,不补发
8 C·7c4439 闽E** 10-15 15:39 d606c03b 15:40:30 recall_presend_read_failed 0 消息,任务 pending/awaiting_first_touch#1(due 10-16)→ 今早任务已 cancelled,不补发
9 C·95c219 闽E** 10-15 15:42 e6f1277b 15:43:06 recall_presend_read_failed 0 消息,任务 pending/awaiting_first_touch#1(due 10-16)→ 今早任务已 cancelled,不补发

证据:

  • 库:9 个会话 stage=nurture、messages 0 条、weixin_friend_lifecycle 无行;任务 campaign=list_topic_one_title_v1、attempts=0、claimed_at 空,今早(09:15 回读)9 个任务全部 status=cancelled,reason=not_friend_verified_by_ops_20261019。
  • 日志(C,10-15 14:42–15:43,每个会话同形态;以 C·6c3d38 为例):14:42:28 read_system_notices bubbles=0 notices=0 → first_touch_notice_only … verdict=最新一条不是「刚加上好友」的系统提示 → first_touch_skip → 同一拍 list_walk_customer queued=True;14:42:55 read_chat reason=vl_no_bubbles;14:43:27 recall_presend_new_friend direction=empty_chat 首触那种:不发召回,交给首触;事件 14:43:30 recall_presend_read_failed(detail.reason=invalid_bubble_count)。
  • 截图(Jade):9 位都不是好友。系统给不存在的好友建了会话和任务。为什么会建:待核实(猜测是列表里的占位或搜索残留行被当成客户,缺少证据)。
  • 缺口环节(已验证):端上「召回」和「首触」两条路互相把对方当责任人。召回判「空聊天=新好友,交首触」(runner.py:5328-5330);首触要求有「刚加上好友」灰字,没有就判非新好友并 30 天不再探测(first_touch.py:568 NOT_NEW_TTL_SEC)。任务停在 awaiting_first_touch#1,没有人领、没有告警。

B 组:6 位老联系人(C) —— 见 2(5) 的逐位表:5 个「首触已发但红叹号」(系统记成已发),1 个首触自动撤回。

C 组:1 位真新好友(B,两个会话)

# 电脑·会话 编码 会话创建 系统里的样子
1 B·6eb55a 湘A** 10-11 10:01 0 条消息、stage=ice_break
2 B·bdc080 湘A** 10-11 10:13 0 条消息、stage=ice_break

真实情况:同一位客户,10-10 20:07 通过好友并主动说「你好,过些天联系你」,销售 10-11 10:12 回「好的呢」。不缺首触,但这段对话系统里一条都没有,还被拆成了两个会话。

证据:Jade 的电脑截图(见公开页第 4 节);lifecycle 里该人 accepted_at=10-10 20:07;B 10-11 10 时日志里没有任何 first_touch 行(连同小时已确认送达的另一位也没有),B 的 runner 日志 other 目录缺 10-11 —— 日志缺口,无法确认当时读屏做了什么(待核实)。

(2)-2 回答 Jade 的五个问题

问题 回答 状态
是实际发送成功,还是仅未记录? 没有「发成功但没记录」:lifecycle 有首触而 opener 行没有 = 0 条;opener 行有而 lifecycle 没有的 5 条,日志 5/5 是「没送达」。17 个里:9 个没发(不是好友)、5 个发了但被拒收/要验证(红叹号)、1 个撤回没发、2 个(同一人)本来就是客户先开口 已验证
缺在哪个环节? 任务创建:9 个空会话的任务是建了的,但对象不是好友;发送执行:空会话两头推诿(9 个)、身份读不出(1 个);消息同步:B·湘A 客户先开口的对话没进库(2 个会话 0 消息);写库:红叹号仍记「已发」(5 个);前端(看板):新会话无通过证据只给个数 已验证(消息没进库的原因待核实)
实际遗漏数量? 真新好友漏发首触:0。系统记录异常:17 个会话(9 空会话 + 5 幽灵首触 + 1 撤回 + 2 同人未入库) 已验证(依据 Jade 截图)
可补录 / 不可恢复? 见 (2)-3 已验证
一致性校验机制? 见 (2)-4 部分上线,其余待做

(2)-3 补录可行性

类 个数 能补录吗 处理(状态)
9 个空会话(不是好友) 9 不需要,也不能补(根本不是好友) 任务已 cancelled(10-19 早,已回读);会话本身未删
5 条幽灵首触(红叹号仍记已发) 5 首触补发不出去(对方拒收/要验证);能做的是撤掉 messages 里 5 条记录,让口径准确 未执行。今天 09:15 回读 5 行仍在 messages 表(opener 行 id 前 8 位:030befc5 / 38da7263 / 313b4655 / ff89aec2 / 42122b04)。默认:Jade 回「撤」后执行 delete,回读 5→0
首触撤回的 1 位 1 不补发(4-14 加的老联系人、对方开了验证) 无需处理
B·湘A 两个会话 2 对话内容(客户 20:07 的话、销售 10-11 10:12 的回复)可由销售 / Jade 抄录补进 待查为什么没进库;补录 未做
10 位已送达首触但无通过时间 10 通过时间无证据,不编造;只能销售核添加日期 清单见附录 F4(C 9、A 1),等销售核对

(2)-4 一致性校验机制(修复后每天 09:00 自动对账,不一致推卡)

# 校验 状态
① 系统记了首触、30 分钟内没收到电脑端「已送达」回执的,推卡并自动撤记录 待做(电脑端撤账逻辑在 1.25.18,见 2(5))
② 新会话 2 小时后仍 0 条消息的,日报列出 待做
②′ 「等首触」/「空会话待核对」任务到期超 6 小时没人领,进心跳主卡黄牌 已上线(#2226 服务端,heartbeat-card.ts kind=recall-awaiting-first-touch-stale)
③ 电脑端「首触已发」条数和库里首触记录数对不上,报警 待做
④ 首触已发、通过记录为空,连续 2 天 >0 报警(现状 C 9 位、A 1 位,见附录 F4) 待做
⑤ 某台电脑某小时有心跳却没日志,报「日志缺口」(B 10-11 就是这样无证据) 待做

验收:用 C 的 6 位老联系人和 9 个空会话回放,必须全部拦下或报出。

(2)-5 还要核:已送达的首触是不是也发给了老联系人

10-09 起已送达的 22 条首触里,只有 12 条有通过时间(C 的 10 条里只有 1 条有)。另外 10 位没有精确通过时间(C 9、A 1;A 那位只有销售截图补的日期),无法判断是不是几个月前的老联系人。清单见附录 F4。默认:请销售在微信里看这 10 位的添加日期(只看不发);不核的话按 #2226 新规则往后执行,历史不追。

(3) 历史召回漏发、到期未执行、频次不足

(3)-1 到期未发的任务数:现在 vs 07:40

口径:windows_recall_tasks,status ∈ {pending, needs_review} 且 due_at < 取数时刻;不含 4 条 operator_paused(A 的人工暂停,due=2099)。电脑三台。

电脑 07:40 现在(09:15) 其中 pending / needs_review 现在按原因(去掉 #n 次数)
A 19 19 19 / 0 list_target_not_open 10、live_view_unverified 4、presend_read_failed 1、awaiting_first_touch 1、empty_chat_unverified 1、recall_tail_moved_before_enter 1、type_failed 1
B 55 56 50 / 6 list_target_not_open 42、read_failed 6、recall_send_uncertain 5、preempted_by_unread 1、enter_rejected 1、awaiting_first_touch 1
C 17 8 8 / 0 (空) 8
合计 91 83

变化说明(已验证):C 少 9 条=上面 2(2) 的 9 个空会话任务今早被运营改成 cancelled;B 多 1 条=10-18 晚新建的会话(会话 78137759)今早 09:00:11 生成了新任务(list_target_not_open);A 没变。C 剩的 8 条是老链路 next_day_unanswered_v1 任务(reason 为空,从未被领;三台现在都走标题链,老链路任务没人领也没人作废,其中 1 条备注含「已签」,是僵尸)。今天开窗以来没有任何一条积压任务发出(发出的召回里,第一条是 B 当天新生成的任务,不是积压;回执见 2(1) 反向核表)。到期天数:A <1天 1、1–3天 3、3–7天 4、7–14天 9、≥14天 2;B <1天 1、3–7天 30、7–14天 3、≥14天 22;C 3–7天 8。

(3)-2 「该发没发」按规则算多少

规则(三台相同,已验证):每位客户最多 7 轮,两轮之间至少隔 2 个北京自然日,客户回复后等 48 小时,发送时段 09:00–22:00,每台每天最多 50 条、两条之间至少 60 秒;三台都要等巡检在聊天列表里翻到这位客户并认准才会发,服务端不能主动指定客户。

  • 07:40 取证:按规则现在该发没发的客户 168 位(A 59 / B 75 / C 34;有的客户系统里根本没建任务,所以比任务数 91 多);候选 218 位里去掉了“今天 09:00 起才到期、属正常节奏”的约 50 位(A 8、B 41 或 42:两份底稿差 1 位,没追)。分类和名单是 07:40 的快照,没重算(今天到现在没有积压任务发出,唯一变化是 C 的 9 位被作废)。
  • 三天人次:148(A 74 / B 66 / C 8,见第 1 节),按第 1 节「当天已发/应召回」:A 每天 10%–21%(3/29~7/33)、B 46%–67%(22/48~43/64)、C 10-16 与 10-18 为 87% 与 76%,10-17 为 0/2。
  • 反方向:10-09 起没有出现两条召回间隔小于 2 天的过密触达(规则闸有效)。

(3)-3 按 Jade 的分类:条数与证据(168 位,07:40 快照)

类 A B C 合计 说明 证据案例
① 任务没建 12 6 4 22 标题链任务只在巡检认准那一刻才建,三天一次没翻到 A·c1a912
② 调度没触发 10 41 7 58 任务在排队,让位后没人再去翻 B·0f5411
③ 执行失败 7 7 9 23 领到了,读屏/输入没成功;C 的 9 位就是 2(2) 的空会话,今早已作废 A·40b28b
④ 发送失败/不确定(另计) 0 8 4 12 B 6 条「不确定是否发出」卡 10–30 天;其余红叹号取消 C·37d605
⑤ 发送成功未记录(另计) 2 1 0 3 人工核对已发出,任务改成已发,消息表没回执 A·fb934d
⑥ 被取消过,再也领不到(新发现) 20 6 5 31 该轮槽位被 cancelled 行占住 A·a34e11
⑦ 翻到了但服务端没放行(新发现) 10 15 9 34 备注不合规、客户状态、一人多会话 A·04d90a
合计(①②③⑥⑦) 59 75 34 168 ④⑤ 不在 168 内

名单与上表对不齐(待核实):上表是 07:40 按「为什么没发」分的类(⑥ 31、⑦ 34,合计 168);附录 R6/R7 名单是 07:50 按补发清单重新归的类(⑥ 30、⑦ 36,五类合计 169)。差异集中在 B(⑥ 5 对 6、⑦ 17 对 15)和一位同时被取消又被服务端拦的客户,没有逐位追到。条数以上表为准,附录名单用于找人。

证据案例(每类,已验证;日志行为 A/B/C 运行日志原文,北京时间)

① A·c1a912(第 6 轮):任务表该客户 5 条 sent,最后一次召回 10-15 09:13;规则 10-17 起可发第 6 轮,现在没有任何 pending 行在等他(09:15 查)。日志 A 10-15 09:11:04 recall_title_verified … poll_now=True(最后一次被巡检点开),10-16 00:00 之后 A 全部日志里 0 次再被认准。→ 逾期 2 个自然日,系统里没有任何一行在等他。

② B·0f5411(第 1 轮):任务 88b4d81c pending,reason=read_failed#1,attempts=0,due 09-23 12:48(已逾期 26 天,09:15 回读仍 pending)。B 10-15~10-18 日志全量里 0 命中该客户;巡检三天点开 2488 次,1245 次用在 56 位「今天才到期」的人身上、540 次用在已满 7 轮的人身上,第 1 轮待发的 49 位里只点开了 4 位。

③ A·40b28b(第 1 轮):任务 35253c1e 09-23 创建,reason=live_view_unverified,attempts=36(09:15 回读,due 10-18 21:51)。A 日志 10-16 09:44、10:22、11:17 … 10-18 20:41、21:21 共 10 次 DEFERRED 当前窗口状态未核实 … reason=recall_live_view_unverified;事件表 10-18 18:05–21:21 另有 7 条同码 blocked。服务端对该码走通用失败分支:退避 15/45/120 秒后每 30 分钟重试,无上限(windows-recall-policy.ts:169-173)。→ 一位客户占着 A 的发送机会循环失败 36 次,从未发出。

④ C·37d605(第 1 轮):10-16 18:22 领取,18:24:20 ALERT send_uncertain … score=2/3 failed_marker=True,18:24:33 customer_unreachable kind=blocked_by_customer,任务 1666ac1e → cancelled(recall_send_failed_marker);之后 18:40、19:35、19:40、19:57 巡检 list_walk_customer_unreachable … 不登记召回、不首触。→ 客户已拉黑/删除我方,不该补发。另 B 的 6 条 needs_review(recall_send_uncertain 5、enter_rejected 1,最老 09-20 创建,已 10–30 天)无人处理,且超过 48 小时不再提醒(needs-review-reminder.ts:44),同时把对应客户永久挡在召回之外(windows-title-recall.ts:400)。

⑤ A·fb934d(第 6 轮,任务 83bb45d3):10-17 10:15:18 巡检认准 → 10:16:14 brain_reply_ready → 10:17:22 ALERT send_uncertain score=1/3 receipt_exact=None receipt_visual=None failed_marker=False,任务进 needs_review;Jade 截图核对后 10:43 经 review 路由标 sent。结果:任务表 sent_at=10-17 10:17,messages 无回执(review 路由从不写回执,review/route.ts:32 注释原文 it never inserts a messages receipt);样板房协议海报也没发出(正文发出、图片没跟上)。同类:B·d18885(任务 b2c075cd,10-16 15:22,正文重复两遍、海报未见)、A·59296a(任务 f8339c02,10-18 17:35)。这 3 条正是回执表(150 条)比 sent 任务(153 条)少的 3 条。

⑥ A·a34e11(第 1 轮):第 1 轮槽位(会话×anchor×day=1)上有一条 cancelled(manual_cancel_20260927_not_new_friend,任务 dbf0963f,due 09-28 19:53);10-18 巡检把他点开 7 次,服务端每次回 round_slot_closed(windows-title-recall.ts:409-413),因为领取 RPC 的 ON CONFLICT 只更新 pending 行(supabase/wecom-ddl/20260918165118_windows_title_daily_rounds.sql:75-78)。31 位同族,其中 10 条是 09-27 人工决定取消,不少当时合理,现在要人工逐位判断,不能自动复活。

⑦ A·04d90a / A·f9165c(同一位客户的两个会话):f9165c 已发第 1 轮(10-12 18:30,任务 9be42e5b),04d90a 没发过、没有任务。巡检点开他时,服务端按「同一人所有会话的已送达」算出该发第 2 轮(windows-title-recall.ts),却用被点开的那个会话 id 去调领取 RPC,而 RPC 要求“该会话名下已送达数 = 轮次−1”(…daily_rounds.sql:52-53),于是恒返回空;日志 waiting_for_claim 10-16~18 共 60 次。「一人多会话」目前 5 位(A2/B2/C1)。另:C 的 30 位第 1 轮客户 10-16~18 点开过 17 位,服务端回 customer_title_invalid 5、customer_owner_unverified 2(备注编号位数不对或没有「地区+六位编号」)。

每类具体客户(每台电脑逾期最久的前 4 位,共 12 位左右;表里的 # 是附录完整名单里的序号)

① 任务没建(22 位)

# 电脑·会话 编码 轮次(已发) 上次召回 逾期 现状
8 A·a497a0 沪A** 第2轮(已发1) 2026-09-24 23天 无待发任务
6 A·331efd 湘A** 第4轮(已发3) 2026-10-13 4天 无待发任务
1 A·04683e 闽C** 第4轮(已发3) 2026-10-14 3天 无待发任务
2 A·1dceeb 津** 第2轮(已发1) 2026-10-14 3天 无待发任务
14 B·641dcd 闽A** 第2轮(已发1) 2026-09-15 32天 无待发任务
17 B·906295 川A** 第2轮(已发1) 2026-09-15 32天 无待发任务
18 B·df51ba 沪** 第2轮(已发1) 2026-09-15 32天 无待发任务
13 B·35b033 川A** 第2轮(已发1) 2026-09-16 31天 无待发任务
19 C·7553a8 川A** 第2轮(已发1) 2026-10-14 3天 无待发任务
20 C·dcaa0f 闽A** 第1轮(已发0) 从未召回 - 无待发任务
21 C·e701f7 备注无编号 第1轮(已发0) 从未召回 - 无待发任务
22 C·f36ce9 闽C** 第1轮(已发0) 从未召回 - 无待发任务

② 调度没触发(58 位)

# 电脑·会话 编码 轮次(已发) 上次召回 逾期 现状
6 A·c6855f 闽E** 第2轮(已发1) 2026-09-28 19天 pending·list_target_not_open·领取0次
1 A·02d28e 闽E** 第2轮(已发1) 2026-09-29 18天 pending·list_target_not_open·领取0次
3 A·48725e 闽E** 第4轮(已发3) 2026-09-29 18天 pending·list_target_not_open·领取0次
9 A·f00649 津** 第6轮(已发5) 2026-10-09 8天 pending·list_target_not_open·领取0次
19 B·180dbe 闽C** 第3轮(已发2) 2026-10-06 11天 pending·list_target_not_open·领取0次
35 B·a337e4 川A** 第5轮(已发4) 2026-10-07 10天 pending·list_target_not_open·领取1次
41 B·bb2a7b 闽A** 第3轮(已发2) 2026-10-07 10天 pending·list_target_not_open·领取0次
39 B·b88a86 津A** 第6轮(已发5) 2026-10-09 8天 pending·list_target_not_open·领取3次
52 C·0830a4 川** 第1轮(已发0) 从未召回 - pending·无原因·领取0次;服务端上次判定 customer_owner_unverified
53 C·2ae959 备注无编号 第1轮(已发0) 从未召回 - pending·无原因·领取0次;服务端上次判定 customer_owner_unverified
54 C·4c62f5 备注无编号 第1轮(已发0) 从未召回 - pending·无原因·领取0次;服务端上次判定 customer_owner_unverified
55 C·6583bb 闽A** 第1轮(已发0) 从未召回 - pending·无原因·领取0次;服务端上次判定 customer_owner_unverified

③ 执行失败(23 位;C 的 9 位已作废,其余 14 位待处理)

# 电脑·会话 编码 轮次(已发) 上次召回 逾期 现状
4 A·976638 闽E** 第5轮(已发4) 2026-10-09 8天 pending·type_failed·领取2次;服务端上次判定 title_daily_round_ready
6 A·d81056 闽E** 第6轮(已发5) 2026-10-09 8天 pending·recall_tail_moved_before_enter·领取1次;服务端上次判定 title_daily_round_ready
1 A·40b28b 苏** 第1轮(已发0) 从未召回 - pending·live_view_unverified·领取36次;服务端上次判定 title_topic_one_ready
2 A·5e1409 闽C** 第1轮(已发0) 从未召回 - pending·live_view_unverified·领取9次;服务端上次判定 title_topic_one_ready
10 B·2fafc5 闽A** 第2轮(已发1) 2026-09-15 32天 pending·read_failed#1·领取1次
8 B·0f5411 津A** 第1轮(已发0) 从未召回 - pending·read_failed#1·领取0次
9 B·1ad428 津A** 第1轮(已发0) 从未召回 - pending·read_failed#1·领取0次
11 B·76ba42 闽A** 第1轮(已发0) 从未召回 - pending·read_failed#2·领取0次
15 C·0cf5d0 闽E** 第1轮(已发0) 从未召回 - 无待发任务
16 C·4c3cb8 闽E** 第1轮(已发0) 从未召回 - 无待发任务
17 C·6adf7e 闽A** 第1轮(已发0) 从未召回 - 无待发任务
18 C·6c3d38 闽D** 第1轮(已发0) 从未召回 - 无待发任务

④ 发送失败/不确定(14 条任务,全部在附录 R4)

⑤ 发送成功未记录(3 位,全列)

# 电脑·会话 编码 轮次 发出时间 说明
1 A·fb934d 川** 第6轮 10-17 10:17 人工核对已发出·任务 sent·消息表无回执
2 B·d18885 闽D** 第1轮 10-16 15:22 人工核对已发出·任务 sent·消息表无回执
3 A·59296a 津** 第3轮 10-18 17:35 人工核对已发出·任务 sent·消息表无回执

⑥ 被取消过再领不到(30 位)

# 电脑·会话 编码 轮次(已发) 上次召回 逾期 现状
1 A·146b0e 闽E** 第1轮(已发0) 从未召回 - 无待发任务
2 A·2e8091 沪** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
3 A·3be063 闽D** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
4 A·48cc40 沪** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
23 B·4d3db7 沪** 第5轮(已发4) 2026-10-06 11天 无待发任务;服务端上次判定 round_slot_closed
21 B·12fbb4 津A** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
22 B·2bf591 闽A** 第1轮(已发0) 从未召回 - 无待发任务
24 B·5faf52 闽A** 第1轮(已发0) 从未召回 - 无待发任务
29 C·5d4fd2 闽D** 第3轮(已发2) 2026-10-16 1天 无待发任务;服务端上次判定 title_daily_round_ready
26 C·000b11 闽D** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
27 C·210097 闽A** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
28 C·28404c 闽A** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed

⑦ 服务端没放行(36 位)

# 电脑·会话 编码 轮次(已发) 上次召回 逾期 现状
1 A·41be37 闽E** 第4轮(已发3) 2026-10-03 14天 无待发任务;服务端上次判定 customer_refused
10 A·f9165c 闽C** 第2轮(已发1) 2026-10-12 5天 无待发任务;服务端上次判定 waiting_for_send_slot
2 A·76d539 闽A** 第2轮(已发1) 2026-10-15 2天 无待发任务
4 A·988aec 津** 第4轮(已发3) 2026-10-15 2天 无待发任务
19 B·826269 闽C** 第3轮(已发2) 2026-10-15 2天 无待发任务;服务端上次判定 customer_replied
12 B·46c09c 闽D** 第3轮(已发2) 2026-10-16 1天 无待发任务;服务端上次判定 next_round_tomorrow
13 B·5add34 津A** 第5轮(已发4) 2026-10-16 1天 无待发任务;服务端上次判定 title_daily_round_ready
14 B·61bc1a 川A** 第2轮(已发1) 2026-10-16 1天 无待发任务;服务端上次判定 title_topic_one_ready
29 C·3da44f 闽** 第2轮(已发1) 2026-10-16 1天 无待发任务;服务端上次判定 title_topic_one_ready
31 C·59a2bb 川A** 第3轮(已发2) 2026-10-16 1天 无待发任务;服务端上次判定 title_daily_round_ready
28 C·1b5431 闽D** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 customer_title_invalid
30 C·4b7029 闽C** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 customer_title_invalid

另有 4 条任务本身已不该再发(备注含状态词、客户已删好友等),建议作废而不是补发(全列):

# 电脑·会话 编码 原因 排除
1 A·023721 津** live_view_unverified name_status_word
2 A·d47672 闽A** presend_read_failed name_status_word
3 B·588045 闽C** list_target_not_open marketing_stopped:friend_removed
4 C·0e1697 闽A** None name_status_word

(3)-4 频次不足:37 位

口径:对 active persona 内、仍可召回、已发 1–6 轮、最后一次召回后客户没回话的人,规则要求下一轮在「上次送达自然日 + 2」当天 09:00 起可发;到 10-19 为止已超期 ≥ 2 个自然日仍没发下一轮=频次不足(07:40 取证)。

电脑 已发≥1 轮仍可召回 今天才到期(正常) 昨日到期未发 已超期 ≥2 天 超期 2–4 天 / 5–9 天 / ≥10 天
A 37 8 2 24 15 / 4 / 5
B 92 42 14 12 1 / 1 / 10
C 17 0 3 1 1 / 0 / 0

完整 37 位名单见附录 R9(最久的是 B 五位 09-15/16 发完第 1 轮至今 33–34 天没有第 2 轮)。过去 3 天没有「过密」风险,风险在于补发时一次性把积压放出去。另有 A 62 位 / C 22 位「看起来可召回」的客户属于已退役的旧微信号,当前电脑用另一个号,不在补发范围;他们是否已在新号里重新加好友,缺少证据,待核实。

为什么没补上(日志证据,三天点开次数):A 点开 1667 次(第 1 轮待发 408 次/19 人、已满 7 轮 322 次/19 人、不在名单 281 次、超期补发只有 141 次/8 人);B 点开 2488 次(「今天才到期」1245 次/56 人、已满 7 轮 540 次/42 人、超期补发 57 次/3 人、第 1 轮 27 次/4 人);C 点开 2346 次(其中 1914 次落在 227 个不在召回名单的标题上)。巡检的点开配额大量花在「没任务可领」的人身上,该发的人排不进视野。

(3)-5 补发方案:122 位的状态

> 更正:07:50 的 122 位清单里,C 的最后 9 位(附录 R10 第 114–122 位)就是 2(2) 的 9 个空会话,Jade 已核实不是好友、任务已作废,不补发。实际可补 113 位(A 38、B 68、C 7)。

  • 状态:未执行,等 Jade 回「补」。 09:15 回读:三台任务表今天发出的召回里没有任何一条属于这 122 位的补发(今天只有正常新到期的任务发出)。
  • 清单:122 位=A 38(超期 23 + 昨日到期 2 + 第 1 轮 13)、B 68(超期 10 + 昨日到期 14 + 第 1 轮 44)、C 16(超期 1 + 昨日到期 2 + 第 1 轮 13);完整见附录 R10(含建议发送时刻)。另 49 位今天起正常到期(A 8、B 41),不额外补发,由正常节奏发。
  • 已排除:已转人工、已签/勿扰、48 小时内有过对话、被拒收或删好友的客户。不补发、单列:以前被取消过轮次的 30 位、被服务端拦下的 17 位(C 13 位,多为备注编号不合规;这是补发筛选时的口径,只算本来可补发、但会被服务端拦的客户,和上表 ⑦ 不是同一集合)、该作废的 4 条、B 的 6 条「不确定是否发出」——这些要先看聊天记录再定。
  • 节奏:与日常召回共用每台每天 50 条上限,补发每台每天另限 A 20 / B 12 / C 20、每小时 ≤4 条,09:40–21:20 均匀铺开、三台错开 5 分钟;先补逾期最久的,第 1 轮最后补;发前再查 48 小时内有没有新对话,有就跳过。A 约 2 天、C 1 天、B 约 6 天补完。
  • 还缺什么:服务端现在没法主动指定「先发这位」,只能等巡检翻到。两种做法:① 销售按名单在微信里点开这位客户的聊天(不用打字),程序认出来后自动按规则发,所有闸门照常生效,但占人力;② 做一个「按名单优先翻到」的功能(建议,工作量小)。默认:Jade 不回就不补发;回「补」就先走 ① 的 C(1 天可清完),② 同步开发。

(4) 自动升级后无法自启动

现象:三天里 client-auto-update 共发 11 次 restart_client(wecom_fleet_commands,created_by=client-auto-update,10 次 status=delivered、无 acked_at——端上自杀,设计上不回执;C 10-17 16:20 那次(#6)是 done、有 acked_at),只有 1 次在预期的 10–15 分钟附近回来。

# 电脑 指令(北京) 日志中断(最后一行→新进程第一行) 多久回来 怎么回来的
1 A 10-16 08:30 08:32→09:26 54 分钟 不知道(无人为痕迹也无自动痕迹)
2 C 10-16 08:30 08:32→11:15 163 分钟 不知道;与微信登录框重叠(08:09–约 11:15)
3 C 10-16 14:40 14:42→16:16 93 分钟 不知道
4 B 10-16 18:50 18:53→10-17 08:19 806 分钟 次日到岗(推测)
5 A 10-16 18:50 18:52→19:28 36 分钟 不知道;19:30 又起一次,疑似有人在现场(推测)
6 C 10-17 16:20 16:22→16:41 19 分钟 自动(唯一接近预期的一次,指令晚投递)
7 C 10-17 18:00 18:03→21:11 188 分钟 不知道
8 A 10-18 08:30 08:31→17:03 512 分钟 人工(Jade 确认 17:03 手动开)
9 B 10-18 08:30 08:33→09:33 59 分钟 人工(Jade 确认 09:33 手动;送达时微信正停在登录框)
10 B 10-18 11:00 11:03→17:03 360 分钟 人工(17:03)
11 C 10-18 21:30 21:31→10-19 07:16 586 分钟 07:16 首行无接管痕迹,时间吻合到岗(推测)

取证方式:wecom_fleet_commands 指令时刻 + 事件表 update_installing/installed + runner 日志相邻两行间隔 ≥240 秒记一次「Winds 进程无日志」(心跳表只有最新态,推不出历史)。已验证:11 次暗区中位 163 分钟,≥180 分钟的 5 次;明确人工恢复证据只有 #8 #9 #10(来自 Jade),其余 8 次靠什么回来缺证据。

不是关机:三台暗区期间微信主进程 pid 不变(A 6580、B 10468、C 31916,日志 window_watch hooked pid=),是我们的程序没被拉起,不是电脑没开(已验证)。

掉线小时数:三台日志无写入合计 63.9 小时(工作时段 9–22 点 31.5 小时:A 9.1 / B 9.7 / C 12.7);其中 restart_client 直接引起的(含与登录框重叠的段)47.9 小时。另 B 10-18 04:31–约 09:33 微信被踢回登录框,程序在跑、看板显示在线但干不了活(约 4 小时),已单列。

现在的心跳与版本(09:15 重新取,wecom_loop_heartbeats)

电脑 最近心跳 版本 07:3x 时 在「暂停自动升级」名单
A 09:12:50 1.25.14+8d72b4b 1.25.13(update.stage=ready,目标 1.25.14) 是
B 09:10:57 1.25.14+8d72b4b 1.25.14 是
C 09:15:16 1.25.15+ce26c6a 1.25.15(07:16 刚回来) 是(今早已加入,检查接口回读三台均为「已排除」)
  • A 的版本在 07:3x 之后变了:事件表 07:53:50 update_installed 1.25.14+8d72b4b(随后 autostart_audit),同时间窗里 wecom_fleet_commands 没有对 A 的 restart_client,所以是有人在现场启动了程序(推测,没有现场证据;日志首行有没有 takeover 痕迹未查)。这也说明“每天到岗双击 start.bat 会顺带装最新版”是目前唯一可靠的升级路径。
  • 三台都没装 1.25.16(记录拉起过程)、1.25.18(首触修复,尚未出包);生产里 restart_launcher_trace 事件全表 0 条。

根因

  • 已验证:① 重启指令发出去就算成功,没有任何环节确认新程序起来了(main.py:1183-1229:写 restart_done.json → 起隐藏 PowerShell 延 15 秒 Start-Process start.bat → 本进程 8 秒后 os._exit);② 1.25.15 及以前,start.bat 之后的接力(run.ps1 → startup_update.py → install.ps1 → 新进程)一律不写文件日志;③ install.ps1 失败路径会弹 MessageBox 等人点(:16-18,无人值守就停在那里);④ 安装本身不慢(C 10-18 08:26:39→08:27:08,约 28 秒);⑤ 监控盖不到这条链(wecom-heartbeat/route.ts:1148 只盯 kind=update,不盯 restart_client)。
  • 推测、未证实:隐藏 PowerShell 没起来或被拦;启动锁冲突后静默退出;安装器停在弹窗;startup_update.py 超时(上限 240 秒)。成功与失败的分布看不出规律。
  • 现场说法核对:B「18 号上午微信未登录」与日志吻合(04:31 被踢回登录框);C「17 号上午微信未登录」日志对不上(日志里的登录框是 10-16 上午;10-17 上午程序没在写日志,既不能证实也不能否定)。

进度

  • 已做:#2216(1.25.16)拉起每步写 state/restart_launcher.log、下次启动上报 restart_launcher_trace,已出包,三台都没装;A、B(10-18 17:2x)和 C(10-19 早)都加入 WECOM_AUTO_UPDATE_EXCLUDE_HOSTS,10-18 11:03 之后 A、B 再没收到 restart_client,C 10-18 21:30 那次是排除前最后一次。
  • 没做:根因没落到日志行(1.25.16 没在现场跑过);restart_client 送达后无心跳不告警;24 小时同标题节流吞掉第二次掉线告警(待核实);开机自启三台都没证实(C 远程开了两次都被拦:计划任务 Unspecified error、启动文件夹 UnauthorizedAccessException,疑似安全软件;A、B 没试过)。
  • 下一步(需要现场):① 选一台有人在的电脑(默认 C)手动装 1.25.16,再远程重启一次,读 trace 定位卡在哪一步——注意 trace 只写到 start.bat 退出码,安装器那段要 1.25.18 补日志;② 修好后再恢复自动升级,并给“重启后 20 分钟没心跳”加告警;③ C 请销售确认启动文件夹快捷方式放了没有、截图安全软件拦截记录;④ 微信被踢回登录框时程序显示在线但不干活,看板单独标红。

(5) 把老客户当成新好友发送首触

问题:程序判断「是不是新好友」只看聊天窗口里有没有「你已添加了…」「我通过了你的朋友验证请求」这类灰字,没核对灰字上方的日期;几个月前加的好友、后来没聊过,窗口里最新的仍是那行老提示,于是被当新好友发了首触。这 6 位后来都删了我们或开了朋友验证,发出的全被拒收。如果对方没删,客户会在加好友几个月后突然收到一条「新好友欢迎语」。

6 位老联系人(均在 C;证据=Jade 10-19 在 C 微信上的截图 + 库 + C 运行日志) —— 已验证

# 电脑·会话 编码 加好友(截图) 10 月首触 结果(截图) 系统里 / 距添加
1 C·e54fd2 津A** 5月12日 16:56 「你已添加了…」 10-12 13:04 已发出,红叹号“消息已发出,但被对方拒收了” 记成首触已发(opener 行在、lifecycle 无);约 5 个月
2 C·c19786 备注无编号 8月7日 17:21 「你已添加了…」 10-13 15:05 已发出,红叹号“消息已发出,但被对方拒收了” 记成首触已发(opener 行在、lifecycle 无);约 2 个月
3 C·d40f0a 备注无编号 8月15日 16:56 「我通过了你的朋友验证请求」 10-13 16:15 已发出,红叹号;屏上有“开启了朋友验证,你还不是他(她)朋友” 记成首触已发(opener 行在、lifecycle 无);约 2 个月
4 C·3d14d5 备注无编号 8月15日 16:20 「我通过了你的朋友验证请求」 10-14 18:19 已发出,红叹号;屏上有「开启了朋友验证…」 记成首触已发(opener 行在、lifecycle 无);约 2 个月
5 C·4a49e7 备注无编号 8月15日 16:24 「我通过了你的朋友验证请求」 10-16 19:28 已发出,红叹号;屏上有「开启了朋友验证…」 记成首触已发(opener 行在、lifecycle 无);约 2 个月
6 C·624c62 闽D** 4月14日 17:16 「我通过了你的朋友验证请求」 10-14 18:09 候选,未发 自动撤回,没有发出(认不出身份);屏上有「开启了朋友验证…」 首触撤回,库里 0 消息;约 6 个月

证据(日志原行,C,已重新下载对应小时核过):5 条首触都是 ALERT send_uncertain … failed_marker=True 后接 ALERT customer_unreachable … source=first_touch,再 first_touch_not_sent result=uncertain tag=send_uncertain、first_touch_sent ok=False:

会话 日志(北京) customer_unreachable
C·e54fd2 10-12 13:04:50 send_uncertain / 13:04:58 blocked_by_customer“消息已发出,但被对方拒收了”
C·c19786 10-13 15:05:56 / 15:06:02 blocked_by_customer
C·d40f0a 10-13 16:15:33 / 16:15:40 friend_removed“开启了朋友验证,你还不是他(她)朋友”
C·3d14d5 10-14 18:20:03 / 18:20:16 friend_removed
C·4a49e7 10-16 19:29:00 / 19:29:06 friend_removed

第 6 位(C·624c62):10-14 18:09:44 first_touch_candidate direction=we_added → 18:09:58 first_touch_not_sent result=deferred tag=identity_unreachable…identity_unreadable → 18:10:02 first_touch_undelivered … retracted=True(15 分钟后重试的结果日志没下,待核实)。

为什么记成已发(已验证到代码):idle_history.py:2153-2156 elif unknown or maybe_delivered: 把「看不清有没有送达」一律按「可能已送达」记已发且不撤账;服务端 chat/reply/route.ts:3472 recordOpenerSent(交话术时先记 sent)只在端上回报 opener_undelivered(同文件 3484–3497 那段)才撤;同一拍里 customer_unreachable(红叹号/需验证=确定没送达)已判出,首触路径没用它改判(idle_history.py:2160-2165 只做 halt_today)。副作用:看板「首触」多计。

修复(#2226,10-19 08:29 合并;电脑端版本 1.25.18(#2226 当时记的是 1.25.17,未出包,已并入 1.25.18);尚未出包) —— 下面第 2、3 点电脑端代码要装 1.25.18 才对电脑生效

  1. 添加提示旁的日期分隔条必须读得到且距今 ≤ 3 天(first_touch.py:325 NOTICE_MAX_AGE_SEC = 3 * 86400;超过 → notice_stale;读不到 → notice_date_unverified,skip 且不落 30 天封禁)。
  2. 同一屏出现“开启了朋友验证 / 你还不是他朋友 / 被对方拒收”直接判 unreachable,不发(first_touch.py:331 unreachable_notice、:354-356)。
  3. send_uncertain 同拍读到 customer_unreachable → 走 first_touch_undelivered 撤账,不记已发(idle_history.py:2143、2159)。
  4. 空窗口读不出内容时不再判新好友交首触,按“读屏失败、24 小时后再试”处理,不兜底发、不进 awaiting_first_touch(windows-recall-service.ts 的 EMPTY_CHAT_UNVERIFIED,服务端部分已随部署上线);「等首触」超 6 小时没人领进心跳主卡黄牌(已上线)。
  5. ~~首触只在北京 9:00–22:00 发~~(#2226 原方案,已被推翻):Jade 10-19 定首触不限时段,凌晨通过也当场发,#2229 已合并把这个时段闸关掉,随 1.25.18 生效。

验收:C 的 6 位回放必须全部不发(第 2 点覆盖 5 位有「开启了朋友验证」的;第 1 点覆盖 e54fd2、c19786 这类只有「你已添加了…」但日期是 5 月 / 8 月的);认出拒收后记录被撤;夜里首触 0 条。

状态:代码已合并;电脑端 1.25.18 未出包,三台都没装(A/B 1.25.14、C 1.25.15);装之前这类问题仍可能再发生。历史上 5 条红叹号首触记录未撤(见 (2)-3)。

03
第 3 节

今天上线 / 进行中 / 待确认

状态 事项 默认做法
已上线 #2225 召回 24 小时互动闸 + 转人工不召回(服务端,生产 f91b0b9 含) 每天跑一次“召回前 24 小时有互动”SQL,期望 0
已上线 #2226 服务端部分:空窗口不判新好友、等首触超 6 小时进主卡黄牌 —
已上线 #2227 销售加友登记「是否通过」系统自动回填 —
已合并(待出包) #2229 首触不限时段:Jade 10-19 定「凌晨通过也要当场发首触」,#2226 里的 9–22 点首触窗改为关闭(召回仍 9–22 点);随 1.25.18 生效 装好后看夜里通过的好友是否当场收到首触
已上线(开关关) #2228 转人工会话客户再开口提醒销售(开关 WECOM_HANDOFF_INBOUND_REMINDER 默认关) 见下「待确认」
已完成 三台暂停自动升级;C 的 9 个空会话任务改 cancelled(reason=not_friend_verified_by_ops_20261019) —
进行中 1.25.18 出包(首触电脑端修复:3 天内添加提示、红叹号/需验证不发并撤账;首触不限时段,见下一行) 出包后先装 C,再装 A、B;装好后回放 6 位老联系人
进行中 B·湘A 对话没进库:查原因和同类数量 今天报同类会话数
待确认 补发召回 113 位(07:50 清单 122 位,去掉 C 的 9 位非好友) Jade 不回就不发;回「补」先走「销售点开」C,开发「按名单优先翻到」
待确认 撤 5 条幽灵首触记录(messages 表 delete 5 行) 默认:Jade 回「撤」后执行,回读 5→0;不回就保留
待确认 10 位已送达无通过时间的客户:销售核添加日期(附录 F4) 名单发销售;不核按新规则往后
待确认 哪台现场装 1.25.16/1.25.18 并复现重启 默认 C,请销售下午空闲时开着电脑
待确认 打开 #2228 开关:转人工后客户再开口推提醒给销售群 默认先不开(会往销售群推卡片,属对外发送);Jade 回「开」后打开
待办 召回失败重试设上限;被取消的轮次可人工复活;同一客户多会话合并 A·40b28b、A·a34e11、A·04d90a 三个案例回放通过
待办 首触每日对账告警((2)-4 的 ①③④⑤)、微信掉到登录框看板标红 用 6 位老联系人 + 9 个空会话回放

另有两个发现(和第 2(1) 同族,转人工后客户再开口没人跟进):A·490f06(编码 闽D**):10-11 13:25 被管理员设为“由销售人工回复,未经手动恢复不得自动接回”(stage=handed_off,handed_off_at 为空),此后客户在 10-11 13:50–10-15 10:46 又发来 50 条消息,库里我方 0 条;B·2dd3cb(编码 闽D**):10-11 22:17 设为持续人工接管(handed_off_at 同样为空),此后客户 10-12 09:42–10-18 17:04 又发 17 条,库里我方 0 条。因为 handed_off_at 为空,现有二次提醒(只覆盖 handed_off_at 在 [now-24h, now-4h] 的会话)覆盖不到;#2228 的再开口提醒能覆盖,但开关默认关。销售是否在微信里手打回复过:待核实(销售手打没被电脑读到的话库里没有)。

附
附录

附录

说明:每张表的 # 顺序和私聊里的「备注名对照表」一致。电脑·会话=设备字母·会话 id 前 6 位。取数时刻见页首。

F4 已送达首触但没有精确通过时间的 10 位(C 9、A 1;待销售核添加日期)
# 电脑·会话 编码 首触时间 accepted_on 来源 召回任务现状
1 A·76d539 闽A** 10-12 10:55 2026-10-12 manual_screenshot 无待发任务
2 C·80ff66 备注无编号 10-12 12:09 - - 无待发任务
3 C·ad64a8 备注无编号 10-12 13:51 - - pending·无原因·领取0次
4 C·1b5431 闽D** 10-12 15:39 - - 无待发任务
5 C·9f2b49 备注无编号 10-13 11:56 - - 无待发任务
6 C·870e65 备注无编号 10-13 16:40 - - 无待发任务
7 C·91a1e2 备注无编号 10-14 13:56 - - 无待发任务
8 C·55c902 备注无编号 10-14 17:38 - - 无待发任务
9 C·e266b9 备注无编号 10-15 10:49 - - 无待发任务
10 C·fdde13 闽C** 10-16 13:54 - - 无待发任务
R1 ① 任务没建(22 位)
# 电脑·会话 编码 轮次(已发) 上次召回 逾期 现状
1 A·04683e 闽C** 第4轮(已发3) 2026-10-14 3天 无待发任务
2 A·1dceeb 津** 第2轮(已发1) 2026-10-14 3天 无待发任务
3 A·204ce8 闽D** 第6轮(已发5) 2026-10-14 3天 无待发任务
4 A·272187 闽C** 第6轮(已发5) 2026-10-14 3天 无待发任务
5 A·2ef5f9 闽A** 第1轮(已发0) 从未召回 - 无待发任务
6 A·331efd 湘A** 第4轮(已发3) 2026-10-13 4天 无待发任务
7 A·5d20b8 闽D** 第3轮(已发2) 2026-10-15 2天 无待发任务
8 A·a497a0 沪A** 第2轮(已发1) 2026-09-24 23天 无待发任务
9 A·b84885 闽D** 第6轮(已发5) 2026-10-14 3天 无待发任务
10 A·c1a912 闽D** 第6轮(已发5) 2026-10-15 2天 无待发任务
11 A·cbd6f4 闽E** 第3轮(已发2) 2026-10-14 3天 无待发任务
12 A·f3abc8 沪A** 第3轮(已发2) 2026-10-15 2天 无待发任务
13 B·35b033 川A** 第2轮(已发1) 2026-09-16 31天 无待发任务
14 B·641dcd 闽A** 第2轮(已发1) 2026-09-15 32天 无待发任务
15 B·76dd55 津A** 第2轮(已发1) 2026-10-01 16天 无待发任务
16 B·7a1fa3 津** 第1轮(已发0) 从未召回 - 无待发任务
17 B·906295 川A** 第2轮(已发1) 2026-09-15 32天 无待发任务
18 B·df51ba 沪** 第2轮(已发1) 2026-09-15 32天 无待发任务
19 C·7553a8 川A** 第2轮(已发1) 2026-10-14 3天 无待发任务
20 C·dcaa0f 闽A** 第1轮(已发0) 从未召回 - 无待发任务
21 C·e701f7 备注无编号 第1轮(已发0) 从未召回 - 无待发任务
22 C·f36ce9 闽C** 第1轮(已发0) 从未召回 - 无待发任务
R2 ② 调度没触发(58 位)
# 电脑·会话 编码 轮次(已发) 上次召回 逾期 现状
1 A·02d28e 闽E** 第2轮(已发1) 2026-09-29 18天 pending·list_target_not_open·领取0次
2 A·319650 川** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
3 A·48725e 闽E** 第4轮(已发3) 2026-09-29 18天 pending·list_target_not_open·领取0次
4 A·7137dc 川A** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
5 A·be20b3 川** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
6 A·c6855f 闽E** 第2轮(已发1) 2026-09-28 19天 pending·list_target_not_open·领取0次
7 A·deff43 津** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取1次
8 A·e2cc73 苏** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
9 A·f00649 津** 第6轮(已发5) 2026-10-09 8天 pending·list_target_not_open·领取0次
10 A·f713bd 沪** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取4次
11 B·057a83 闽A** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
12 B·097bab 川A** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取1次
13 B·0a5d0e 闽A** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
14 B·0b4d38 闽A** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
15 B·0cad39 闽A** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
16 B·1206c1 闽A** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
17 B·1297a6 津A** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取1次
18 B·12d6a3 湘A** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
19 B·180dbe 闽C** 第3轮(已发2) 2026-10-06 11天 pending·list_target_not_open·领取0次
20 B·1b70c1 闽E** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
21 B·27741a 湘A** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次;服务端上次判定 daily_rounds_complete
22 B·369910 闽B** 第1轮(已发0) 从未召回 - pending·preempted_by_unread·领取0次
23 B·546ab3 闽A** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
24 B·58790e 闽A** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
25 B·58a6af 闽A** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
26 B·652662 闽A** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
27 B·6788fe 津A** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取1次
28 B·75d9de 闽A** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
29 B·77b01a 川A** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
30 B·7fd340 沪** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
31 B·93b77b 津A** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
32 B·95b97e 闽C** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
33 B·9713f5 闽C** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
34 B·991f3f 川A** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
35 B·a337e4 川A** 第5轮(已发4) 2026-10-07 10天 pending·list_target_not_open·领取1次
36 B·a94932 闽C** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
37 B·aca7ab 津A** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
38 B·b2ee6a 川A** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
39 B·b88a86 津A** 第6轮(已发5) 2026-10-09 8天 pending·list_target_not_open·领取3次
40 B·b8b7be 沪** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
41 B·bb2a7b 闽A** 第3轮(已发2) 2026-10-07 10天 pending·list_target_not_open·领取0次
42 B·be5284 闽A** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
43 B·bf6ec4 沪** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
44 B·c880f7 闽C** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
45 B·d16fbf 湘A** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
46 B·e0dd19 闽J** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
47 B·e61669 闽A** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取1次
48 B·eaf940 沪** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
49 B·f12d3a 津A** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
50 B·f8a016 闽C** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
51 B·fbdb65 湘A** 第1轮(已发0) 从未召回 - pending·list_target_not_open·领取0次
52 C·0830a4 川** 第1轮(已发0) 从未召回 - pending·无原因·领取0次;服务端上次判定 customer_owner_unverified
53 C·2ae959 备注无编号 第1轮(已发0) 从未召回 - pending·无原因·领取0次;服务端上次判定 customer_owner_unverified
54 C·4c62f5 备注无编号 第1轮(已发0) 从未召回 - pending·无原因·领取0次;服务端上次判定 customer_owner_unverified
55 C·6583bb 闽A** 第1轮(已发0) 从未召回 - pending·无原因·领取0次;服务端上次判定 customer_owner_unverified
56 C·a72450 云** 第1轮(已发0) 从未召回 - pending·无原因·领取0次;服务端上次判定 customer_owner_unverified
57 C·a9fc46 备注无编号 第1轮(已发0) 从未召回 - pending·无原因·领取3次;服务端上次判定 customer_owner_unverified
58 C·ad64a8 备注无编号 第1轮(已发0) 从未召回 - pending·无原因·领取0次
R3 ③ 执行失败(23 位;C 的 9 位 awaiting_first_touch 今早已作废)
# 电脑·会话 编码 轮次(已发) 上次召回 逾期 现状
1 A·40b28b 苏** 第1轮(已发0) 从未召回 - pending·live_view_unverified·领取36次;服务端上次判定 title_topic_one_ready
2 A·5e1409 闽C** 第1轮(已发0) 从未召回 - pending·live_view_unverified·领取9次;服务端上次判定 title_topic_one_ready
3 A·631e5a 津** 第1轮(已发0) 从未召回 - pending·empty_chat_unverified·领取3次
4 A·976638 闽E** 第5轮(已发4) 2026-10-09 8天 pending·type_failed·领取2次;服务端上次判定 title_daily_round_ready
5 A·b21f29 闽E** 第1轮(已发0) 从未召回 - pending·live_view_unverified·领取8次
6 A·d81056 闽E** 第6轮(已发5) 2026-10-09 8天 pending·recall_tail_moved_before_enter·领取1次;服务端上次判定 title_daily_round_ready
7 A·fa6a1d 津** 第1轮(已发0) 从未召回 - pending·awaiting_first_touch#1·领取0次
8 B·0f5411 津A** 第1轮(已发0) 从未召回 - pending·read_failed#1·领取0次
9 B·1ad428 津A** 第1轮(已发0) 从未召回 - pending·read_failed#1·领取0次
10 B·2fafc5 闽A** 第2轮(已发1) 2026-09-15 32天 pending·read_failed#1·领取1次
11 B·76ba42 闽A** 第1轮(已发0) 从未召回 - pending·read_failed#2·领取0次
12 B·a84c0e 闽A** 第1轮(已发0) 从未召回 - pending·awaiting_first_touch#1·领取0次
13 B·c656dc 津A** 第1轮(已发0) 从未召回 - pending·read_failed#2·领取0次
14 B·caac7f 津A** 第1轮(已发0) 从未召回 - pending·read_failed#1·领取0次
15 C·0cf5d0 闽E** 第1轮(已发0) 从未召回 - 无待发任务
16 C·4c3cb8 闽E** 第1轮(已发0) 从未召回 - 无待发任务
17 C·6adf7e 闽A** 第1轮(已发0) 从未召回 - 无待发任务
18 C·6c3d38 闽D** 第1轮(已发0) 从未召回 - 无待发任务
19 C·7c4439 闽E** 第1轮(已发0) 从未召回 - 无待发任务
20 C·841220 闽C** 第1轮(已发0) 从未召回 - 无待发任务
21 C·911c99 闽D** 第1轮(已发0) 从未召回 - 无待发任务
22 C·95c219 闽E** 第1轮(已发0) 从未召回 - 无待发任务
23 C·eca2a0 闽A** 第1轮(已发0) 从未召回 - 无待发任务
R4 ④ 发送失败/不确定(B 6 条 needs_review + 8 条窗口内红叹号/关闭取消)
# 电脑·会话 编码 轮次 时间 原因
1 B·791e24 闽B** 第3轮 10-17 10:43 recall_send_failed_marker
2 B·97d6c9 津A** 第1轮 10-17 09:47 recall_send_failed_marker
3 B·9beab2 闽A** 第4轮 10-17 09:12 recall_send_failed_marker
4 B·26a316 闽C** 第6轮 10-18 20:36 recall_send_failed_marker
5 C·37d605 闽A** 第1轮 10-16 18:22 recall_send_failed_marker
6 C·5d4fd2 闽D** 第3轮 10-18 09:05 customer_closed
7 C·aeb083 闽A** 第3轮 10-18 09:06 recall_send_failed_marker
8 C·766e77 闽E** 第3轮 10-18 10:39 recall_send_failed_marker
9 B·09bf59 沪** 第1轮 09-29 15:45 needs_review·recall_send_uncertain·创建 09-20
10 B·12ba35 闽A** 第1轮 10-04 09:31 needs_review·recall_send_uncertain·创建 09-23
11 B·db9f28 津A** 第1轮 10-06 14:10 needs_review·recall_send_uncertain·创建 09-23
12 B·19f5e0 川A** 第5轮 09-29 11:38 needs_review·recall_send_uncertain·创建 09-29
13 B·4bb62d 闽A** 第7轮 09-29 12:23 needs_review·enter_rejected·创建 09-29
14 B·382b3b 津A** 第1轮 10-08 13:22 needs_review·recall_send_uncertain·创建 10-08
R6 ⑥ 被取消过再领不到(30 位)
# 电脑·会话 编码 轮次(已发) 上次召回 逾期 现状
1 A·146b0e 闽E** 第1轮(已发0) 从未召回 - 无待发任务
2 A·2e8091 沪** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
3 A·3be063 闽D** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
4 A·48cc40 沪** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
5 A·5c9c24 豫** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
6 A·7b6665 闽D** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
7 A·8825bd 闽A** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
8 A·896a6f 沪** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
9 A·96ff68 闽D** 第1轮(已发0) 从未召回 - 无待发任务
10 A·9afa1b 闽A** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
11 A·a34e11 闽D** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
12 A·a80961 闽D** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
13 A·d005db 闽C** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
14 A·d1da04 湘A** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
15 A·da6f04 闽C** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
16 A·db859f 川** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
17 A·e37052 闽C** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
18 A·ecdac8 闽D** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
19 A·f26080 闽E** 第1轮(已发0) 从未召回 - 无待发任务
20 A·f4e634 闽D** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
21 B·12fbb4 津A** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
22 B·2bf591 闽A** 第1轮(已发0) 从未召回 - 无待发任务
23 B·4d3db7 沪** 第5轮(已发4) 2026-10-06 11天 无待发任务;服务端上次判定 round_slot_closed
24 B·5faf52 闽A** 第1轮(已发0) 从未召回 - 无待发任务
25 B·ec397a 闽A** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
26 C·000b11 闽D** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
27 C·210097 闽A** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
28 C·28404c 闽A** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
29 C·5d4fd2 闽D** 第3轮(已发2) 2026-10-16 1天 无待发任务;服务端上次判定 title_daily_round_ready
30 C·e444a5 闽C** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
R7 ⑦ 服务端没放行(36 位)
# 电脑·会话 编码 轮次(已发) 上次召回 逾期 现状
1 A·41be37 闽E** 第4轮(已发3) 2026-10-03 14天 无待发任务;服务端上次判定 customer_refused
2 A·76d539 闽A** 第2轮(已发1) 2026-10-15 2天 无待发任务
3 A·770399 闽C** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 round_slot_closed
4 A·988aec 津** 第4轮(已发3) 2026-10-15 2天 无待发任务
5 A·9b7660 闽E** 第5轮(已发4) 2026-10-16 1天 无待发任务;服务端上次判定 title_daily_round_ready
6 A·abba1e 闽D** 第3轮(已发2) 2026-10-15 2天 无待发任务;服务端上次判定 round_slot_closed
7 A·b0a242 津** 第6轮(已发5) 2026-10-16 1天 无待发任务;服务端上次判定 next_round_tomorrow
8 A·ba0509 湘** 第7轮(已发6) 2026-10-15 2天 无待发任务
9 A·d5e2fb 津** 第4轮(已发3) 2026-10-15 2天 无待发任务
10 A·f9165c 闽C** 第2轮(已发1) 2026-10-12 5天 无待发任务;服务端上次判定 waiting_for_send_slot
11 B·1a12f6 湘A** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 customer_ineligible
12 B·46c09c 闽D** 第3轮(已发2) 2026-10-16 1天 无待发任务;服务端上次判定 next_round_tomorrow
13 B·5add34 津A** 第5轮(已发4) 2026-10-16 1天 无待发任务;服务端上次判定 title_daily_round_ready
14 B·61bc1a 川A** 第2轮(已发1) 2026-10-16 1天 无待发任务;服务端上次判定 title_topic_one_ready
15 B·67d114 闽C** 第5轮(已发4) 2026-10-17 0天 无待发任务;服务端上次判定 customer_replied
16 B·777bab 闽A** 第6轮(已发5) 2026-10-16 1天 无待发任务;服务端上次判定 title_topic_one_ready
17 B·7a7081 湘A** 第6轮(已发5) 2026-10-16 1天 无待发任务;服务端上次判定 title_daily_round_ready
18 B·7cab01 津A** 第7轮(已发6) 2026-10-16 1天 无待发任务;服务端上次判定 daily_rounds_complete
19 B·826269 闽C** 第3轮(已发2) 2026-10-15 2天 无待发任务;服务端上次判定 customer_replied
20 B·ad2371 川A** 第6轮(已发5) 2026-10-16 1天 无待发任务;服务端上次判定 title_daily_round_ready
21 B·bc2dda 津A** 第7轮(已发6) 2026-10-16 1天 无待发任务;服务端上次判定 title_daily_round_ready
22 B·bc9603 闽D** 第2轮(已发1) 2026-10-16 1天 无待发任务;服务端上次判定 title_topic_one_ready
23 B·cb013f 闽A** 第7轮(已发6) 2026-10-16 1天 无待发任务;服务端上次判定 next_round_tomorrow
24 B·e049c1 闽A** 第6轮(已发5) 2026-10-16 1天 无待发任务;服务端上次判定 title_daily_round_ready
25 B·e953b9 津** 第7轮(已发6) 2026-10-16 1天 无待发任务;服务端上次判定 next_round_tomorrow
26 B·eb1ed5 川A** 第4轮(已发3) 2026-10-16 1天 无待发任务;服务端上次判定 title_daily_round_ready
27 B·ff5f3a 闽D** 第2轮(已发1) 2026-10-16 1天 无待发任务;服务端上次判定 title_topic_one_ready
28 C·1b5431 闽D** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 customer_title_invalid
29 C·3da44f 闽** 第2轮(已发1) 2026-10-16 1天 无待发任务;服务端上次判定 title_topic_one_ready
30 C·4b7029 闽C** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 customer_title_invalid
31 C·59a2bb 川A** 第3轮(已发2) 2026-10-16 1天 无待发任务;服务端上次判定 title_daily_round_ready
32 C·80ff66 备注无编号 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 customer_owner_unverified
33 C·8c8eec 闽E** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 customer_title_invalid
34 C·a27591 闽A** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 customer_closed
35 C·b3f0a1 备注无编号 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 customer_owner_unverified
36 C·c9d69c 闽A** 第1轮(已发0) 从未召回 - 无待发任务;服务端上次判定 customer_title_invalid
R9 频次不足 37 位(已超期 ≥2 自然日)
# 电脑·会话 编码 已发轮数 上次召回 超期 10-16~18 点开情况
1 A·a497a0 沪A** 已发1轮 2026-09-24 +23天 10-16~18未被点开
2 A·c6855f 闽E** 已发1轮 2026-09-28 +19天 pending
3 A·02d28e 闽E** 已发1轮 2026-09-29 +18天 pending
4 A·48725e 闽E** 已发3轮 2026-09-29 +18天 pending
5 A·41be37 闽E** 已发3轮 2026-10-03 +14天 点开过27次
6 A·f00649 津** 已发5轮 2026-10-09 +8天 pending
7 A·d81056 闽E** 已发5轮 2026-10-09 +8天 pending
8 A·976638 闽E** 已发4轮 2026-10-09 +8天 pending
9 A·f9165c 闽C** 已发1轮 2026-10-12 +5天 点开过128次
10 A·331efd 湘A** 已发3轮 2026-10-13 +4天 10-16~18未被点开
11 A·272187 闽C** 已发5轮 2026-10-14 +3天 10-16~18未被点开
12 A·b84885 闽D** 已发5轮 2026-10-14 +3天 10-16~18未被点开
13 A·204ce8 闽D** 已发5轮 2026-10-14 +3天 10-16~18未被点开
14 A·cbd6f4 闽E** 已发2轮 2026-10-14 +3天 10-16~18未被点开
15 A·04683e 闽C** 已发3轮 2026-10-14 +3天 10-16~18未被点开
16 A·1dceeb 津** 已发1轮 2026-10-14 +3天 10-16~18未被点开
17 A·c1a912 闽D** 已发5轮 2026-10-15 +2天 10-16~18未被点开
18 A·988aec 津** 已发3轮 2026-10-15 +2天 点开过22次
19 A·ba0509 湘** 已发6轮 2026-10-15 +2天 点开过15次
20 A·abba1e 闽D** 已发2轮 2026-10-15 +2天 点开过32次
21 A·d5e2fb 津** 已发3轮 2026-10-15 +2天 点开过1次
22 A·5d20b8 闽D** 已发2轮 2026-10-15 +2天 10-16~18未被点开
23 A·f3abc8 沪A** 已发2轮 2026-10-15 +2天 10-16~18未被点开
24 A·76d539 闽A** 已发1轮 2026-10-15 +2天 点开过20次
25 B·2fafc5 闽A** 已发1轮 2026-09-15 +32天 pending
26 B·641dcd 闽A** 已发1轮 2026-09-15 +32天 10-16~18未被点开
27 B·906295 川A** 已发1轮 2026-09-15 +32天 10-16~18未被点开
28 B·df51ba 沪** 已发1轮 2026-09-15 +32天 10-16~18未被点开
29 B·35b033 川A** 已发1轮 2026-09-16 +31天 10-16~18未被点开
30 B·76dd55 津A** 已发1轮 2026-10-01 +16天 10-16~18未被点开
31 B·4d3db7 沪** 已发4轮 2026-10-06 +11天 占槽cancelled
32 B·180dbe 闽C** 已发2轮 2026-10-06 +11天 pending
33 B·a337e4 川A** 已发4轮 2026-10-07 +10天 pending
34 B·bb2a7b 闽A** 已发2轮 2026-10-07 +10天 pending
35 B·b88a86 津A** 已发5轮 2026-10-09 +8天 pending
36 B·826269 闽C** 已发2轮 2026-10-15 +2天 点开过77次
37 C·7553a8 川A** 已发1轮 2026-10-14 +3天 10-16~18未被点开
R10 补发清单 122 位(未执行;建议时刻为 07:50 排期,仅供参考;第 114–122 位已核实不是好友,剔除)
# 电脑·会话 编码 类别 轮次 建议时刻
1 A·a497a0 沪A** late_backfill 第2轮 10-19 09:42
2 A·c6855f 闽E** late_backfill 第2轮 10-19 10:16
3 A·02d28e 闽E** late_backfill 第2轮 10-19 10:51
4 A·48725e 闽E** late_backfill 第4轮 10-19 11:29
5 A·976638 闽E** late_backfill 第5轮 10-19 12:08
6 A·f00649 津** late_backfill 第6轮 10-19 12:46
7 A·d81056 闽E** late_backfill 第6轮 10-19 13:21
8 A·f9165c 闽C** late_backfill 第2轮 10-19 13:57
9 A·331efd 湘A** late_backfill 第4轮 10-19 14:32
10 A·1dceeb 津** late_backfill 第2轮 10-19 15:11
11 A·cbd6f4 闽E** late_backfill 第3轮 10-19 15:47
12 A·04683e 闽C** late_backfill 第4轮 10-19 16:23
13 A·272187 闽C** late_backfill 第6轮 10-19 17:04
14 A·b84885 闽D** late_backfill 第6轮 10-19 17:38
15 A·204ce8 闽D** late_backfill 第6轮 10-19 18:16
16 A·76d539 闽A** late_backfill 第2轮 10-19 18:52
17 A·abba1e 闽D** late_backfill 第3轮 10-19 19:31
18 A·5d20b8 闽D** late_backfill 第3轮 10-19 20:06
19 A·f3abc8 沪A** late_backfill 第3轮 10-19 20:41
20 A·988aec 津** late_backfill 第4轮 10-19 21:18
21 A·d5e2fb 津** late_backfill 第4轮 10-20 09:41
22 A·c1a912 闽D** late_backfill 第6轮 10-20 10:21
23 A·ba0509 湘** late_backfill 第7轮 10-20 11:01
24 A·9b7660 闽E** natural_due_today 第5轮 10-20 11:44
25 A·b0a242 津** natural_due_today 第6轮 10-20 12:22
26 A·2ef5f9 闽A** first_round 第1轮 10-20 13:04
27 A·40b28b 苏** first_round 第1轮 10-20 13:48
28 A·7137dc 川A** first_round 第1轮 10-20 14:28
29 A·fa6a1d 津** first_round 第1轮 10-20 15:07
30 A·631e5a 津** first_round 第1轮 10-20 15:52
31 A·b21f29 闽E** first_round 第1轮 10-20 16:31
32 A·770399 闽C** first_round 第1轮 10-20 17:12
33 A·5e1409 闽C** first_round 第1轮 10-20 17:53
34 A·f713bd 沪** first_round 第1轮 10-20 18:37
35 A·e2cc73 苏** first_round 第1轮 10-20 19:14
36 A·deff43 津** first_round 第1轮 10-20 19:57
37 A·319650 川** first_round 第1轮 10-20 20:40
38 A·be20b3 川** first_round 第1轮 10-20 21:18
39 B·2fafc5 闽A** late_backfill 第2轮 10-19 09:47
40 B·641dcd 闽A** late_backfill 第2轮 10-19 10:49
41 B·906295 川A** late_backfill 第2轮 10-19 11:50
42 B·df51ba 沪** late_backfill 第2轮 10-19 12:55
43 B·35b033 川A** late_backfill 第2轮 10-19 13:59
44 B·76dd55 津A** late_backfill 第2轮 10-19 15:04
45 B·180dbe 闽C** late_backfill 第3轮 10-19 16:08
46 B·bb2a7b 闽A** late_backfill 第3轮 10-19 17:10
47 B·a337e4 川A** late_backfill 第5轮 10-19 18:16
48 B·b88a86 津A** late_backfill 第6轮 10-19 19:17
49 B·61bc1a 川A** natural_due_today 第2轮 10-19 20:21
50 B·bc9603 闽D** natural_due_today 第2轮 10-19 21:25
51 B·ff5f3a 闽D** natural_due_today 第2轮 10-20 09:47
52 B·46c09c 闽D** natural_due_today 第3轮 10-20 10:46
53 B·eb1ed5 川A** natural_due_today 第4轮 10-20 11:51
54 B·5add34 津A** natural_due_today 第5轮 10-20 12:56
55 B·ad2371 川A** natural_due_today 第6轮 10-20 14:00
56 B·7a7081 湘A** natural_due_today 第6轮 10-20 15:01
57 B·e049c1 闽A** natural_due_today 第6轮 10-20 16:05
58 B·777bab 闽A** natural_due_today 第6轮 10-20 17:09
59 B·cb013f 闽A** natural_due_today 第7轮 10-20 18:15
60 B·bc2dda 津A** natural_due_today 第7轮 10-20 19:15
61 B·e953b9 津** natural_due_today 第7轮 10-20 20:21
62 B·7cab01 津A** natural_due_today 第7轮 10-20 21:25
63 B·0f5411 津A** first_round 第1轮 10-21 09:47
64 B·95b97e 闽C** first_round 第1轮 10-21 10:47
65 B·1ad428 津A** first_round 第1轮 10-21 11:50
66 B·76ba42 闽A** first_round 第1轮 10-21 12:57
67 B·7a1fa3 津** first_round 第1轮 10-21 13:58
68 B·f8a016 闽C** first_round 第1轮 10-21 15:04
69 B·caac7f 津A** first_round 第1轮 10-21 16:06
70 B·c656dc 津A** first_round 第1轮 10-21 17:08
71 B·369910 闽B** first_round 第1轮 10-21 18:14
72 B·a84c0e 闽A** first_round 第1轮 10-21 19:15
73 B·097bab 川A** first_round 第1轮 10-21 20:23
74 B·1297a6 津A** first_round 第1轮 10-21 21:26
75 B·aca7ab 津A** first_round 第1轮 10-22 09:44
76 B·9713f5 闽C** first_round 第1轮 10-22 10:50
77 B·a94932 闽C** first_round 第1轮 10-22 11:54
78 B·c880f7 闽C** first_round 第1轮 10-22 12:55
79 B·27741a 湘A** first_round 第1轮 10-22 14:01
80 B·d16fbf 湘A** first_round 第1轮 10-22 15:01
81 B·fbdb65 湘A** first_round 第1轮 10-22 16:08
82 B·12d6a3 湘A** first_round 第1轮 10-22 17:10
83 B·1b70c1 闽E** first_round 第1轮 10-22 18:13
84 B·eaf940 沪** first_round 第1轮 10-22 19:17
85 B·0b4d38 闽A** first_round 第1轮 10-22 20:22
86 B·b8b7be 沪** first_round 第1轮 10-22 21:23
87 B·bf6ec4 沪** first_round 第1轮 10-23 09:45
88 B·991f3f 川A** first_round 第1轮 10-23 10:47
89 B·f12d3a 津A** first_round 第1轮 10-23 11:52
90 B·0a5d0e 闽A** first_round 第1轮 10-23 12:57
91 B·b2ee6a 川A** first_round 第1轮 10-23 13:59
92 B·546ab3 闽A** first_round 第1轮 10-23 15:02
93 B·652662 闽A** first_round 第1轮 10-23 16:06
94 B·6788fe 津A** first_round 第1轮 10-23 17:12
95 B·e61669 闽A** first_round 第1轮 10-23 18:15
96 B·0cad39 闽A** first_round 第1轮 10-23 19:17
97 B·e0dd19 闽J** first_round 第1轮 10-23 20:19
98 B·93b77b 津A** first_round 第1轮 10-23 21:25
99 B·be5284 闽A** first_round 第1轮 10-24 09:43
100 B·58790e 闽A** first_round 第1轮 10-24 11:27
101 B·75d9de 闽A** first_round 第1轮 10-24 13:05
102 B·7fd340 沪** first_round 第1轮 10-24 14:47
103 B·58a6af 闽A** first_round 第1轮 10-24 16:26
104 B·77b01a 川A** first_round 第1轮 10-24 18:04
105 B·1206c1 闽A** first_round 第1轮 10-24 19:47
106 B·057a83 闽A** first_round 第1轮 10-24 21:23
107 C·7553a8 川A** late_backfill 第2轮 10-19 09:51
108 C·3da44f 闽** natural_due_today 第2轮 10-19 10:37
109 C·59a2bb 川A** natural_due_today 第3轮 10-19 11:23
110 C·ad64a8 备注无编号 first_round 第1轮 10-19 12:11
111 C·dcaa0f 闽A** first_round 第1轮 10-19 12:55
112 C·e701f7 备注无编号 first_round 第1轮 10-19 13:45
113 C·f36ce9 闽C** first_round 第1轮 10-19 14:30
114 C·6c3d38 闽D** first_round 第1轮 10-19 15:15
115 C·eca2a0 闽A** first_round 第1轮 10-19 16:03
116 C·6adf7e 闽A** first_round 第1轮 10-19 16:49
117 C·911c99 闽D** first_round 第1轮 10-19 17:34
118 C·0cf5d0 闽E** first_round 第1轮 10-19 18:21
119 C·841220 闽C** first_round 第1轮 10-19 19:10
120 C·4c3cb8 闽E** first_round 第1轮 10-19 19:55
121 C·7c4439 闽E** first_round 第1轮 10-19 20:41
122 C·95c219 闽E** first_round 第1轮 10-19 21:30
附:取数口径与未能核实的点
  • 任务/心跳/事件/消息:PostgREST service role 只读,09:15 前后取(windows_recall_tasks 全量 1638 行;wecom_loop_heartbeats;wecom_client_events、wecom_fleet_commands 自 10-18 13:00 UTC 起)。代码取自 git show origin/main(f91b0b96,已 fetch),没碰工作区。
  • 07:40 快照类数字(168 位分类、37 位频次不足、122 位补发清单、11 次重启明细)来自今早的取证底稿(r2/、as/、ft2/),没有重算;任务数与心跳是今天重取。
  • 待核实:9 个空会话当初为什么会被建出来;B·湘A 的对话为什么没进库(B 10-11 日志缺口);C 10-16 14:40–16:17 日志缺口;A 07:53 是谁启动的;B 的 6 条 needs_review 是否其实已送达;B 在 ⑥⑦ 类的名单与上表差 1 位;A 62 / C 22 位旧号客户是否还可触达;三天日志没有做全量扫描,库里无痕迹的新好友可能还有。
  • 生产 Vercel 环境变量(WECOM_AUTO_UPDATE_EXCLUDE_HOSTS 的当前值)读不到,「三台已排除」依据是今早 Jade 会话里检查接口的回读和 A、B 11:03 之后再无 restart_client 的反证。