issue #136: 新增未获回应升级——情感态快层第四个delta输入源 #143
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/136-unanswered-escalation-input"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #136
实现范围
新增"未获回应升级"——ADR-0005 拍板但此前零实现的第四个情感态快层 delta 输入源。己方发出的有分量消息(
expects_reply=true,issue #42 既有自报字段)迟迟未获对方真实回应时,按阶梯式时长门槛施加逐档加重的 valence/energy 负向 delta;一旦真的等到回应,清掉待升级记录,不再继续施加。update_fast_state三轴无条件各跑一次decay_toward,outcome=None只让 delta 项归零、衰减本身不会跳过——落库前用dataclasses.replace()只截取 valence/energy 两轴写回,dominance 保留调用前原值(仿 issue #94_apply_interaction_polarity的既有截取先例)。慢层完全不碰:这个信号是"投递未获确认"的代理信号,不是对方真实情感倾向的证据。resolve_last_interaction_at(从reflection.py原有的内联重复分流逻辑收敛而来)——私聊读ReconnectCooldownState,群聊读ChatActivityState,两种 chat 类型都覆盖。arise_unanswered_escalation周期任务,扫描间隔单独配置(不与反思闭环共用)。零 LLM/embedding 调用,不需要熔断闸。_crossed_tier_deltas从上次已应用档位往后扫,一次扫描若跨过多个档位,累加全部新跨过档位的 delta,不静默丢档。两处刻意的 AC 字面偏离(已核实并留痕)
expects_reply==True直接判定,没有另外新增一个独立的连续"重要性"数值字段——AC 同时写了"结合 expects_reply 标记"与"config 新增重要性门槛"两条,二元判定没有"门槛"可言。理由:仓库没有更好的现成连续信号(唯一的importance量表来自异步 Delta 压缩批处理,时效对不上小时级阶梯);本地文本长度/疑问句启发式已被 ADR-0025 明确否决。chat_activity.py)。继续把本片限定在私聊没有依据——这是历史遗留的措辞,不是架构限制,经对抗式设计校验核实。两轴 review 发现并已修复的一处范围收窄
初稿只在反应式回复路径(
entry_reactive.py)接了写入点,Drive Tick 主动重连发送(entry_drive_tick.py)完全没接。但 ADR-0005 原文"己方主动发出的、有分量的消息"这个措辞、以及apply_partial_relief的唯一调用点,指的正是 Drive Tick 这条主动出口——已补上,两条"己方发出"的出口现在都会在expects_reply=true时记一条待升级记录。验证
_crossed_tier_deltas纯函数(含多档累加边界)、run_unanswered_escalation_cycle(dominance/慢层不受影响、已回应清记录、私聊/群聊分流、跨多档)、resolve_last_interaction_at、存储层往返(内存/持久化两套实现对称)、反应式与 Drive Tick 两条写入路径的 e2e 场景。ruff check/ruff format干净,ty类型检查确认无新增诊断(仅命中仓库既有、与本次改动无关的历史问题)。文档同步
docs 分支(本地已提交,不推送):ADR-0005 追加两个更新节——落地状态记录(群聊作用域裁定订正、AC 字面偏离留痕、阶梯累加设计修正)+ review 发现的 Drive Tick 遗漏补记。design.md 现有的"未获回应升级"描述本身已经是目标态,未改动。ADR-0018 边界划分文本不受影响,未改动。
🤖 Generated with Claude Code