You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Does the original session trimming class in dsh-filesnap cause a conflict? | dsh-filesnap原始会话删减类是否冲突 #5923
changed the title [-]dsh-filesnap原始会话删减类是否冲突[/-][+]Does the original session trimming class in dsh-filesnap cause a conflict? | dsh-filesnap原始会话删减类是否冲突[/+]on Nov 8, 2026
Activity
ranxianglei commentedon Nov 8, 2026
(ai: vllm-qwen/qwen3.8-27b)
查重: 不重复——本线是已闭 #4614「子缺陷 B」的后续跟踪条目(同症状、同机制:host 每轮改写水位线以下的历史槽位 → 采样校验永不收敛 → 升级冻结),#4614 关闭时明确留了待拍板的选项 1/2/3 并邀请追条,本线即该追条;与几个开放条目同症状家族但机制不同:#5624(omp 车道 fork 会话漂移,升级到 v0.1.212 后自愈,分歧形状是 id 互换)、#5885(dsh rewind fork+seed 的折叠域退化)、#5106(SQLite 往返自洽性假设,未证实)。
标签: bug + dsh + scope/storage + p2(缺陷类;dsh 插件车道;存储层双份副本漂移冻结;目前仍可用、无数据丢失实证 → p2,p1 级复合窗口见影响一节)
结论先行
filesnap 的删减类本身不与 bili 冲突。 我通读了它的源码(main @ 832387b):rewind = fork 出新会话(新 session id + 种子历史前缀)+ 把原会话标题改名(🔴 Inactive ·);结果里的
deleted计数是 FileSnap 引擎恢复的工作区文件数,不是对话消息;原会话的消息内容从不被修改或删减;它的迁移逻辑是一次性、幂等、只处理旧格式日志、跳过已加载会话且先写备份。对 bili 而言,分支 = 全新会话(全新 ingest),原会话 = 未变的历史——结构上产生不了「水位线下反复改写」。但这台用户机器上确实发生了真实冲突,不是 filesnap 引起的,而是已知未决缺陷 #4614-B:dsh host 每轮保存改写同一个历史槽位,bili 增量 ingest 按设计跳过水位线以下的槽位 → 采样校验每轮必中、永远差一个保存周期 → 永不收敛 → 三连升级 → JSON 信封写入冻结。
日志证据(bili.7z,v0.1.212,单连续进程 11-05T21:53→11-08T12:11,全程无重启/崩溃标记)
h_2446cf3e209693e2:一侧稳定 len=127/sha=c2667072,另一侧 len=148–150 且 sha 逐样本变化;expect/got 值在连续样本间滑动(got@本轮 == expect@上一轮)= 差一个保存周期的经典签名。[acp-usage] input=45358 cached=44160 (cache hit 97%)、折叠干净),统一存储继续接收保存;受损的是 JSON 信封文件(冻结不再更新)+ 大量日志噪音。窗口内无进程死亡——「崩溃」≠ 进程崩溃,日志尾部是正常 parent-gone flush。_N碰撞家族副本渲染空文本(h_..._90 rendered no text,数百条占位式短 assistant 消息);慢会话告警(Long sessions starve the event loop: a 4,600-message session blocks the proxy and the web UI for 7–50 s per turn #4528 家族,上游已闭)。机制链(为什么不收敛)
已有修复在途
PR #5679(open,11-04 创建;镜像缓存快照 11-04、sha 4de5cd3:30 项 check 全绿/跳过,mergeable_state=blocked 待人工合并;此后可能已有新提交)针对的正是这一类:漂移锁存期间禁用增量快路径、每轮走全量精确路径 → 采样必然同代通过 → 一个干净样本后解锁,慢性冻结变有界自愈事件;同时给漂移诊断加上首个分歧槽的顶层字段名(
; fields: …),能定位到 host 到底每轮改写哪个非文本字段(现有指纹只有 id/role/len/sha8)。用户的 v0.1.212 早于该修复。八问
判定:分析完成,本轮不改码;冲突问题本身已回答(filesnap 删减类不冲突;机器上实际发生的是已知 #4614-B 类,修复 PR #5679 在途)。是否调整冻结语义待拍板,细节在下一条 🔶 评论。
ranxianglei commentedon Nov 8, 2026
🔶 需要决策
(ai: vllm-qwen/qwen3.8-27b)
背景一句话:单 host「每轮改写水位线以下槽位 → 漂移永不收敛 → JSON 信封冻结」缺陷(#4614 子缺陷 B)在 #4614 关闭时留了选项 1/2/3 待拍板;本线 v0.1.212 现场日志以规模化复现(100 条漂移 / 5 会话冻结 / 跨安装同签名)确认该缺陷在升级后仍然存活;对症的 PR #5679(慢性冻结变有界自愈 + 漂移字段名诊断)已在途待合。
待决问题:#5679 合并后,是否还要改 bili 的「升级时冻结语义」——即升级(ESCALATED)且无第二实例证据(#4177 检测为负)时,是否继续冻结 JSON 信封写入?
选项(各带代价):
八问:
推荐:先合 #5679(止血 + 拿到字段名诊断),再定 A;不决定的默认行为 = 维持 master 现行为(升级即冻结照旧),本线程留作证据累积,不另动代码。
[-]dsh-filesnap原始会话删减类是否冲突[/-][+]Does the original session trimming class in dsh-filesnap cause a conflict? | dsh-filesnap原始会话删减类是否冲突[/+]ranxianglei commentedon Nov 8, 2026
通俗易懂讲 是否冲突了 导致了什么 具体咋回事 不要太学术 看不懂
ranxianglei commentedon Nov 8, 2026
(ai: vllm-qwen/qwen3.8-27b)
一句话:filesnap 的回退功能本身没和 bili 打架;但这台机器上另一个已知毛病被触发了,bili 的存档卡住了。
冲突了吗?分两层:
**具体咋回事?**打个比方:bili 给每段对话记两本账(一个 JSON 文件、一个 SQLite 库)。为了省力气,dsh 每次保存时,bili 只核新增的部分、不重查旧账。偏偏 dsh 改的那条旧消息正好在「不重查」的区域里——于是例行全检时永远发现对不上,重新记一遍,dsh 下次又改……永远差一次保存,两本账永远对不齐。连着三次对不齐,bili 触发保险丝:停写 JSON 那本账,免得越差越远。
导致了什么?
**咋修?**修复 PR 已经在路上(#5679):对不上的会话暂时改成「每轮全量记账」,几轮内自动对齐恢复,不再永久卡死;同时日志会直接告诉我们是哪个字段对不上,方便回头找 dsh 侧到底谁在改。合并发版后用户升级即可。另外上一条 🔶 评论里留了一个待你拍板的问题:那个「停写 JSON」的保险丝以后还保不保留(A/B/C 三个选项),你定。