前言¶
DeepSeek Harness(DSH)新建空白会话时,默认界面相对克制:没有 T3 Code 里那句带项目名的引导标题,推理强度往往藏在模型菜单里,Composer 周边也没有 git 分支切换。若你习惯 T3 那套「先选项目、再定 effort、再切分支」的开场流程,就需要在 DSH 的插件缝里补一层 UI。
下面介绍社区插件 dsh-t3-new-session-screen(维护者 yusufameri,分类:客户端)。它把 T3 Code 的 New Session 屏幕移植到 DSH Composer,数据层换成 DSH 自带的服务;界面行为与 T3 对齐,归属与许可见插件 README 中的 Credit 说明。
这是什么¶
dsh-t3-new-session-screen 是一个 DSH Web 客户端插件(npm 包名同插件 id,当前资料中版本 1.0.1,许可证 MIT)。一句话:在新会话(及 Composer 相关区域)提供 T3 风格的标题行、内联项目菜单、Composer 工具行里的 reasoning-effort 选择器,以及 Composer 下方的 git 分支条(含真实 git checkout)。
DSH 本身不提供 git 界面;分支相关能力由该插件的 Host 半部通过子进程调用 git 实现。插件以 bundle 形式合并进 profile,卸载后恢复 DSH 出厂标题与 Composer 布局,README 说明无残留。
与默认空白会话的差异¶
README 归纳了三块 DSH 空白会话原本没有、本插件补齐的内容:
- 标题 —
What should we build in <project>?(来自 T3 的DraftHeroHeadline),项目名本身是可点击的选择器。 - Reasoning effort — T3 的
TraitsPicker形态,出现在 Composer 工具行,而不是藏在模型菜单里。 - Git 分支 — T3 的
BranchToolbar形态,支持搜索本地/远程 ref,并用git checkout切换。
核心功能¶
标题与项目菜单¶
- 默认模板:
What should we build in {project}?,居中显示在 Composer 上方;{project}位置渲染可点击、带下划线的项目名。 - 点击项目名打开 T3 形状的项目菜单:已注册 workspace 列表、当前项打勾、分隔线、New project。选中项目会把空白会话迁到对应 workspace。
- 未选项目时不渲染整句模板,仅显示 Choose a project to start(与 T3 空状态一致)。
- 插件占用 DSH 标题行唯一的 additive 插槽
conversation.hero.brand.mark,并默认隐藏自带的 “Into the Unknown” 标题;同时默认隐藏下方 workspace chip,由标题行承担项目选择(布局细节见 README 的 Alignment 一节)。
Reasoning effort¶
- 在 Composer 工具行显示当前模型实际使用的档位(DeepSeek 自有模型为
Off、Low、High、Max);菜单含各档说明与当前选中标记。 - 读写与会话模型位(model seat)相同的 per-session model directory,模型位标签会随 effort 变化;若模型未声明 effort 能力,则不渲染控件。
Git 分支条¶
- 位于 Composer 卡片下方:左侧 checkout,右侧当前 ref;菜单可搜索,列出本地与远程 ref,并标注
current/default/remote。 - 切换执行
git checkout <ref>;当搜索词对应尚不存在的 ref 时,可出现 Create new ref 行(由配置branchCreateEnabled控制,默认true),执行git checkout -b。 - 工作目录来自当前会话的
cwd;git 操作经 Host 路由POST /t3-new-session/api完成。
安装与启用¶
插件通过 DSH profile 的 bundle 列表安装。资料中的命令如下(须带 --profile web):
从 GitHub 仓库安装:
dsh plugin --profile web add github:yusufameri/dsh-t3-new-session-screen
包发布到 npm 后,可用更短的 registry 形式:
dsh plugin --profile web add dsh-t3-new-session-screen
安装后重启或下一次启动会合并插件的 cordis.patch.yml 并加载客户端半部。移除 bundle 即恢复 DSH 默认标题与 Composer。
配置¶
所有字段可选;默认值即启用 README 描述的完整界面。在 profile 的 cordis.patch.yml 里对应 bundle 行设置 config,例如:
- id: t3-new-session-screen
name: 'dsh-t3-new-session-screen'
config:
headlineText: 'What should we build in {project}?'
effortSlot: right
branchCreateEnabled: false
| 键 | 默认值 | 含义 |
|---|---|---|
headlineEnabled |
true |
用 T3 标题句替换空白会话标题 |
headlineText |
What should we build in {project}? |
标题模板;{project} 为交互项目名 |
hideShippedHeadline |
true |
隐藏 DSH 自带标题 |
hideWorkspaceChip |
true |
隐藏自带 workspace chip |
effortEnabled |
true |
启用 effort 选择器 |
effortSlot |
left |
left 或 right,控件在 Composer 工具行的位置 |
branchEnabled |
true |
启用分支条(新会话与进行中会话) |
branchCreateEnabled |
true |
分支菜单是否提供新建 ref |
gitEnabled |
true |
关闭则整条 git 桥与分支条不可用 |
gitTimeoutMs |
30000 |
单次 git 子进程超时(毫秒) |
客户端从 Host 读取解析后的配置;修改后需重新加载页面生效。
实现要点(选读)¶
插件通过 DSH/Cordis 既有插槽挂载,而非改核心源码。README 中的对应关系包括:标题 conversation.hero.brand.mark、项目菜单 shadow conversation.hero.workspace、effort 占 conversation.input.left / .right、分支条占 conversation.input.dock 等。
两处实现细节会影响是否「装上了却看不到控件」:
- 客户端须注入
remote与remote.session,否则读取 model directory 可能报错,effort 控件会静默不出现。 - Host 半部仅依赖
node:*模块;配置校验使用 hand-written Standard Schema,而非 Schemastery。
典型用法¶
- 按上文命令为 web profile 添加插件并重启 DSH Web 客户端。
- 打开新建会话:若尚未选 workspace,先点标题区的 Choose a project to start 或标题中的项目名,从菜单选已有项目或 New project(新建会走
pickDirectory与workspaces.create)。 - 在 Composer 工具行调整 reasoning effort(若当前模型支持);需要换分支时在 Composer 下方打开 ref 菜单搜索并 checkout。
- 若希望 effort 靠模型位一侧、或禁止从 UI 创建新分支,在
cordis.patch.yml中设置effortSlot: right、branchCreateEnabled: false等。
适用场景与注意¶
适合谁: 已在用 DSH Web Composer、又熟悉 T3 Code 新会话流程的开发者;希望在同一屏完成选项目、定推理强度、切 git 分支,而不反复进模型菜单或终端。
权限与安全: 分支切换与建分支会在会话工作目录下执行真实 git 命令,权限与当前 DSH 进程一致。安装前应阅读 GitHub 仓库 源码与 MIT 许可证;社区插件目录(SkillHub)为独立站点,与 DeepSeek / 幻方无官方从属关系,是否采用需自行评估。
依赖: package.json 标明客户端注入多个 @deepseek-ai/dsh-client-* 模块,并声明 @deepseek-ai/cordis 等为 peer(optional)。需与当前 DSH 版本兼容;README 未给出额外运行时版本矩阵时,以实际安装环境为准。
结尾¶
dsh-t3-new-session-screen 把 T3 新会话的三件套——引导标题、effort 选择器、git 分支条——接到 DSH 的 Cordis 插槽与 Host API 上,适合想要 T3 式开场的 Harness 用户。