reactive 路径逐条 addressed/skipped 判断实现(issue #176 grill) #176
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Parent
issue #176 grill(2026-08-20 拍板:现在实现,接消费方);ADR 更新见 PR #178(ADR-0029 更新节 +
CONTEXT.md/design.md 词条同步 +
gating.py模块文档同步)What to build
正式实现 ADR-0017 决策节承诺、从两级门控落地起从未真正兑现的"逐条 addressed/skipped 判断",
并接上一个真实消费方(
/why渲染),不留一个没人用的字段。原文(
docs/adr/0029-unified-trigger-pipeline.md「更新(2026-08-20,issue #176 grill)」节):Acceptance criteria
RuntimeLoop(runtime_loop.py)在工具循环执行send_message时,收集每次调用实际接受的
quote_message_id(只统计校验通过、真正在known_message_ids里的那些,被静默降级的不算),
run()返回时把这批"本轮被 quote 过的消息 id 集合"传出去——具体接口形状(返回值新增字段 / 独立方法)自定
entry_reactive.py决策快照收尾处改用这个集合计算addressed_message_ids/skipped_message_ids:被 quote 过的消息记 addressed,批次内其余非 bot 消息记 skippedcapabilities.quote为假,或本轮虽有 send 但没有任何一次成功 quote 时,退回现有整批二元判定(有 send 则整批 addressed,无 send 则整批 skipped)——不能让这种情况下
产出一个"空的 addressed + 全部 skipped"的误导性结果
/why(entry_admin.py::_run_why/explain.py::render_decision_explanation)新增渲染这两个字段的内容——具体文案自定,至少要能让人看出"这批里哪几条被回应了、哪几条被跳过"
gating.py模块文档、CONTEXT.md「选择性回应」词条、docs/design.md对应段落,落地后同步标注"已实现"(当前是"尚未实现,见 issue #176")
的那两条,其余记 skipped;能力不可用时退化为整批判定;模型发送但未 quote 任何具体消息时同样
退化为整批 addressed;交互原语场景(
target_is_self=True)不受影响,维持整批二元Not in scope
quote_message_id本身的现有校验逻辑(known_message_ids归属校验、静默降级不报错)DecisionSnapshot的这两个字段,本票不改变这一点ADR-0012 已标注的已知缺口,留给后续 ticket
评估:reactive 路径逐条 addressed/skipped 判断要不要实现(ADR-0029)to reactive 路径逐条 addressed/skipped 判断实现(issue #176 grill)