🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

会话标题重生成 wyewyewye/dsh-session-title-regen

DeepSeek Harness
wyewyewye5 天前有提交已提供中文文档扫描:未发现敏感能力

按最近对话用原模型重新生成会话标题

30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add wyewyewye/dsh-session-title-regen
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/03·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 5 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

发起外部网络请求
查看扫描证据(共 1 处,展示前 1 条)
  • 发起网络请求
    lib/client.js:228
    const response = await fetch(BRIDGE_PREFIX + "/generate", {
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-ui-layout@deepseek-ai/dsh-client-ui-workspace
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DSH 插件:用会话上次使用的模型,根据最近 10 条用户提示词重新生成会话标题。

README

由 DeepSeek 最新模型翻译生成
DSH 会话标题 AI 重生成(dsh-session-title-regen) DeepSeek Harness(DSH)插件:在左侧工作区侧边栏每个会话行右侧的 “…”扩展菜单 里新增 “AI 重新生成标题”(与置顶/重命名/分叉/归档同列,位于“复制会话 ID”之后)。根据该会话自己的最近 10 轮用户 prompt、用该会话最近实际使用的模型现场生成新标题,预览确认后写回。 特性 - 🤖 入口顺手:会话行 “…” 菜单里的一行「AI 重新生成标题」,不占用、不改动任何现有菜单项 - 📜 数据源是本机会话日志:读取该会话持久化事件日志里用户最近的 10 轮 prompt(user/message 事件,source.kind === "user",自动跳过工具结果与空白消息),不联网、不依赖全局标题服务的缓存 - 🎯 模型跟随会话本身:从日志最后一条 request/header 折叠出 provider/model 现场调用——你在会话里用什么模型,标题就用什么模型生成;不改动全局标题服务配置,也不替换内置 sessionTitle provider
展开完整文档(README 剩余 1 节)
DSH 会话标题 AI 重生成(dsh-session-title-regen)

DeepSeek Harness(DSH)插件:在左侧工作区侧边栏每个会话行右侧的 “…”扩展菜单 里新增 “AI 重新生成标题”(与置顶/重命名/分叉/归档同列,位于“复制会话 ID”之后)。根据该会话自己的最近 10 轮用户 prompt、用该会话最近实际使用的模型现场生成新标题,预览确认后写回。

特性

- 🤖 入口顺手:会话行 “…” 菜单里的一行「AI 重新生成标题」,不占用、不改动任何现有菜单项
- 📜 数据源是本机会话日志:读取该会话持久化事件日志里用户最近的 10 轮 prompt(user/message 事件,source.kind === "user",自动跳过工具结果与空白消息),不联网、不依赖全局标题服务的缓存
- 🎯 模型跟随会话本身:从日志最后一条 request/header 折叠出 provider/model 现场调用——你在会话里用什么模型,标题就用什么模型生成;不改动全局标题服务配置,也不替换内置 sessionTitle provider
- ✏️ 可编辑预览:生成后先弹预览对话框(显示所用模型),可改字再确认;写回走内置 rename 路径(sessions.using(...).binding.session.rename),侧边栏行即时更新,其它设备按普通标题事件同步
- ⚡ 轻量调用:maxTokens=64、30 秒超时、输入上限 16 KB(超限自动丢弃最旧的 prompt)、取模型最低档 reasoning(若有)
- 🧩 零配置、零侵入:无设置面板、无环境变量、不新增任何持久化文件(标题就是会话日志里一条标准 session/title 事件,与手动重命名完全同格式);卸载删两行即净

工作原理

- client 半(lib/client.js,ModuleLoader factory,仅依赖 react):向 sidebar.workspaces.session.menu.item 注入 order 500 的菜单行(位于“复制会话 ID”之后),向 shell.overlay 注入预览对话框;样式自带(dshstr- 前缀,深浅色自适应)。
- node 半(lib/index.js):注册 loopback-only 桥接路由 POST /api/dsh-session-title-regen/generate,body {sessionId, currentTitle?};经 ctx.sessionQuery.readSession 读冷会话日志 → 取最近 10 轮用户 prompt + 最近 request/header 的模型路由 → ctx.llm.prepareCall 生成 → 返回 {ok, title, model:{provider,model}} 或 {ok:false, code, message}。
- 提示词与标题归一化(normalizeSessionTitle、去整行 强调、UTF-8 字节截断)对齐官方 dsh-session-title-all-prompts-llm,但语义为“重新生成”:始终产出新标题**,旧标题仅作上下文。

目录结构

dsh-session-title-regen/
├── package.json # DSH bundle 插件元数据(dsh.bundle.patch 指向 cordis.patch.yml;dsh.client 声明 client 半注入的宿主包) ├── cordis.patch.yml # 插件挂载声明(仅 insert 本插件的 client bundle,无其它改动) ├── lib/ │ ├── index.js # node 半:桥接路由(读会话日志 + 折叠模型路由 + 调 LLM) │ └── client.js # client 半:菜单项 + 预览对话框(react,样式自带) ├── README.md └── LICENSE # MIT

运行时不新增任何数据文件:确认标题后只是向该会话的事件日志 append 一条 session/title 事件(与手动重命名同一路径、同一格式)。

安装

⚠️ 安装来源决定成败:本插件的 client 半要进入浏览器的 bundle 图,而 DSH 的 client-modules 扫描器会静默跳过 junction/symlink 形态的 bundle 目录(dsh-client-modules/lib/index.js:788 的 catch)。
github:、npm、tarball(file:xxx.tgz)依赖都会装成真实目录,没问题;但 pnpm 对 link:<目录> / file:<目录> 本地依赖只会建 junction——装完“菜单不出现、也不报错”多半就是这个。
本地开发装法见下方「方式 B」。

方式 A:从 GitHub 安装(推荐)

Web(dsh web):

dsh plugin --profile web add github:wyewyewye/dsh-session-title-regen
重启 dsh web,浏览器 F5

dsh plugin 会转发给 pnpm 并在成功后自动把包名追加进 dsh.profile.bundles,无需手改。

官方桌面客户端(Electron):桌面端读的是 desktop profile,dsh plugin 命令行按设计拒绝 --profile desktop。在桌面端会话里直接对 DSH 说:

请使用当前桌面端内置的 plugin_manager 安装 github:wyewyewye/dsh-session-title-regen,完成后告诉我是否需要重启。

装完完全退出客户端(含托盘)再打开(新装插件的 client bundle 在启动时才会进入 bundle 图)。

方式 B:本地目录 / tarball 安装(开发调试)

在插件源码目录(package.json 所在层)打包
pnpm pack
把 tarball 放进 profile 目录后按 tarball 依赖安装(真实目录,扫描器认)powershell
pnpm add file:./vendor/dsh-session-title-regen-<版本>.tgz # 在 profile 目录里执行

再手动把 "dsh-session-title-regen" 追加进 package.json 的 dsh.profile.bundles,重启 DSH

- ⚠️ 不要用 link:<目录> / file:<目录>:pnpm 会把它建成 junction,扫描器会跳过(见上方警告)。
- ⚠️ 若 lockfile 里残留旧的 link: 解析(改过依赖写法后 pnpm install 可能沿用旧解析),用 pnpm update dsh-session-title-regen 强制按 tarball 重新解析。

给 AI 的安装说明

请安装 DSH 插件 dsh-session-title-regen,来源 github:wyewyewye/dsh-session-title-regen。
- 如果当前是官方桌面客户端:使用宿主内置 plugin_manager 安装,不要执行 Web 命令行、不要手改 desktop profile 文件。
- 如果是 dsh web:dsh plugin --profile web add github:wyewyewye/dsh-session-title-regen,确认 dsh --profile web --dump-config 的 bundles 里出现该包名,然后重启 dsh web。
- 装完务必重启宿主(client bundle 只在启动时进入 bundle 图),不要以“菜单没出现”直接判定安装失败。

验证 powershell

1) bundle 已登记(Web profile;桌面端看 %USERPROFILE%\.dsh\profiles\desktop\package.json)

dsh --profile web --dump-config | Select-String title-regen

2) 路由已注册(裸 curl 会被 DSH 浏览器信任栅栏拦成 401 —— 401/403 恰恰说明路由活着)

