DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

991206772-debug /

991206772-debug/dsh-share

Verified

Turns the current conversation into a shareable analysis: overview, prompts, conclusion, todos, tools, files, plus one read-only link for other people.

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@0601eba6

分享会话 · @local/dsh-share

把当前会话完整整理成一页可分享的内容,并给出一个别人真的能点开的链接。

装好之后,会话头部的视图页签里会多一个 分享会话:点进去就是这次对话的 概览、对话主线、结论、待办、工具与文件、时间线,页首那一条负责把它交给别人。

先说清楚「链接」这件事

Harness 的 Web 服务只绑在 127.0.0.1。127.0.0.1 的意思是「我自己这台机器」, 所以把那个地址发给别人,在他电脑上打开的是他自己的机器 —— 必然打不开。

本插件因此提供两种分享,各管一种场景:

方式 谁能看 怎么用
局域网链接 同一 Wi-Fi / 内网的人 点「生成局域网链接」,插件在本机开一个只读端口,按随机 token 提供冻结快照;复制链接发过去即可
下载 HTML / Markdown 任何网络的人 存成文件发过去。HTML 是自包含单文件,无外链无脚本,双击就能看

局域网链接默认 30 分钟到期(可选 10 分钟 / 30 分钟 / 1 小时 / 3 小时),也可以随时点 「停止分享」立刻作废。链接一旦停止或到期,打开只会看到 link expired or unknown。

外网(互联网)访问不到这个端口。要让不在同一网络的人看到,用下载。

面板上的按钮

按钮 结果
生成局域网链接 起一个只读端口,返回形如 http://192.168.x.x:xxxxx/dsh-share/s/<token> 的地址
复制链接 复制上面那条地址(页面上也会显示,含到期时间)
停止分享 立即作废该链接
复制 Markdown 同样的内容以 Markdown 进剪贴板
下载 HTML 下载单文件 HTML,文件名形如 对话分享-<话题>-20261031-0812.html
下载 Markdown 下载 .md,同名不同后缀
本机预览 新标签页打开本机页面(自己看,不是给别人)

下载文件名是人能读的:对话分享-<会话话题>-<年月日-时分>.html。话题里 Windows / macOS / Linux 都禁止的字符会被去掉,其余保留;中文用 RFC 5987 编码,现代浏览器显示正常。

页面里有什么

页首一句话先概括这次对话的规模,然后依次是:

  • 概览:轮次、用户消息、助手消息、工具调用、耗时、Tokens
  • 对话主线:你按顺序提出的每一条要求(仅你打的字)
  • 完整对话:日志里的每一条消息,按时间顺序,一条不删
  • 结论 / 待办 / 工具使用 / 涉及文件 / 时间线 / 异常:结构化摘要

关于「完整对话」

早期版本只保留 source.kind === 'user' 的消息,结果把子代理发回来的报告当成注入噪音丢掉了—— 一个多 agent 会话里最重的三份审计报告(54K 字)会从分享里消失。现在不过滤:

角色 来源 说明
你 user 你打的字
助手 assistant/message 模型回答(含思考步骤之间的短句)
队友 agent-message 队友通过 send_message 发回来的内容
子代理完成 subagent-settled 后台子代理的收尾报告
系统上下文 runtime-context / skill-catalog / time-context / user-approval Harness 自己喂给模型的内容,保留但标注,让读者知道那不是人说的话

正文按 Markdown 解析后渲染:标题、加粗、列表、表格、代码块、引用都会正常显示, 不会再把 **这样** 原样露出来。面板与网页用的是同一份解析结果,两边不会不一致。

超过 40,000 字的单条消息和 300,000 字的整段对话会被截断并标记「已截断」—— 不是静默丢弃。

内容是怎么来的

一次对会话日志的确定性折叠,不调用模型:

  • 轮次来自 turn/start / turn/end;
  • 正文来自 user/message 与 assistant/message 的文本块(不含思考过程);
  • 文件与待办来自 tool/call 的参数;
  • 失败来自 tool/result 的 error。

同样的会话,永远得到同一页。内容全部来自会话日志,没有额外存储,也没有隐藏状态。

Host 路由

GET  /dsh-share/api/analysis?sessionId=<id>&lang=zh|en        分析 JSON + 完整对话块 + Markdown + 文件名
GET  /dsh-share/page?sessionId=<id>&lang=zh|en[&download=1]   只读页面
GET  /dsh-share/md?sessionId=<id>&lang=zh|en[&download=1]     同一页的 Markdown
POST /dsh-share/api/lan/start   {sessionId, lang, minutes}    生成局域网链接
POST /dsh-share/api/lan/stop    {token}                       停止分享
GET  /dsh-share/api/lan/status                                当前链接与地址

/page 与 /md 只从当前进程里已加载的会话语取日志(ctx.sessions.get(id)); 刷新页面或重新打开该会话即可。局域网端口只提供 /dsh-share/s/<token>,别的一律 404。

隐私边界

分享页是给别人看的,所以在分析入口就把不该外传的东西换掉了——不是靠界面上遮一遮, 而是脱敏发生在解析之前,面板、网页、Markdown、下载文件名四者拿到的都是脱敏后的内容, 不存在第二处能把真实路径还原回去。

内容 变成
家目录路径 C:\Users\<你>\Desktop\x.docx ~/x.docx
其它盘的用户目录 D:\Users\<你>\…、/home/<你>/…、/Users/<你>/… ~/…
项目内绝对路径 D:\projects\demo\报告.md …/demo/报告.md(保留文件名,隐藏上层目录)
你的账号名单独出现(命令输出、引号里的文件名、正文里提到) <user>
标题 / 下载文件名里的路径 整段去掉,只留你真正问的那句话

http://… 这类 URL 不会被误伤(盘符正则带了边界判断)。

另外仍然不包含:系统提示、思考(reasoning)过程、工具返回的正文。 只保留你在对话里说的话、模型回答的正文,以及工具名/文件名这类结构性信息。

提醒:工具名、文件文件名、队友报告正文属于对话内容,会照常出现。 如果某个文件名本身就敏感,发之前自己扫一眼。

局域网链接是冻结快照:生成之后你继续聊,别人看到的仍是生成时的那一页;这也意味着 「停止分享」是真的撤回了内容,而不是把链接关掉而已。

文件

index.js           Host 半:折叠 + 只读路由 + 局域网监听
client.js          Client 半:conversation.view 面板
cordis.patch.yml   bundle patch
locale/*.json      Plugin Manager 里的标题与描述
icon.svg           面板图标

GitHub 安装与验证

仓库:https://github.com/991206772-debug/dsh-share

桌面版可在插件管理中使用仓库地址安装;命令行版在自己的 Profile 中安装:

dsh plugin --profile web add github:991206772-debug/dsh-share

公开源码不包含用户配置、笔记、真实会话、凭据或 node_modules。验证使用隔离目录,不主动重载正在运行的 DSH。

许可证

自有源码采用 MIT,署名 991206772-debug。

—/ 5

No ratings yet

Verified DSH bundle

Commit 0601eba6ceea

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout