Repository navigation
feat(dream): 冲突分诊账本 enforce 档——确定性处置接线(#641 beta 第二阶段) - #644
Merged
Merged
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the
|
enforce 档把人审队列与 LLM winner-take-all 裁决从冲突链路里摘出去(E13b: P(毒胜出)=86.8%;人审 ≈30 条/天且 92% 的对从未两侧同场)。四档处置: - T1 dup:supersedeInfoFirstPair(decisions.js 新共享出口)——信息量优先 (长度 → updated_at → id 三级兜底)、trustEpistemicWeighting 显式关(自动 处置承诺必须确定)、一律 supersede 不走 conflict(E13b 的值级泄漏通道 ——败者前 100 字追加进赢家——在本档不可达)。败者向量清理补进 maintainIndexAfterDream 清单(独立落地不进 applyList,漏清就是幽灵行); dream 的 noChange 同步计入 T1 产出(有归档的轮不许报 noop 刷基线)。 - T2/T3/T4:记账即处置——不停车、不送 LLM、不归档,两条都活着、可测。 T3 的取代链与 T4 的检索时消解是后续 PR;本档先摘掉两个不可靠消费方。 - sleep 与 dream 两条链路同闸:dream 的 conflict 决策降级为分类器——经 triagePair 再分诊后才处置(信号判 dup 的照样确定性 supersede,判据唯一 实现是 triage.js 不是 LLM)。 - #616 父子绑定不继承:enforce 与 freeze 同开时 freeze 让位(sleep 降 shadow / dream 降 freeze,warn 显式说出)——宁可少处置,不在两套处置 语义打架的配置下跑。测试锁死。 默认 off 逐字节零变化;shadow 与 #643 完全一致。新增 8 条回归 (sleep e2e 两档 + freeze 共存 + helper 契约三条 + dream e2e 两条), 全量 3285 tests / 3284 pass / 0 fail / 1 skipped;check-sync 120 文件一致。
modusensus
force-pushed
the
feat/641-conflict-enforce
branch
from
November 10, 2026 20:57
4206183 to
1ea7087
Compare
modusensus
added a commit
that referenced
this pull request
Nov 10, 2026
130 个白名单键里约 75 个没有面板座位(有功能没入口,#607 报的 kb 问题同根)。 本刀按「用户会找 vs 调优噪音」逐个裁决,先补四个最该有座位的: - injectHeatEnabled(#362):作为 heatEnabled 的缩进子行(FEATURE_CHILDREN)—— 数据同源、口径不同(曲线 vs 注入排序),贴着总闸渲染,父关标注不生效。 - chorographyAutoRefresh / chorographyT1FromPanel:作为 chorographyEnabled 的 缩进子行(i18n 早已备好、座位一直没给——#607 的另一半)。 - entityRecallEnabled(#219)/ graphAnchoringEnabled(#24):进阶检索轴,收进 「高级」第二层(7→9,标签同步);两者默认关且依赖实体抽取产出,与 retrieve 的常开旋钮不同级。 - 其余无座位键维持 file-only:seedCap/depth/weight*/injectBudget 等是调优 噪音(FEATURE_NUMBERS 同名纪律),sessionGate 需要会话名单 UI、scopeState 有作用域级入口,本轮不塞。conflictLedgerMode 的座位随 #643/#644 的栈走。 全部新座位带中英名与一句话描述;结构锁跟随(高级层 7→9)。全量 3268/3267 pass / 0 fail(pipefail)。
enforce 档的演进对(created_at 差 ≥7 天)从「只记账」升级为真处置: - store:memories 加 superseded_by/superseded_at 两列(幂等迁移,存量行 NULL 不猜历史)+ 部分索引;supersedeChain 只动这两列,刻意不走 updateMemory 完整写路径——syncMirror/notifyWrite/updated_at 都不该被纯元数据标注触发 (正文零变化镜像无 diff;bump updated_at 会污染「这一对刚判过」的宽松 代理判定)。已归档/已遗忘行不落链(给幽灵记账没有意义)。 - sleep/dream 双链路:enforce 下演进对新者胜落链(服务器时钟,内容声称的 时间不做键),账本状态推进 superseded;快照行缺 created_at 时退回纯记账, 宁可少处置不编造时间方向。相位结果透出 t3Chained。 - 与 supersede 动作的归档语义刻意不同:演进不是输赢,旧值仍是「曾经为真」 的可追溯历史——不归档、向量保留,降权在检索侧做(fuseRecall 感知是下一 个提交)。 全量 3295 tests / 3294 pass / 0 fail(pipefail)。
feat(sleep): 冲突分诊账本 shadow 档(#641 beta 第一阶段)
This was referenced Nov 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #643(Stage 1 shadow 档,含其全部基建)。实现 #641 beta 第二阶段:
conflictLedgerMode的 enforce 档——确定性处置接线。规格依据见 issue 正文与两条评论。enforce 档做什么
冲突候选对经
triagePair四档分诊后,按档处置(sleep 与 dream 两条链路同闸):supersedeInfoFirstPair):败者归档、胜者正文一字不动、可追溯注记在被归档侧superseded_by+ 检索降权在后续 PR)效果:人审队列与 LLM winner-take-all 裁决都不再消费冲突候选,
conflict_pending恒空。E13b 实测 P(毒胜出)=86.8% 的那条裁决路径在 enforce 下不可达;值级泄漏通道(applyConflict的败者前 100 字追加)同样不可达。关键实现决定
supersedeInfoFirstPair(decisions.js)承载信息量优先契约(长度 → updated_at → id 三级兜底;trustEpistemicWeighting显式关——自动处置的承诺必须确定)。冻结分支自动档([bug] 冲突冻结队列一次灌满 60 条:freeze 分支绕过三个上限,且面板静默截断到 50 #603 第 4 层防御段)刻意不动,注释里声明两者同契约。maintainIndexAfterDream清单——否则索引里留已归档行的幽灵向量。dream 的noChange判定同步计入 T1 产出(有归档的轮不许报 noop 刷基线)。off逐字节零变化;shadow 行为与 feat(sleep): 冲突分诊账本 shadow 档(#641 beta 第一阶段) #643 完全一致。已知边界(诚实声明)
superseded_by列 + 检索降权)与 T4 的检索时消解(fuseRecall 矛盾感知 + 注入机械标注)是后续 PR——在那之前 enforce 的价值是摘掉人审与 LLM 裁决两个不可靠消费方,矛盾对保持「都活着、可见、可测」。测试
test/conflict-ledger-enforce.test.js8 条:sleep e2e(T1 信息量优先全链路 + 败者向量清空 + 队列恒空 + 零 LLM;T4 只记账;freeze 共存降级)、helper 契约(长度优先 / 三级兜底 / epistemic 不换位)、dream e2e(conflict 决策只落账本、胜者正文零污染;共存让位)。yolo而非enforce)。两文件 23/23 绿;全量 3286 tests / 0 fail(pipefail);check-sync 120 文件一致。