dsh-t3-new-session-screen:把 T3 Code 的新会话界面接到 DeepSeek Harness

前言

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 空白会话原本没有、本插件补齐的内容:

  1. 标题 — What should we build in <project>?(来自 T3 的 DraftHeroHeadline),项目名本身是可点击的选择器。
  2. Reasoning effort — T3 的 TraitsPicker 形态,出现在 Composer 工具行,而不是藏在模型菜单里。
  3. 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。

典型用法

  1. 按上文命令为 web profile 添加插件并重启 DSH Web 客户端。
  2. 打开新建会话:若尚未选 workspace,先点标题区的 Choose a project to start 或标题中的项目名,从菜单选已有项目或 New project(新建会走 pickDirectory 与 workspaces.create)。
  3. 在 Composer 工具行调整 reasoning effort(若当前模型支持);需要换分支时在 Composer 下方打开 ref 菜单搜索并 checkout。
  4. 若希望 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 用户。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye