## 报障来源 社区反馈,由维护者转述原文: > 记忆冲突等用户裁决的窗口太小了,又不能拖大,完全对比不了记忆内容,只好两个都删了,或者胡乱选一个,望改进。 报障者的运行环境未在本机复现;下面列的是**对 main(v0.8.15)代码逐项核对**的结果——反馈的每一点都能对上实现,因此不是使用姿势问题。 ## 代码核对 1. 折叠态正文只取**前 140 个字符**,再叠 `-webkit-line-clamp: 3`(`lib/client.js` 的 `mneme-conflict-snippet` 样式与 `side()` 渲染);词级 diff 视图同样被钳在 **4 行**(`mneme-conflict-diff`)。 2. 标题 `white-space: nowrap` + `text-overflow: ellipsis`,长标题看不全。 3. 两侧只有「A 方 / B 方」两个标签,**没有类型、重要度、字数、新旧时间**——用户没有任何客观依据判断该保留哪一条。 4. 后端 `GET /api/dsh-mneme/conflicts` 的 side 对象(`src/service.js` 的 `listConflictQueue`)**本来就不返回 `created_at` / `updated_at`**,所以「哪条更新」这个最关键的判据面板拿不到。 5. 并排布局固定 `grid-template-columns: 1fr 1fr`,面板窄时每侧只剩几百像素,长文本无法对照。 6. 没有任何展开/放大控件,也没有单侧全文复制——想拿出去对比都做不到。 ## 后果 冻结队列里的冲突对要么被整对处理掉,要么随机保留一条。前者丢约束、后者留矛盾——两条路径都在损伤记忆质量,而 #177 设计这套冻结-裁决机制的前提正是「人来判断」。 ## 建议范围 - **面板**:每条冲突一个「展开全文 / 收起」切换(展开态不截断、diff 去掉行数钳制、各自内部滚动,不撑破面板);窄面板下并排自动降级为单列;每侧一行判读信息(类型 · 重要度 · 字数 · 相对时间);每侧全文复制按钮。 - **后端**:`listConflictQueue` 的 side 补 `created_at` / `updated_at`(只读字段,无 schema 变更、无新配置键)。 - 默认仍折叠,既有布局与行为不变。
Activity
modusensus commentedon Oct 11, 2026
认领:按上述范围实现。动
lib/client.js(展开/收起切换、每侧判读信息行、单侧全文复制、窄容器降级单列)与src/service.js(listConflictQueue的 side 补created_at/updated_at,跑npm run sync);断言加在test/api.test.js(两侧时间戳)与test/client.test.js(折叠仍截断 / 展开不截断、diff 去钳制、判读行、复制、窄容器单列、i18n 中英成对)。默认仍折叠,不加配置键、不动 schema、不改既有行为。Merge pull request #401 from slow-stack/feat/conflict-queue-reading
modusensus commentedon Oct 11, 2026
已修复合并(#401)。冲突卡片现在支持单侧展开全文、复制单侧原文,并在判读行给出「类型 · 重要度 · 字数 · 更新时间」,超过 7 天回落绝对日期;窄容器(≤560px)改单列,不用左右挤。随下一个版本发布,届时麻烦再试一次。另外「两个都删了」这条我们记下了——归档前至少让你看清内容。
docs: cite slow-stack#400 in the conflict-reading comments