37 Commits

Author SHA1 Message Date
浅念 fa51e69180 fix: P4'——等待态画像目标国家新现作为报国确定性信号(不赌extractor分类)
缺陷(复验 2/2 稳定复现): 同轮给号+报国首问轮丢弃(P2,设计内)→次轮再报国
extractor 漏填 cc_reply(画像已记目标国家,对重复陈述倾向不分类)→报国未
触发重算→客户 yes→错国号(+34)被 confirm 零标注出站。

- conversation.py 轮末钩子: cc_reply 未消费时,等待态(cc_due)且非首问轮,
  画像"目标国家"新现或值变化(与轮前快照比对,占位集不算)→ name_to_region
  转 ISO 走 transit country 分支(与 cc_reply.country 同路径);国名不识别
  →忽略;首问轮仍不消费(P2 语义保持)。轮前快照在 stream_process_message
  本轮写回前取值传入。
- extractor.md: cc_reply 段补"重复报国仍要分类"强化句(与 Python 侧信号
  双保险——画像已记场景 extractor 漏填时由确定性信号兜底)。
- 测试: 主场景重算+20/customer_stated/attempts 消费;对照组: 首问轮不消费+
  同值不变不重复触发(合并流)、占位值忽略、值变化触发、国名不识别忽略。
  全量 320 passed(基线 315+5)。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-08 21:21:48 +08:00
浅念 568c116839 fix: 验收P1P2——轮末新建态免计免消费(回显首轮语义)+P3西语ECHO/ASK模板
P1(换国"报国→再回显→确认"结构性不可达) + P2(extractor 裸号轮误
affirm 跳过确认流)同根因修复: "轮前新建态"的轮语义——回显/追问首次
发出轮,客户本轮还没机会回应确认句,轮末既不消耗 attempts 也不消费
cc_reply。实现: _cc_round_end 增 first_ask 判据(本轮墙确有触发 × 状态
未标记 asked),首问轮只落 asked 标记直通;attempts 从等待回应轮起计。
判据用 asked 标记而非轮前快照比对——统一覆盖轮前新建与轮末补建两条
建态路径的首个墙轮(补建态当轮无墙,首问顺延下轮,否则 P1 结构性残留)。

P3(西语回显轮是英文): 新增 _CC_ECHO_ES/_CC_ASK_ES/_CC_WALL_ES,
_cc_script/_cc_wall_template/_cc_confirm_note 语言分流扩 ES(_cc_lang_of,
与 _lang_pool 同款西语特征粗匹配);no_ip 墙裁决锚补 "código de país"
西语同词(服从句不再被误替换);e164 digits 裁决锚语言无关不受影响。

修复后时序(常规 cap=2): 回显轮(免计0)→等待回应轮起计1→2落定,
落定较修复前多一轮,客户回应机会不变;no_ip cap=1: 首问轮免计,
报国/不理睬一轮后落定。

测试 308→315: 新增7(换国三轮流/首问轮免消费/补建路径首问免计/西语
ECHO墙/西语reminder/西语no_ip ASK/西语服从句放行);迁移9项受
"新建态免计"影响的既有断言(attempts 起点变化/落定轮次顺延)。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-08 20:49:13 +08:00
浅念 7df2e4ae1e feat: 出站补全渲染——首封e164+标注/主题行/推送派生/canon双保险/面板尾注
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-08 19:51:46 +08:00
浅念 6fddc0eaac fix: LANG_NOTE_ES/ZH同步语言放开——删绝不翻译旧规则,号码逐字照抄
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-08 19:11:49 +08:00
浅念 43f117d47c feat: 提示词回显确认语义+语言规则放开+extractor cc_reply
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-08 19:05:19 +08:00
浅念 807ee0886d feat: 回显确认模板+确认句墙e164检测+白名单逐段放行+no_ip专属
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-08 18:43:52 +08:00
浅念 0b5c219090 feat: 判定树轮前接入+cc_reply消费+出口卫生+存量迁移
Task 3(cc-completion 计划最重集成项):
- 轮前钩子 _cc_pre_turn: effective_raw 建成后、reminder 之前跑判定树,
  建/重置/迁移 _cc(同 canon 保留状态,canon 变化即 RESET 重走);
  与一次性计数写回同事务落库(条件扩为计数或 _cc 变更任一存在)
- 轮末钩子 _cc_round_end: 四层联系方式合并后、D1 邮件前——双门控消费
  cc_reply(仅 whatsapp 等待态;落定态仅开迟到 country 升级口,no_ip
  耗除外),canon 变化 RESET,末次联系方式补建 pass
- 出口卫生三封堵: cc_reply 消费后剥离/extractor 回传 _ 前缀键防御性
  丢弃/入口 existing_info 滤 _ 复核
