🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

聚焦会话视图 dingyi222666/dsh-focus-chat

DeepSeek Harnessv0.7.15
dingyi22266641 天前有提交已提供中文文档扫描:未发现敏感能力

为 Deepseek Harness 提供新的「聚焦会话」精简会话视图,更轻松易于阅读,只关注最终产出结果。

43.1/100
综合分
22
GitHub 星标
51
npm 周下载
—/5
用户评分

数据截至 2026/9/22 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add @dingyi222666/dsh-focus-chat
npm 源 · @dingyi222666/dsh-focus-chat 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · market
装得上吗
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 41 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包@dingyi222666/dsh-focus-chat @ 0.7.15
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/30 15:48:00

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/cosmokit@deepseek-ai/dsh-api-gateway@deepseek-ai/dsh-api-remotes@deepseek-ai/dsh-api-session-controller@deepseek-ai/dsh-api-workspace-controller@deepseek-ai/dsh-attachment@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-store@deepseek-ai/dsh-client-test-runtime@deepseek-ai/dsh-client-ui-attachment
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

4 张 · 点击查看大图

功能亮点

  • 精简会话视图
  • 只关注最终产出
v0.7.202026-09-16
· dsh-focus-chat v0.7.20 · 修复 & 改进 · 启动修复: 0.7.19 引入的 Cordis 卡片会让装了 Cordis 扩展的 profile 启动失败——dsh web 报 Failed to load plugins / web boot: 1 entry did not activate,聚焦视图整个插件的 client 半无法激活。原因是注册册那一处用了 ctx.remote.dynamicCordisRunner 属性读取:这是一个故意的可选依赖(没 inject 它),而 Cordis 的 ctx.remote 是 traceable 代理,遇到未 inject 的成员会转发成服务查找并直接抛 cannot get property "remote.dynamicCordisRunner" without inject,于是 apply 抛错、fiber 进入 failed · 改法: 与同一段代码里读 dynamicCordisRunner 的写法对齐,改用免 inject 的 ctx.get('remote.dynamicCordisRunner')——服务缺失时得到 undefined 并降级为空登记册,这才是这段注释一直声明的「两个 Cordis 服务都可选」的真正语义。0.7.19 说明里那条「不会抛错」现在才成立 · 回归验证: 用真实 chromium 对着运行中的 dsh web 复现了故障与修复(注入该插件行 → 拿到上述真实堆栈;修复后 boot 正常、Focus Chat / 聚焦对话 视图签正常注册渲染);yarn typecheck 与 176 条用例全部通过 · What's Changed · fix: read the optional Cordis Remote namespace without inject in Full Changelog:
v0.7.192026-09-16
· dsh-focus-chat v0.7.19 · 新特性 · Cordis 卡片: cordis_define / cordis_run / cordis_stop / cordis_undefine 四个工具调用以前在焦点视图里是通用行,现在按官方 ui-cordis 的三张卡完整复刻——cordis_define 是带 Host/Client 源码页签的注册卡(名称/用途/状态读数/结果),cordis_run 带运行/更新标题、pluginId · packageId 摘要、实时状态词(待激活 / Client 待激活 / 运行中 / 待审批 / 运行失败 / 已移除 / 已有更新)与输出,cordis_stop / cordis_undefine 是停止/移除动作卡(含 inspect) · 实时事实照搬官方来源: 状态读数取自与 ui-cordis 相同的两处公开来源——页面级的动态运行服务(dynamicCordisRunner)与宿主的定义登记册(remote.dynamicCordisRunner.inventory());登记册在 cordis/dynamic-package / cordis/dynamic-retract 两条广播与重连时重读,并保留「已读 / 读失败原因 / 已移除」三态 · CSS 与文案逐字节对齐: 两张卡的 CSS 与官方文件逐字节相同,cordis.* 的 48 条中英文案逐条比对通过(面板自身的 panel.* / action.* / render.* 键不属于卡片,未搬) · 修复 & 改进 · 一处结构性差异(已在代码注释写明): 官方 cordis_run 卡同时是「动态包自有交互视图」的宿主(它声明并派发 tool.view.cordis 子槽)。按照插槽契约,只有声明该槽的组件才有权派发它,焦点视图作为另一个 view 拿不到,所以这里渲染官方在「没有注册视图」时的那一支(直接输出 )。除这一支外 DOM、aria、属性与度量都一致 · 两个 Cordis 服务都是可选的:profile 里没有 Cordis 扩展时,卡片读数为空且不会抛错(与插件既有的可选服务姿态一致) · What's Changed · feat: port the Cordis lifecycle cards (define / run / stop / remove) in Full Changelog:
v0.7.182026-09-16
· dsh-focus-chat v0.7.18 · 新特性 · workflow 面板: 官方 chat 的 workflow-run 节点(工作流运行卡片)以前在焦点视图里落进「未知节点」——只画了一坨 JSON。现在按官方 WorkflowRunPanel 完整实现:运行头(名称 / 成员数 / 状态点+状态词)、按阶段分组、每个成员一行(状态点 / 可点击打开子会话 / 状态词);状态驱动展开——运行中或异常自动展开,收敛成完成态时自动收起,但焦点还在里面时会延迟到失焦再收 · 指令回显气泡: /goal 这类 command-input 节点以前同样是「未知节点」。现在是官方样式的右对齐气泡(无消息操作),行首 /goal 作为指令 chip、其余为正文 · 补齐全部节点种类: 至此官方 chat 的 17 种 conversation.chat.node 种类(assistant-step / command / command-input / compaction / context / manual-compaction / model-retry / steering / system-prompt / tool-call / turn-error / turn-max-tokens / turn-process / turn-tail / unknown / user / workflow-run)在焦点视图里都有对应渲染,不再有 JSON 兜底 · 修复 & 改进 · 两个新种类与官方一致地算作回合「过程」:回合结束折叠时它们进折叠体(展开折叠行仍能看到),回合运行中或位于回合外则照常独立成行 · What's Changed · feat: render the workflow-run and command-input chat nodes in Full Changelog:
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
dsh-focus-chat [!WARNING] 本仓库已归档,插件不再继续开发。 官方 dsh Web UI 已原生支持本插件的功能:设置 → Work details(Compact / Detailed / Expanded)会把一个回合的过程收成一条紧凑的阅读行,自 dsh 0.1.7-alpha.1 起可用。已经没有理由再安装本插件。 官方 Work details 设置 从插件迁移——从 web profile 移除并重启即可,官方设置会接管: dsh plugin --profile web remove @dingyi222666/dsh-focus-chat dsh web 仓库自此为只读:不再有新版本、issue 或 pull request。 一个给 dsh Web GUI 的插件,加了一个 聚焦对话 标签页——用 Claude Code 的方式精简地读对话。
展开完整文档(README 剩余 1 节)
dsh-focus-chat

