在会话行与头部展示状态、模型和上下文用量
29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add yusufameri/dsh-t3-session-ui该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · ui
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 33 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 5 处,展示前 5 条)
- 读取本地文件index.js:44
const parsed = JSON.parse(readFileSync(new URL('./package.json', import.meta.url), 'utf8')) - 发起网络请求client.js:143
response = await fetch(`${API}/${method}`, { - 写入剪贴板client.js:715
await navigator.clipboard.writeText(JSON.stringify(bundle, null, 2)) - 写入剪贴板client.js:747
await navigator.clipboard.writeText(JSON.stringify(bundle, null, 2)) - 写入剪贴板client.js:898
await navigator.clipboard.writeText(text)
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 会话行上下文块
- 服务商标识
- 上下文用量计量
T3 Code 为 DeepSeek Harness 打造的会话上下文体验:会话行上下文块、服务商标识、状态胶囊、头部上下文条,以及带压缩的上下文窗口计量条。
README
由 DeepSeek 最新模型翻译生成dsh-t3-session-ui
T3 Code 为 DeepSeek Harness 打造的会话上下文 UX:一个会话行上下文块、provider/model 标签、一个状态胶囊、一条按会话的头部上下文条,以及一条谱系面包屑——全部位于 DSH 已有的界面中,未向 composer 添加任何内容。
| 实况:会话行悬停卡片 | 实况:Settings 行 |
| 真实 DSH 窗口中的悬停卡片,承载真实宿主值 | DSH Settings 内该插件的偏好行 |
| 悬停卡片(渲染) | 状态阶梯 |
| 会话行悬停卡片 | 状态层级循环切换 |
| 头部条与谱系 | Settings 行(渲染) | 浅色主题 |
| 头部上下文条与谱系面包屑 | 偏好行 | 浅色主题下的悬停卡片 |
关于这些图片。 前两张是安装了该插件的真实 DSH 0.2.0-rc.1 实例的实况截图——其中的值(Shimas's MacBook Pro、default-workspace、standard、 ask)各自来自不同的真实 Host 探测,而非测试夹具。其余为组件渲染:由测试夹具数据驱动该插件的真实组件,并配以具有代表性的主题 token 表,用于新实例没有 git 仓库、没有子代理、也没有长对话可展示的场景。
展开完整文档(README 剩余 1 节)
dsh-t3-session-ui
T3 Code 为 DeepSeek Harness 打造的会话上下文 UX:一个会话行上下文块、provider/model 标签、一个状态胶囊、一条按会话的头部上下文条,以及一条谱系面包屑——全部位于 DSH 已有的界面中,未向 composer 添加任何内容。
| 实况:会话行悬停卡片 | 实况:Settings 行 |
| 真实 DSH 窗口中的悬停卡片,承载真实宿主值 | DSH Settings 内该插件的偏好行 |
| 悬停卡片(渲染) | 状态阶梯 |
| 会话行悬停卡片 | 状态层级循环切换 |
| 头部条与谱系 | Settings 行(渲染) | 浅色主题 |
| 头部上下文条与谱系面包屑 | 偏好行 | 浅色主题下的悬停卡片 |
关于这些图片。 前两张是安装了该插件的真实 DSH 0.2.0-rc.1 实例的实况截图——其中的值(Shimas's MacBook Pro、default-workspace、standard、 ask)各自来自不同的真实 Host 探测,而非测试夹具。其余为组件渲染:由测试夹具数据驱动该插件的真实组件,并配以具有代表性的主题 token 表,用于新实例没有 git 仓库、没有子代理、也没有长对话可展示的场景。
assets/README.md 介绍了这些渲染及其重新生成命令; tools/live-cdp.mjs 驱动实况截图。
致谢
本插件实现的信息层级属于 T3 Code:会话行悬停卡片、状态阶梯、provider/model 行,以及带压缩操作的上下文窗口环,均为其所有。T3 Code 以 MIT 协议开源;本移植版保持相同的形态,并将底层数据替换为 DeepSeek Harness 的数据。请支持原项目。
它添加了什么
每个界面都从本包自有的 Host 半部分读取一个按会话的上下文包。Host 无法读取的事实会被省略而非伪造,因此位于 git 工作树之外的会话就干脆没有分支行。
| 界面 | 位置 | 显示内容 |
| 行悬停卡片 | sidebar.session.row.hover | 状态、机器、工作区、分支(+ 脏标记)、工作树、model · provider、代理预设、父会话、委派深度、审批策略、上下文用量,以及错误行 |
| 行标签 | sidebar.session.row.leading | 将 model 作为该行的前导单元格,并带一个状态点 |
| 行悬停操作 | sidebar.workspaces.session.row.action | 复制上下文包,位于随附的归档和固定按钮旁边 |
| 头部条 | conversation.session.header.utilities | 状态、模型、分支、工作区、审批策略、子代理数量、预设、委派深度 |
| 头部面包屑 | conversation.session.header.lineage | 复现会话标题,并添加父级、预设和深度标签 |
| 设置行 | settings.general.item | 插件在 DSH 设置中的自身偏好行——各界面报告哪些事实,以及一个机器标签覆盖项 |
| 复制操作 | conversation.session.header.actions | 将整个上下文包复制为 JSON |
| 行菜单项 | sidebar.workspaces.session.menu.item | 将上下文复制为 JSON、复制分支名称、复制工作目录 |
状态阶梯
阶梯在 Host 上按 T3 Code 的优先级顺序解析:
| 阶梯 | DSH 如何报告 |
| 待审批 | approval/request 瀑布流被括在 next() 两侧,因此该阶梯恰好在人类正在决策时点亮 |
| 等待输入 | user-questions/request 瀑布流,以相同方式括起 |
| 工作中 | api-session/status 存活事件,加上会话日志中一个打开的 turn/start |
| 错误 | 失败的 turn/end,或在回合之外引发的 api-session/error |
| 子代理工作 | ctx.subagents.listChildren(sessionId) |
| 就绪 | 以上皆无 |
审批和输入是进程本地的而非持久的,这就是为什么它们从瀑布流而非会话日志中读取:一个包裹 next() 的监听器精确地知道一个询问已悬置多久。
显示设置
这些偏好项位于 DSH 自己的设置面板中,作为 General 部分的一行,并按浏览器存储在 dsh.t3-session-ui.prefs.v1 下:每个事实一个开关(机器、工作区、分支、模型、预设、审批、上下文),以及一个机器标签覆盖项,其优先级高于 Host 美化后的主机名。它们刻意保留在浏览器端——它们只改变此插件的渲染,且必须无需 Host 往返即可工作,而一个 Host 由每个已连接的浏览器共享。
编辑器中没有添加任何内容。 早先的一个修订版在那里放了一个上下文窗口环;它已被移除,因为输入区域是用于输入的,而会话事实属于会话界面。该环过去显示的令牌详情现在出现在悬停卡的上下文行中(42% · 83k/200k),而压缩上下文是会话行 ... 菜单中的一项,运行 DSH 自己的 /compact 命令;此插件从不重新实现压缩。
安装
dsh plugin --profile desktop add dsh-t3-session-ui
或者从检出目录安装,无需构建步骤:
dsh plugin --profile desktop add /path/to/dsh-t3-session-ui
移除该捆绑包会注销每个席位,并恢复先前的编辑器工具栏,不留任何残留。
工作原理
此 UI 显示的事实无法从浏览器访问——机器身份是一次 node:os 调用,而 sessions、tokenMeter、approval 和 compaction 不带有 @Remote 接口,因此 Client 半边无法通过 ctx.remote。因此 Host 这一半只提供一个带围栏的 JSON RPC 路由:
POST /t3session/api/hostFacts -> 机器标识,无需会话 POST /t3session/api/sessionContext -> { sessionId } -> 上下文包 POST /t3session/api/compact -> { sessionId } -> 运行 /compact
该路由被围栏限制在回环地址(加上部署声明为可信的任何 authority),拒绝跨站浏览器标记,并在存在 Origin 时要求其匹配。因此浏览器页面可以用一个普通的相对 fetch 访问它,与 dsh-better-sidebar 和 @michengai/dsh-codex-ui 使用的是同一座桥。
各项事实的来源:
| 事实 | 来源 |
| 机器标签 | os.hostname(),美化处理(Shimas-MacBook-Pro.local → Shima's MacBook Pro),可由配置或显示设置覆盖 |
| 工作目录、预设、父会话、委派深度 | Session.header |
| 提供方、模型、上下文窗口大小 | Session.requestContext() |
| 分支、脏状态、工作树 | 在会话自己的目录中运行 git,缓存 5 秒 |
| 已用 token | ctx.tokenMeter.measure(session) |
| 存活状态和待处理的询问 | api-session/status、api-session/error,以及 approval/request / user-questions/request 瀑布流 |
| 子代理扇出 | ctx.subagents.listChildren(sessionId) |
| 审批策略 | ctx.approval.overrideOf(session) |
配置
该插件从 bundle patch 中读取一个可选设置:
- id: t3-session-ui
name: 'dsh-t3-session-ui'
config:
machineLabel: "Shima's MacBook Pro" # 可选;默认为美化后的主机名
其他所有内容都是按浏览器区分的显示偏好,在 DSH Settings 中该插件的行内设置。
开发
纯 ESM,无构建步骤。Client 这一半由 DSH 的客户端模块加载器按原样加载,因此编辑 client.js 会在下次页面加载时生效。
pnpm install
pnpm test # 101 个测试
测试套件无需 DSH 即可运行,覆盖三个层次:
- test/host.test.js —— host 辅助函数,包括真实的临时 git 仓库(干净、脏、仅未跟踪、分离 HEAD、链接工作树)。
- test/route.test.js —— 真实的 apply() 针对伪造的 Cordis 上下文运行,调用 HTTP 处理器并对其线上输出进行断言。这一层之所以存在,是因为未被 await 的探测会序列化为 {},而任何检查处理器内存中对象的测试都无法发现这一点。
- test/client.test.js —— Client 这一半通过打桩的 window.__ModuleLoader__ 加载,并针对一个 fixture bundle 渲染为静态标记。
发布
0.1.1 修复了 0.1.0 引入的一个缺陷:若干 Host 探测未被 await,导致 provider、model、contextWindow、turn、token 计数以及整个机器标识在线上序列化为 {}。上面新增的路由级测试层可确保该故障模式不会重现。
要求
- DSH 0.1.5-rc.1 或更新版本
- Node.js 20+
许可证 MIT。移植的设计来自 T3 Code,同样采用 MIT 许可证。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
yusufameri/dsh-t3-session-ui
在会话行与头部展示状态、模型和上下文用量
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,798已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,327已汉化DSH
71.5
终端编码代理esengine/DeepSeek-Reasonix
· 指南 · ACP · 扩展开发 · 规格 · 官方网站 · Discord · QQ
★ 36,021已汉化DSH
71.2
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 150,724已汉化DSH
71.1