DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
P

dsh-plugin-session-rename

Plugin Session Rename

DeepSeek Harness 插件:由 Cordis sessionTitle 服务支持的原生 session_rename 代理工具,让代理能够如实维护每个对话的标题。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:ccclucky/dsh-plugin-session-rename#58546dbcdd3beebc2bd210da6ba53ddb1c59489c
README兼容性版本

兼容性与来源证明

Plugin Session Rename 以 dsh-plugin-session-rename 发布,当前版本为 1.0.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/11/4

版本

1.0.0stable
2026/10/22

相关插件

正在加载相关插件…

最新版
1.0.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
MIT
发布源
github
GitHub
★ 0
周下载
142
最近提交
2026/10/22
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 productivity-workflow 分类下经过校验的插件。

Acp App@deepseek-ai/dsh-acp-appdsh ACP 配置文件包:基于 dsh-base 的仅限自动化的 JSON-RPC stdio 和进程生命周期管理Experimental Schedule Bundle@deepseek-ai/dsh-experimental-schedule-bundle为 Web 组合添加 Schedule、其任务页面和时间上下文的可选捆绑包Web All@linxin666/dsh-web-allDSH Web UI 全家桶聚合插件:一键安装全部功能插件(task-board / pet / web-ui-settings / skin-center / community-plugins / compat shim)。compat 桥接层已并入本包(src/client),无需独立 compat npm 包。Ab Ocrdsh-ab-ocr--- description: "外部 ocr 工具:逐页识别扫描的 PDF 或图像,仅在处理完最后一页后按顺序合并页面,并使用模型确定的标题级别保存为一个 Markdown 文档。" kind: "package-reference" ---

README

dsh-plugin-session-rename

English | 中文

A tiny DeepSeek Harness (DSH) plugin that gives the Agent one native tool:

session_rename(title: string)

The tool calls the Cordis sessionTitle service directly — sessionTitle.rename(session, title) — so the current conversation is renamed for real, not just in the model's imagination.

Why

Out of the box the user can rename a conversation from the UI, but the Agent cannot. That matters when a session's title should carry its state:

  • a [wip] / [pending] / [done] prefix that tracks what the session is doing right now;
  • a title derived from the finished artifact instead of the first prompt;
  • a corrected title when the first prompt was vague.

With this plugin the Agent can keep the title honest on its own, at the moment the state actually changes.

What happens on a rename

sessionTitle.rename(session, title) appends a session/title event with source: user to the session log. Three consequences follow:

PropertyEffect
DurableReplay, fork and resume all rebuild the title from the log.
PinnedIn-flight automatic title generation is superseded, and later prompts no longer auto-rename the conversation.
LiveThe session list and the Chat header repaint as soon as the event lands — no page refresh.

Requirements

  • A DSH build that provides the sessionTitle service (it ships with the standard Web/Desktop bundles).
  • No runtime dependencies. The plugin imports nothing at all.

Install

From npm (one command)

dsh plugin --profile <profile> add dsh-plugin-session-rename

This is the form the in-app Plugin Hub and the community index rely on. The package declares dsh.bundle.patch, so the installer appends it to dsh.profile.bundles and the row mounts itself:

- insert:
    - id: session-rename
      name: 'dsh-plugin-session-rename'

Note that a profile named desktop is owned by the Electron application and cannot be managed from the CLI; use the in-app plugin manager there, or install from source below.

From source (works before an npm release)

The dsh plugin command is a thin forwarder to pnpm add, so a git spec works too:

dsh plugin --profile <profile> add git+https://github.com/ccclucky/dsh-plugin-session-rename.git

Local checkout in your profile

Clone this repository anywhere, then point the profile patch at the file. The Loader anchors relative paths beside the patch file:

# ~/.dsh/profiles/<profile>/cordis.patch.yml
- insert:
    - id: session-rename
      name: './plugins/session-rename/index.js'

Use one channel only: npm, git and a local row at once produce a duplicate entry id session-rename.

HMR picks up both the module and the patch layer live; no restart is needed.

Usage

Ask in natural language — "rename this conversation to [done] 迁移收尾" — or the Agent calls it directly:

{ "title": "[wip] 迁移进行中" }

Result:

{
  "title": "[wip] 迁移进行中",
  "eventSeq": 514,
  "source": "user"
}

Errors are explicit, never silent:

  • an empty or whitespace-only title is rejected before the service is called;
  • a call with no owning agent, or an agent without a live session, is rejected;
  • a title the service normalizes to empty propagates the service's own error.

Design notes

  • Raw JSON Schema, not the authoring dialect. ctx.tools.register() takes raw JSON Schema. defineTool()'s authoring dialect (required: true inline in each property) is for packaged, TypeScript-authored tools; mixing them makes the loader row fail to activate. The tests pin this.
  • The model cannot target someone else's session. The session comes from exec.agent.session, never from tool arguments.
  • Zero imports. The registry accepts a plain ToolDefinition, so nothing has to resolve from the profile's node_modules.
  • Dormant rather than broken. inject = ['tools', 'sessionTitle'] keeps the plugin inactive in a profile lacking either service instead of throwing.
  • Disposal is owned. Registration happens inside ctx.effect(...), so disabling the row removes the tool.

Test

node --test

14 contract tests, no dependencies, no DSH install needed: they drive the plugin through a stub Cordis context and assert the registration shape, the raw-schema contract, session resolution, cancellation and every error path.

Compatibility

Written against the DSH 0.2.x plugin API (ctx.tools.register, ctx.effect, sessionTitle.rename).

The package declares engines.dsh: ">=0.2.1-rc.2 <0.3.0". DSH checks that range before installing and refuses an incompatible runtime instead of loading a plugin that may crash — DSH is in developer preview, so a 0.3.x breaking change should fail loudly. Because engines.dsh is present it decides alone: the package deliberately declares no @deepseek-ai/* peer dependencies, since it imports nothing and should not be gated by peer resolution.

If a future runtime matches the code but not the range, grant the documented exact-version exemption (dsh plugin allow-version) rather than editing the range.

Distribution status

ChannelAvailable
GitHub repository✅ https://github.com/ccclucky/dsh-plugin-session-rename
GitHub topic dsh-plugin✅ added — the community hub (dsh-plugin.org) discovers repos by this topic
dsh plugin add git+https://…✅ verified end to end
npm registry⏳ prepared, first publish pending
dsh plugin add dsh-plugin-session-rename❌ fails until the first npm publish lands

The npm release is prepared and reproducible: .github/workflows/publish.yml runs the tests, verifies the tarball, and publishes with provenance on a v* tag push, using the NPM_TOKEN repository secret. Until that run succeeds, use the git or local channel above.

License

MIT © CCLUCKY