[!WARNING]
本仓库已归档,插件不再继续开发。

官方 dsh Web UI 已原生支持本插件的功能:设置 → Work details(Compact / Detailed / Expanded)会把一个回合的过程收成一条紧凑的阅读行,自 dsh 0.1.7-alpha.1 起可用。已经没有理由再安装本插件。

官方 Work details 设置

从插件迁移——从 web profile 移除并重启即可,官方设置会接管:

dsh plugin --profile web remove @dingyi222666/dsh-focus-chat
dsh web

仓库自此为只读:不再有新版本、issue 或 pull request。

一个给 dsh Web GUI 的插件,加了一个 聚焦对话 标签页——用 Claude Code 的方式精简地读对话。

截图

| 关闭——普通聊天视图 | 开启——聚焦对话视图 |
| 关闭:普通聊天视图 | 开启:聚焦对话视图 |
| 设置 |
| 聚焦对话设置 |

不再一步步盯着过程,一个助手回合会收成一条摘要行:

思考了 36 秒,编辑了 8 次,读取了 17 个文件,列出了 18 个目录,运行了 2 个命令,载入了 3 项上下文

整回合还能再收成一条 工作了 X 分 Y 秒 行,点开即完整细节(工具卡片、思考、上下文、产物、复制/fork,与聊天行同款);中途插话把折叠切段,被停止的回合读作 用户 X 后停止。刷新后整段对话直接以折叠形态呈现:窗口之外的每个回合由宿主端索引渲染为「用户消息 + 工作时长 + 真实结束回复」,过程细节只在展开该回合时按需取回;超长历史由"加载更早的回合"按页补折叠,索引不可用时静默退回窗口内折叠。

想看"刚才到底发生了什么"就切过来,想看完整过程就切回聊天视图。

安装(已废弃)

插件已归档;请优先使用上方警告里提到的官方 Work details 设置。以下步骤仅为已有安装保留。

