ycp424c/dsh-auto-fold-turn
ycp424c★ 1TypeScript最后同步: 2026-08-14
—
README 摘要
@ycp424c/dsh-auto-fold-turn DSH Web 外部 client 插件:一轮对话产生最终回复后,自动把该轮位于最终回复之前的 工具调用、中间 assistant、重试等过程节点折叠为一行摘要( ▶ 过程 · N 项 ),摘要行 位于被折叠内容之后、最终回复之前。用户可随时展开/收起,显式展开状态按 sessionId + turn 持久化到 localStorage,跨刷新保留直到再次折叠。 该插件 不修改、不 patch DSH 源码 :所有行为通过 DSH 正式的 Conversation Node 扩展接口与一个薄 DOM 适配层实现;禁用或卸载插件后,原生聊天内容完整恢复。 行为 - 所有已加载、存在最终回复的 Turn 默认折叠,包括历史 Turn(历史 replace / prepend 与实时 append 走同一规则)。 - 折叠后保留:用户消息、摘要行、最终回复、最终回复之后的终态提示(error / max-token 等)与 DSH 原生 turn-tail 操作。 - 每个 Turn 独立折叠/展开;一个 Turn 的操作不影响其他 Turn。 - 显式展开状态跨刷新保留,直到用户再次折叠。 - 没有最终回复或无法可靠解析的 Turn 保持完整显示。 失败与兼容策略(统一 fail-open) - 没有 closing assistant:不生成摘要,不隐藏内容。 - 无法唯一识别最终 assistant:不隐藏内容。 - snapshot 目标与 DOM 行无法完整对应:不隐藏任何目标。 - localStorage 不可用/损坏/写入失败:交互在当前页面继续,持久化降级或重置。 - 插件卸载:清除所有插件自有显隐属性与样式。 架构 模块 职责 src/client/index.tsx 插件入口:注册 Definition、keyed renderer、样式表;生命周期随 fiber src/client/fold-summary-definition.ts auto-fold-summary Conversation Node Definition(match turn/end ,读 turn-tail data 的 closing,anchor 为 closing seq - 0.05) src/client/fold-target-resolver.ts 纯函数:从 Chat snapshot 计算本轮可折叠过程 key 与最终回复 key src/client/fold-state-store.ts sessionId+turn 显式展开集合,localStorage key dsh.auto-fold.expanded.v1 src/client/dom-adapter.ts 唯一接触 DSH D…
在 GitHub 查看完整 README →