- 存量迁移: 旧 _cc_asked=True+裸 whatsapp 无 _cc → 一次性 fallback 态
- _contact_completion_note cc 分支删除,邮箱轻补解锁条件改
  cc_settled(_cc.whatsapp);cc 墙门控改线 cc_due(_wa_cc)
- 集成实证修两处数据流 bug: WHATSAPP_CTX_RE 间隙吞 + 号(显式国际
  前缀被捕成裸号→误追问);同轮扫描合并方向反转(存量覆盖当轮新号,
  轮前 canon 变化检测失效——与轮末最新自述优先同语义对齐)
- 新增 10 项集成测试(affirm 确认/换号重走/迟到报国升级与忽略/
  卫生三封堵/存量迁移/confirmed 态忽略/同 canon 组归并/异号 phone
  静默/纯 phone 无墙),282 项全绿

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-08 18:06:39 +08:00
浅念 2abb11614f feat: cc_completion判定树+状态机纯函数(phonenumberslite)
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-08 17:12:13 +08:00
浅念 143dfd4789 test: Task1审查补强——US确定性断言+版本下限对齐
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-08 16:56:41 +08:00
浅念 1c4d204906 feat: 基础层——phonenumberslite/resolve_region_code/CA字典bug/XFF服务端优先
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-08 16:48:55 +08:00
浅念 99f51e7703 fix: 墙层审查修复——10位号穿透/CC轮回显closing用CC句/breach号码观测/拼接分隔
审查(With fixes)四项:

- Important-1: LONG_NUMBER_RE {9,17}→{8,17}——旧量词最小匹配 11 字符,
  纯 10 位号(沙特裸号 0501234567,CC 模板范例市场本体)穿透。实测钉死
  行为边界: 逗号不在字符类,"50,000,000" 千分位形态仍放行(与
  "45,000 km" 同机制,审查预估会命中系漏算逗号);空格分隔 ≥10 位命中;
  DN110/5000m/VIN 规格形态全放行
- Important-2: CC 触发轮回显被零号码墙拦下时(violation==no_contact),
  closing 改用 CC 模板句而非 NO_CONTACT_ALREADY——GLM 有 3/3 回显倾向,
  客户该收到追问而非"稍后联系"虚假承诺;价格墙路径不变。设计文档 §2
  补记该裁决
- Minor-4: breach_rate.py 补号码回显(≥10位,与墙同形)与邮箱回显两条
  观测模式,补上漏放观测盲区
- Minor-5: violated 收尾与已流出前缀之间补空格分隔("...xxxx? Got it —"),
  空格随 closing 一起流出,客户所见与落库一致;CC/触发轮缓冲未流出,
  emitted 恒空天然不受影响

测试 256 passed(253+3)。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-08 13:59:41 +08:00
浅念 41b2ce081f fix: 零号码墙回显豁免收窄——AI输出客户号码/邮箱一律拦截
增补设计 §3(需求方决策): 旧"礼貌回显"豁免与"不回显"红线矛盾,且被
GLM 稳定利用回显号码 3/3——AI 输出中的客户号码只可能来自回显,拦截
无误杀面。

- boundary_filter.no_contact_value: 移除 user_history 参数与豁免分支,
  ≥10 位数字串(含阿语数字形态,Unicode \d 原生匹配)/邮箱一律拦;
  digits_only 导入随之清理
- conversation.py 两处调用点同步去参(句子循环 + pending 尾巴)
- contact_pipeline.py 两处注释里指向已移除豁免的表述同步修正
- 测试: 旧豁免测试(echo_exempt/arabic_echo_exemption_consistent)按新
  语义改写为一律拦;新增邮箱回显拦截/规格形态(DN110/5000m/中文)放行;
  流式集成 2 项——客户完整号/邮箱被原样回显 → 整段替换 NO_CONTACT_ALREADY

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-08 13:39:59 +08:00
浅念 5f124e691b feat: CC强制墙——触发轮整段缓冲+流末country code判定+模板句整段替换
场景①三轮提示词修复 0/8 后的需求方决策(增补设计 §2): GLM 对反惯性的
CC 重发追问结构性无视,升级为输出侧确定性强制。

- 触发: 本轮 completion_marks == ["_cc_asked"](裸号在场且未问过)
- 流式无法撤回 → 触发轮跳过逐句流出,整段缓冲(缓冲期间价格/零号码/
  再索要三墙照常逐句检查,优先级不变);流末统一判定
- 完整回复含 "country code"(中文轮认"国家代码",与注入的逐字追问句
  同词)→ 零干预原样流出;不含 → 整段替换为 CC 模板句正文,logger.warning
  留痕
- 模板句与 _CC_NOTE_* 同源化: _CC_ASK_* 抽出为共享正文,_CC_WALL_EN
  加 "Got it — " 衔接头(_CC_WALL_ZH 与正文同句)——注入/替换两处
  逐字锚点不漂移