curl -X POST http://127.0.0.1:3080/api/dsh-session-title-regen/generate

3️⃣ 界面自检:重启宿主后,任选一个已经聊过几轮的会话 → 行右侧 “…” → 应出现「AI 重新生成标题」→ 点击后弹预览(显示所用模型)→ 确认后会话标题立即变化。

更新

更新后一律重启宿主(client bundle 只在启动时进入 bundle 图,刷新页面无效),再按上方「验证」复查——浏览器 DevTools 里 __DSH_BOOT__.entries 中本插件 bundle URL 的 ?rev= 内容哈希应变。

- Web(github: 安装):重跑安装命令即取默认分支最新:

powershell
dsh plugin --profile web add github:wyewyewye/dsh-session-title-regen

想固定/回退版本就用仓库 tag 引用:github:wyewyewye/dsh-session-title-regen#v0.1.0(tag 与 GitHub Release 同步发布)。

- 官方桌面客户端:在桌面端会话里直接对 DSH 说:

请使用当前桌面端内置的 plugin_manager 把 dsh-session-title-regen 更新到最新,完成后告诉我是否需要重启。

完成后完全退出客户端(含托盘)再打开。

- 本地 tarball(方式 B)开发:在源码目录 bump version → pnpm pack → 新 tgz 放进 profile 的 vendor\ → 把 profile package.json 里的依赖改成新 tgz 文件名 → 在 profile 目录执行 pnpm update dsh-session-title-regen(强制按新 tarball 重解析,防 lockfile 沿用旧解析)→ 重启。vendor\ 里的旧 tgz 不会自动清理,可手动删。

