liangmianya/dsh-synapse
liangmianya/dsh-synapseDeepSeek Harness 的可视化非线性对话工作区:把会话、追问与分支变成可浏览、可拖拽的对话地图。
为每个会话设置项目状态标签(内置进行中/已结项/搁置中+自定义标签,颜色可调),在侧栏、对话头部与悬停卡片中显示。
给每个 DSH 对话设置项目状态标签:内置「进行中 / 已结项 / 搁置中」三态(颜色可调)+ 可自定义标签(名称 + 色板 + 任意 hex 颜色 + 图标)。
dsh-session-status namespace),换浏览器/重启不丢。#RRGGBB 颜色、图标)。dsh plugin --profile web add dsh-session-status
或通过 Web UI 的插件管理安装。装完重启 dsh web 后即可在会话头部看到状态 pill。
● 未设置状态)→ 单击 pill 快速循环「进行中 → 已结项 → 搁置中 → 无」,或点 pill 右侧箭头从下拉中选择任意标签/清除。#RRGGBB(#RGB 简写亦可)。settings namespace dsh-session-status:
{
"labels": [ // 自定义标签(内置三态作为 composition base,用户层不含)
{ "key": "todo", "name": "待办", "color": "#ef4444", "icon": "tag", "builtin": false }
],
"sessions": { "<sessionId>": "active" }, // 会话 → 标签 key
"overrides": { "active": { "color": "#ff00ff" } } // 内置三态颜色覆盖(可选,不写用默认色)
}
node --check lib\index.js; node --check lib\status-store.js; node --check lib\client.js
node test\status-store.test.mjs # 纯逻辑单测(主模块方式,沙箱下勿用 node --test)
node test\client-shape.test.mjs # client bundle 契约:inject 是服务名 + 内联逻辑防漂移
node scripts\smoke-hover.mjs # CDP 冒烟:hover 卡状态注入 + 设置页色板(需 DSH GUI 在 127.0.0.1:3180)
发布(交互终端,WebAuthn 通行密钥流程;需先配置 npm token:NPM_PUBLISH_TOKEN 或 ~/.dsh/secrets/npm-token.txt):
pwsh -File scripts\publish-interactive.ps1
package.json 的 dsh.client.inject 写 NPM 包名;浏览器 bundle(lib/client.js)的 exports.inject 写 Cordis 服务名(slots / settingsScope / sessions)——写错会导致 web boot 永久 pending。[role="treeitem"][aria-selected] + 标题反查 session id + MutationObserver/RAF 节流),data-owner 标记自清理;标题重复行宁可漏不可错。div[role="button"] + 内联 left/top 定位),按标题反查唯一会话,把状态行追加进卡内容列;无状态/标题重复不注入。mergeLayers 对数组是整体替换,用户写入 labels 后 resolved 不再含 base 内置项——客户端 resolveLabels 始终把内置三态合并回来;内置颜色覆盖存于 user 层 overrides,点默认色即清除。sessions 条目在下次写入时自动剔除;空映射 unset 不落盘。MIT