- _cc_asked 计数照常流前落库,一次性消耗不受替换影响
- 测试 5 项: 替换(EN/ZH)+计数落库 / 含 country code 零干预(EN/ZH) /
  非触发轮三形态(带前缀号/已耗/双渠道齐)原样流出

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-08 13:34:34 +08:00
浅念 714e22bde5 fix: CC追问三轮修复——内联禁令全量扩例外+让位唯一锚点+禁数字回显
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-08 13:02:17 +08:00
浅念 206beae11b fix: CC追问防压制——confirmed块让位+禁令例外扩围+伪回显示例
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-08 12:50:34 +08:00
浅念 1ce251e8cf feat: system.md双要话术+国家代码引导+四处禁令改写(防自锁)+同源断言
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-08 12:26:39 +08:00
浅念 f191690d01 fix: 第三处app分支禁令同步改写——禁令集完整
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-08 12:06:51 +08:00
浅念 2228ebe081 feat: 国家代码/邮箱双要状态提醒+一次性计数(串行优先级+防自锁禁令改写)
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-08 12:04:10 +08:00
浅念 1416ebf104 fix: 推送画像过滤_前缀内部键(防CRM泄漏)
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-08 11:42:15 +08:00
浅念 383158a03d test: Task1质量审查补测——④真覆盖/③保底覆盖/分组注释/渠道映射查表化
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-08 11:39:36 +08:00
浅念 1fc87fbe85 feat: 再索要墙渠道精确化——索要缺失渠道放行(双要前置)
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-08 11:24:45 +08:00
浅念 5d83dd9776 fix: 邀请卡位置联动——invite-container同款right:0硬编码在bottom-left溢出(用户二次反馈,补齐chat-panel联动遗漏)
测试提取器正则同步收紧(排除联动规则误匹配)。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-30 13:59:33 +08:00
浅念 557dab3caf fix: 挂件面板位置联动——bottom-left溢出屏幕/top模式向上溢出(线上实测x=-183.78根因:面板硬编码right:0未随position翻转)
容器挂pos-<position>类+CSS联动规则,无效position归一化;静态测试锁定。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-30 12:21:31 +08:00
浅念 c2f2ddf82f test: 真人验收清单+API级联调验收
真实 GLM 五轮实跑(EN/ES/ZH/换号/敏感问)+mock推送+admin三视图,核心项全过。
修复: 中文轮漂英文→语言跟随提醒; extractor裸字符串联系方式→500崩溃兜形;
号码回显/样品承诺/标记词泄漏 prompt加固; 测试env耦合断言; .env前缀对齐。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-29 20:02:03 +08:00
浅念 7da1e22446 test: GDPR三入口结构断言(Task 9质量审查)
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-29 19:11:32 +08:00
浅念 47c27e5bd1 fix: Task7+8质量审查修复(PUSH前缀ai-kefu-jc隔离+config默认值同步+载体词清理)
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-29 18:43:02 +08:00
浅念 f0af1cfe8e chore: 服务端品牌与行业残留更名清零(HESUPIPE/DB名/redis字段)
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-29 18:29:07 +08:00
浅念 528b81b192 fix: Task6质量审查修复(MOQ全称/warranty/装柜量触发词+NO_CONTACT_WEB常量引用+阿语回显豁免锁+测试残词)
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-29 18:22:29 +08:00
浅念 9caf3c4501 feat: 会话编排建材化+阿语号码转ASCII+12小时话术跨层同步
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-29 17:59:45 +08:00
浅念 874308c099 fix: Task5质量审查修复(долларов变格/时间组re.I/breach_rate复数同步/hours豁免锁/lang_pool注释)
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-29 17:42:59 +08:00
浅念 48d1dc2c37 fix: 多语言墙复数形态(precios/preços/Цены/أسعار)+葡语çã路由+阿语词字节修复
spec审查加固两项 + 会话中断导致的ثمن词损坏字节级修复。
223 passed 全绿,对抗样本双向验证通过。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-29 17:29:26 +08:00
浅念 170de2fe48 fix: 多语言价格词组补字母后顾断言(防DN800/SDR11规格数字误杀,与英文组L7保护同款)
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-29 15:44:56 +08:00
浅念 7003d13f7a feat: 多语言输出墙(€/£/西葡俄阿价格词+时间承诺+ES话术池)+话术建材化+防误杀
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-29 15:42:34 +08:00
浅念 8fa3d7a8d0 feat: 提取/评估提示词建材化(规格自由文本+标准单列)
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-29 15:19:19 +08:00
浅念 adefd57149 fix: 事实卡质量审查修复(测试大小写/标题/等字说明/单位)
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-29 14:44:36 +08:00
浅念 7d0d28406c feat: HESUPIPE 公司事实卡(官网硬事实+防编造规则)
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-29 14:32:25 +08:00
浅念 49c0e5559c chore: 从汽车AI客服项目拷贝骨架并清理(blog页/redis)
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-29 14:15:12 +08:00