前言¶
DeepSeek Harness (DSH) Web 强调插件化架构,开发者常需要在多轮对话中追踪文件变更与上下文状态。传统的会话管理缺乏直观的聚合视图,导致难以快速定位最近修改的文件。dsh-summary-panel 插件提供了一个 Codex 风格的固定摘要面板,旨在解决这一问题。
核心功能¶
该插件通过读取 ui-deliverables 中的成功文件变异,聚合所有已加载的 Turns,并保留每个文件路径的最终有效状态。其核心功能包括:
- 文件聚合展示:按修改时间倒序显示最近修改的文件,默认展示 5 个,支持展开与折叠。
- 交互与布局:提供 320px 宽度的紧凑弹出窗口,内容超出视口高度时支持滚动。在移动端,该面板会变为一个可关闭的右侧抽屉。
- 状态持久化:会话的打开状态会在会话期间保持。
- 扩展性:支持通过 Client 插件 API 注册自定义摘要区域。
安装与启用¶
通过 CLI 安装该插件,支持远程提交或本地 tarball 两种方式。安装后需重新加载配置并启动 Web 服务。
dsh plugin --profile <profile> add github:hzthzt/dsh-summary-panel#<commit-sha>
dsh plugin --profile <profile> add ./dsh-summary-panel-0.1.0.tgz
安装完成后,执行以下命令以应用配置并启动服务:
dsh --profile <profile> --dump-config
dsh --profile <profile> web
扩展与自定义¶
插件提供了扩展 API,允许开发者通过 conversation.summary.section 列表槽位注册自定义的会话级摘要区域。开发者可以通过 SummarySection、SummaryItem 和 SummaryEmpty 等组件构建自定义内容。
以下是基于 TypeScript 的自定义区域注册示例:
import type { ClientContext } from '@deepseek-ai/dsh-client-runtime/client'
import {
SummaryEmpty,
SummarySection,
type SummarySectionComponentProps,
} from 'dsh-summary-panel/client'
function ReviewSection({ presentation, closePanel }: SummarySectionComponentProps) {
return (
<SummarySection title="Review" actionLabel="Add review" onAction={() => {}}>
<SummaryEmpty>Nothing to review</SummaryEmpty>
<small>{presentation}</small>
<button type="button" onClick={closePanel}>Close</button>
</SummarySection>
)
}
export function apply(ctx: ClientContext): void {
ctx.slots.inject('conversation.summary.section', () => ctx.slots.register({
name: 'conversation.summary.section',
id: 'review',
order: 30,
}, ReviewSection))
}
此外,插件还提供了对 ctx.summaryPanel 的增强方法,支持手动控制面板的打开、关闭与切换:
ctx.summaryPanel.open(sessionId)
ctx.summaryPanel.close(sessionId)
ctx.summaryPanel.toggle(sessionId)
环境与依赖¶
使用该插件需满足特定的运行时与依赖版本要求:
- Node.js 版本:要求 Node.js ^24.0.0。
- DSH 版本:插件版本 0.1.0 针对目标环境
dsh-v0.1.1-rc.2(commitb150a551b8d465e31e418e1b2eaf5e79bbb7d28e)。 - Peer Dependencies:需要特定版本的
@deepseek-ai/cordis(^4.0.1) 以及多个dsh-client-runtime及 UI 相关组件(如dsh-client-runtime 0.1.1-rc.2)。 - 许可证:MIT。
总结¶
dsh-summary-panel 为 DeepSeek Harness Web 提供了一个结构化的会话文件摘要视图。它不直接管理文件创建流程,而是专注于读取与展示已交付的文件变更,适合需要清晰追踪上下文变更的开发者。更多详情与源码,可参考插件目录页或 GitHub 仓库。