- 本插件没有自带“检查更新”界面(无独立面板可挂按钮):更新入口就是上面的插件管理器 / 命令行;版本以 GitHub Release 为准。

常见问题

- “…” 菜单里没有这一行:按顺序核对——① dsh.profile.bundles 里有没有包名;② 装完是否重启过宿主(不是刷新页面);③ node_modules\dsh-session-title-regen 是真实目录还是 junction(Get-Item ... | Select LinkType,junction 就按「方式 B」换 tarball 装)。
- 对话框报 no-model-route:该会话从未发起过模型调用(日志里没有 request/header),比如刚新建的空会话。换一个聊过几轮的会话即可。
- 报 session-not-found / 读不到日志:会话 ID 对应的日志文件不存在(已删除的会话、或冷日志路径异常)。
- 裸 curl 返回 401/403:DSH 对所有插件路由套了浏览器信任栅栏,不带会话凭据的命令行请求被拒是预期行为,不是接口坏了。
- DSH 升级后菜单消失或生成失败:本插件读取的 user/message、request/header 事件格式与 sidebar.workspaces.session.menu.item 槽名属于 DSH 内部契约,大版本重构时可能需要适配(当前声明兼容见 package.json 的 compatibility 字段),欢迎提 issue。

卸载 powershell
dsh plugin --profile web remove dsh-session-title-regen # Web

桌面端:从 profiles\desktop\package.json 的 bundles 与 dependencies 里删掉该包名,重启

无残留数据:插件没有自己的配置文件,已写入的标题就是普通会话标题事件,卸载后照常显示。

开发与维护

- lib/index.js(node 半)改动需重启宿主;lib/client.js(client 半)改动需重启宿主(client bundle 随宿主启动装载,且 URL 带内容 hash,无需手动清缓存)。
- 模型路由折叠逻辑在 lib/index.js 的 latestRoute();提示词采集在 collectPrompts()(10 轮 / 16 KB 上限这两个常量就在这里);改这两个不影响其它插件。
- 标题生成不经过全局 sessionTitle 服务商,因此与官方自动标题、其它标题类插件互不影响。
- 版本策略:语义化版本;DSH 内部契约变化时提升 compatibility 声明并在新版本里适配。

许可

MIT © 2026 wyewyewye
预览分享卡片长什么样 ↓wyewyewye/dsh-session-title-regen
分享 · DeepSeek Harness Hub
wyewyewye/dsh-session-title-regen

按最近对话用原模型重新生成会话标题

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部