新建会话前先填名字,避免被自动标题覆盖
28.2/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add CHIP-PHILO-GH/dsh-session-namer该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · other
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 46 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 新建会话前手动命名
- 字节安全截断
- 草稿预览
DSH 客户端插件:新建会话时先让你命名(带字节安全截断与草稿预览),替代默认的自动标题。
README
由 DeepSeek 最新模型翻译生成dsh-session-namer
只想要「照着做一遍」的封装版本(含安装、配置与排错表),见同名技能包 dsh-session-namer;本仓库是代码本体。
给 DSH 的「新建会话」加一步:先问会话名,再建会话。
点侧栏的「新会话」(品牌区、加号按钮、工作区分组里的新会话行、工作区选择器的新建路径)时,不再直接建一个无名会话,而是先弹出一个轻量对话框:
- 填了名字 → 会话建好后立刻用这个名字(永久钉住,不会被首条消息的自动标题覆盖);
- 留空 / 直接回车 → 等于原来的行为,按你的第一条消息自动命名;
- 取消(Esc / 点遮罩 / 取消按钮)→ 什么都不建。
界面对齐 DSH 自身视觉:官方 Modal / Button 原语 + --dsw-* 主题变量,自动跟随亮/暗主题与皮肤;另有实时预览(「会话列表中显示为 “xxx”」)、字数提示,以及按宿主上限(80 字节)的截断提醒。
安装
这是一个纯客户端插件(package.json 里 dsh.client.platform 为 web),挂进某个 profile 后随 dsh web 一起加载。本包没有发布到 npm,走下面的本地 link: 方式。
展开完整文档(README 剩余 1 节)
dsh-session-namer
只想要「照着做一遍」的封装版本(含安装、配置与排错表),见同名技能包 dsh-session-namer;本仓库是代码本体。
给 DSH 的「新建会话」加一步:先问会话名,再建会话。
点侧栏的「新会话」(品牌区、加号按钮、工作区分组里的新会话行、工作区选择器的新建路径)时,不再直接建一个无名会话,而是先弹出一个轻量对话框:
- 填了名字 → 会话建好后立刻用这个名字(永久钉住,不会被首条消息的自动标题覆盖);
- 留空 / 直接回车 → 等于原来的行为,按你的第一条消息自动命名;
- 取消(Esc / 点遮罩 / 取消按钮)→ 什么都不建。
界面对齐 DSH 自身视觉:官方 Modal / Button 原语 + --dsw-* 主题变量,自动跟随亮/暗主题与皮肤;另有实时预览(「会话列表中显示为 “xxx”」)、字数提示,以及按宿主上限(80 字节)的截断提醒。
安装
这是一个纯客户端插件(package.json 里 dsh.client.platform 为 web),挂进某个 profile 后随 dsh web 一起加载。本包没有发布到 npm,走下面的本地 link: 方式。
下面用 <包所在目录> 指代本仓库所在的目录,<profile> 指代目标 profile(Web 版缺省是 web); $env:DSH_HOME 是 DSH 配置目录,没设置时 DSH 缺省用 ~/.dsh。
1. 把本仓库克隆或解压到本机任意目录,即 <包所在目录>;
2. 编辑 profile 的 package.json($env:DSH_HOME\profiles\<profile>\package.json):
- dsh.profile.bundles 里加一行 "dsh-session-namer";
- dependencies 里加一行 "dsh-session-namer": "link:<包所在目录>"(正斜杠写法);
3. 建链接(等价于 pnpm 的 link: 依赖): New-Item -ItemType Junction -Path "$env:DSH_HOME\profiles\<profile>\node_modules\dsh-session-namer" -Target "<包所在目录>"
4. 重启 dsh web 生效(客户端插件代码在页面里加载,改完必须重启;刷新页面不够)。
卸载
删掉 profile package.json 里的 bundles 行与 dependencies 行,删掉那个 junction,重启 dsh web。
插件自身没有任何副作用残留:它只把 uiWorkspace 原型上的两个方法临时换掉,插件 dispose 时原样还回去(lib/index.js 宿主半边是空壳,不注册服务、不写文件)。
原理
客户端半边 lib/client.js:
- 拦截点:uiWorkspace 服务(@deepseek-ai/dsh-client-ui-workspace)原型上的 startSession / openWorkspace。DSH 里所有「新建会话」入口最终都调 startSession(),所以只改这一处即可全覆盖:
- startSession(workspaceId) → 改成「打开命名对话框」,不建会话;
- 用户确认后调原始 startSession,同时在 openWorkspace 上认领一次性 pending,从 connectWorkspace 交出的 sessionId 上按输入改名;
- 改名走 sessions.binding(sessionId).session.rename(title)(宿主 session/rename 线 → SessionTitleService.rename,事件来源标记为 user,会 supersede 自动标题生成);
- 对话框注册进 shell.overlay 插槽(根作用域浮层),样式自注入一个 style 标签。
客户端半边 inject 声明四个服务,一个都不能少:['locale', 'slots', 'sessions', 'uiWorkspace']。
为什么必须齐:客户端插件是并行装载的——web boot 对 manifest 里所有条目
Promise.all(loader.create(...)),每个插件在自己的 inject 服务齐备时立刻 apply,
互相之间没有确定的先后顺序。少声明一个的后果不是报错,而是 apply 抢在该服务出现之前跑完、探测到 undefined 后静默返回——现象就是「插件装上了、启动不报错、功能就是不出现」(本项目 1.0.0 就是这么栽的:当时 inject 只写了 locale)。声明齐全后 Cordis 会等到四个服务都在才 apply;真缺服务时 boot 也会明确报 pending (waiting for service: x),不会再静默。
另外两条自保约定:
- 注册成功才接管:对话框注册通路没打通(或 uiWorkspace 方法写不动)时完全不接管 startSession,「新建会话」保持 DSH 原行为——宁可不生效,也不能出现点了没反应的死按钮;
- 拆卸归自己:插槽注入包在 ctx.effect 里,卸载时注销注册、还原服务方法、复位状态,幂等。
宿主半边上限:dsh-base/cordis.patch.yml 里 session-title 的 maxTitleBytes: 80,所以客户端按 80 字节做预览截断,和宿主一致(中文约 26 字)。
现场诊断
页面里随时可读(浏览器控制台):
window.__DSH_SESSION_NAMER__
// { plugin, version, installed, dialogRegistered, patched, reason }
patched: true = 已接管;patched: false 时 reason 会说明卡在哪一步(dialog registration failed / uiWorkspace methods are not writable / disposed)。
自检
三套台子,都不启动 DSH,只借用 DSH 安装里的真实运行时(装载契约用真 cordis,界面用真 react / react-dom)。路径走环境变量:DSH_HOME 指向 DSH 配置目录,DSH_PROFILE 指目标 profile(缺省 web);未设置 DSH_HOME 时打一行提示并跳过。
| 命令 | 管什么 |
| node tools/verify-boot-order.mjs | 装载契约:真实 @deepseek-ai/cordis + 真实并行装载顺序。含负向对照(只声明 locale 的插件确实会在 uiWorkspace 出现前 apply 并永久失效)、服务齐备后接管、交互全链路、兜底路径、卸载还原。 |
| node tools/verify-client.cjs | 契约与注册:未声明 inject 访问 ctx.locale 抛宿主原错误、inject 声明齐全守卫、真实 LocaleRuntime 下词典注册、插槽门控注册、原型补丁与还原、CSS 只注入一次。 |
| node tools/verify-dialog.cjs | 界面算得对不对:真 react 渲染对话框,查输入框/键位提示/预览/字数、80 字节截断、主按钮交出的名字是否正确。 |
测试
三套验证台就是本仓库现有的全部自动化测试,没有另外的 npm test:
$env:DSH_HOME = "$env:USERPROFILE\.dsh" # DSH 缺省目录;已经设过就不用再设
node tools/verify-boot-order.mjs
node tools/verify-client.cjs
node tools/verify-dialog.cjs
npm run verify # 等价于上面三条依次跑
验证台说明:这三套台子要借本机 DSH 安装里的真实运行时(@deepseek-ai/cordis、客户端 locale 包、真 react / react-dom),它们既不在本包的依赖里(客户端插件本身零依赖,运行时全部由宿主提供),也不随包发布。
没装 DSH 的机器上(CI runner 就是这种)它们只会打一行 未设置环境变量 DSH_HOME,跳过 然后以退出码 0 结束,什么都验不了。
CI 仍执行三个验证命令;未设置 DSH_HOME 时客户端验证台会明确打印 SKIP: 未设置环境变量 DSH_HOME,不把跳过伪装成验证通过。
本机实跑记录(Windows 11 + Node v24.19.0):设好 DSH_HOME 后三套台子分别以 全部通过 ✅ / 结果:ALL PASS / 全部通过 ✅ 结束,退出码都是 0;清掉 DSH_HOME 后三套各打一行跳过提示,退出码同样都是 0。
没有进自动化台子的部分:对话框在真实主题/皮肤下的观感,以及改名在真实会话上是否落地。
这两项要装上插件后在页面上实际点一遍,window.__DSH_SESSION_NAMER__ 可以帮着判断有没有接管上。
许可
MIT。
离线验证
陌生人 clone 后可直接运行:
node test.mjs
npm run verify
node test.mjs 零依赖,实际 import lib/naming.js 覆盖空白规范化、UTF-8 字节计数、80 字节截断和自动命名判定,并明确输出离线项与 SKIP 项。npm run verify 仍用于真实 DSH_HOME 下的 Cordis、profile、React/浏览器验证;未设置真实环境时不能把这些能力伪装成离线通过。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
CHIP-PHILO-GH/dsh-session-namer
新建会话前先填名字,避免被自动标题覆盖
相关插件 · 其他
模型破甲清洗YuJunZhiXue/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 14,822已汉化DeepSeek 客户端
73
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 718已汉化DSH
71.2
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,261已汉化DSH
70.7
破甲评测WoYun520/dsh-purge
在本机分离宿主拦截与模型拒绝,做受控红队评测
★ 199已汉化DSH
69.7