dsh-session-nexus
Unofficial community plugin for DeepSeek Harness. Not reviewed or endorsed by DeepSeek. 非官方社区插件,未经 DeepSeek 审查或背书。
One install, the whole session toolkit — working companion to the community session RFCs.
一次安装获得完整的会话工具套件:生命周期控制 + 跨会话消息。
Install / 安装
dsh plugin --profile web add dsh-session-nexus # or a github/tarball spec
Commands / 命令
| 命令 | 功能 |
|---|---|
/resume <id> |
按 id 显式挂载冷会话(不发消息;从日志解析 preset) |
/unarchive <id> |
best-effort 取消归档(注册表缓存限制见下) |
/rm-session <id> --yes |
降级两步删除(默认关闭,lifecycle.allowDelete: true 开启) |
/send-to <地址> <消息> |
wakeup 投递:成为目标的下一个 turn;冷会话自动 resume |
/notify <地址> <消息> |
quiet 投递:目标下一步的模型上下文,不唤醒 |
/address [地址] |
输出会话的规范地址(URI + mention)供复制;无参数=当前会话 |
地址格式(按推荐顺序):composer @ 选择器产生的 @[标题](dsh-session:…) mention、dsh-session: URI、session id、"含空格的标题"(直引号或「」)、裸标题(贪心匹配,仅活会话)。
With mailbox.enableTool: true (default) models get a session_send_message tool — an orchestrator session can drive other sessions.
Presentation / 呈现
Wakeup mail shows as a clean chat bubble (just the message, Codex-like); sender attribution and the untrusted-content notice ride a separate collapsed context row the same turn claims (mailbox.presentation: 'context' keeps everything in one collapsed row instead). Quiet mail is always a context row with a visible one-line summary.
Safety / 安全
- Sender attribution includes the live session title: 会话「标题」(id).
- Untrusted-content notice on every delivery; self-delivery refused; size cap (
maxMessageChars, 16384). - Loop breaker: per sender→target sliding window (default 10 messages / 300 s).
Config
- id: session-nexus
name: dsh-session-nexus
config:
lifecycle:
allowDelete: false
mailbox:
enableTool: true
allowColdWakeup: true
maxMessageChars: 16384
presentation: bubble # bubble | context
rateLimitCount: 10
rateLimitWindowSeconds: 300
Known limitations (upstream territory) / 已知限制(需上游支持)
/unarchivewrites durable state and pushes the UI frame, but the workspace registry's private in-memory cache cannot be invalidated from outside — a later workspace write may roll it back until restart. The clean fix is the upstreamunarchiveSession()the archive design note reserved./rm-sessionremoves the JSONL session directory only; derived indexes/caches/accounting reconcile lazily. Correct deletion needs adeleteoperation on the upstream persistence seam.- Quiet delivery to a cold session is impossible from a plugin — durable
queued → deliveredmailbox events belong to the upstream seam the RFC proposes. - No session-row "copy address" menu item: the sidebar row menu has no plugin slot.
/addressand the composer mention picker are the plugin-level substitutes.
These gaps are the RFCs' argument: the plugin proves the UX on public seams; the seams belong upstream.
License
MIT
Web UI 增强(客户端插件)
- 会话头部 ID 芯片:每个会话标题栏右侧显示该会话的 session id,点击即复制(悬停提示说明用途)。
/address专属结果卡片:不再是折叠截断的文本行——地址逐条整行展示,点击任意一条直接复制。
No comments yet. Be the first to write one.