从 npm 安装(需要 dsh >= 0.1.6-alpha.1)
dsh plugin --profile web add @dingyi222666/dsh-focus-chat
重启 dsh web,标签页自动挂载
dsh web

然后打开任意对话里的 聚焦对话 标签页。

说明:

- dsh plugin 相当于给 web profile 加一个依赖。bundle 型插件需要在 profile 的 dsh.profile.bundles 里出现它的完整包名才会被加载(新版本 dsh 会自动加;如果你的版本没加,请手动补上);bundle patch 在下次启动时生效。
- 用仓库源码启动的 CLI 时,请直接调用 bin(node --import tsx/esm apps/cli/src/bin.ts ...)。

为什么要单独一个标签页?为什么不直接改聊天视图?

一句话:聊天视图的内部对第三方插件是封闭的——这是设计如此——而且这个插件刻意不碰 dsh 自己的源码。具体来说:

- 键控槽位是独占的,不是共享的。聊天的行通过 conversation.chat.node、tool.call.toolview、conversation.chat.turnTail 这类槽位渲染。这些槽位由聊天入口自己声明,槽位系统在加载期拒绝重复声明——冲突本身就是设计在说话。插件既不能往聊天对话流里插自己的行,甚至连声明聊天自己的槽位都不行。
- 插件不能复用聊天的渲染代码。跨 bundle 边界导入另一个插件包的值是被禁止的(bundle purity 门禁),所以没有任何办法借用聊天的组件——每一行都只能用共享原语和公开快照自己画。
- 唯一合法的插入点是 conversation.view 列表槽——整个消息界面。这就是为什么插件自带一整个视图,而不是去改聊天视图的显示方式。

想让聊天视图本身换个行为,那是聊天包仓库内的改动——正是这个插件要避免的。

缺什么

聚焦对话是忠实的阅读界面,不是第二个聊天视图:

- Inspect 聚焦到轨迹视图。工具行的"查看调用"会在官方轨迹视图里聚焦该调用(openView('trajectory', callId))——这是 0.1.5 对已移除详情面板的替代。聚焦视图无法渲染第三方 keyed 工具视图(见下一条)。
- 别的插件给聊天加的工具卡片扩展在这里不渲染。聚焦视图用内置的卡片渲染。
- 折叠按连续工具轮次。两段之间有任何可见内容(回复、命令、你的插话)就保持分开。
- 行内文件链接依赖可选的文件提及服务——和聊天视图同一个开关。
- 远端折叠行有一些窗口内折叠没有的读法。右侧的轮次导航条只列窗口内的回合;远端回合不渲染产物文件列表(ui-deliverables 的回合数据)、文件提及,且其结束回复不可 fork(分支只对窗口内回合可用)。回合内的反馈(点赞/点踩)不受影响。

开发

本构建面向 dsh v0.1.6-alpha.1 客户端界面,所有 @deepseek-ai/* 运行时依赖都从 npm registry 安装(见 package.json)。这些包发布的 /client 入口是 window.__ModuleLoader__ 浏览器闭包,而 dsh 测试运行时是按源码树构建的,所以 yarn test 会把 @deepseek-ai 客户端界面解析到同一 0.1.6-alpha.1 的主线源码检出:vitest.config.ts 从该检出的 tsconfig 路径映射派生别名(MAINLINE 常量)——保持检出在 0.1.6-alpha.1 发布线上,其余全部走 npm 安装。

- yarn run build — 产出浏览器 bundle 和 Node 半边。
- src/client/model/ — 纯逻辑(折叠、合并、行模型、远端回合切片投影);src/client/view/FocusView.tsx — 视图;src/host/ — 宿主半边的回合索引与 RPC 通道;src/protocol.ts — 双半共享的线协议。
- yarn test — 行为测试;yarn run typecheck — 类型门禁。
- --dev 的 dsh web 会自动热加载重建的 bundle——改完 yarn run build 一般就能看到效果。

模型体验

无。该视图是对已记录对话快照的纯客户端派生,这里没有任何内容进入模型请求。

KV Cache 影响

无;该包既不组装也不发送提供方请求。
预览分享卡片长什么样 ↓dingyi222666/dsh-focus-chat
分享 · DeepSeek Harness Hub
dingyi222666/dsh-focus-chat

为 Deepseek Harness 提供新的「聚焦会话」精简会话视图,更轻松易于阅读,只关注最终产出结果。

回到顶部