dsh-morning-paper:用持久事件日志算出的会话「头版」

前言

在 DSH Web 里长时间跑会话时,Chat 是一条线性的消息列表:你能逐条读对话,却很难一眼回答「我离开这段时间发生了什么」「哪几个 turn 吃掉了 token」「哪些工具失败后再也没重试」。Trajectory 更偏轨迹细节,同样不会把文件改动次数、墙钟时间分布、待你审批的事项收成一张可读摘要。

下面介绍社区插件 dsh-morning-paper(维护者 damlys99,目录分类为「记忆」):在 Conversation View 里增加名为 Morning Paper 的标签页,与 Chat、Trajectory 并列;内容全部从持久事件日志计算得出,不由模型生成,也不占用你的上下文。

这是什么

一句话定位:你离开后又回到会话时的一页「头版」——发生了什么、哪里坏了、还有什么在等你。

数据来源是会话的可 durable event log。插件自述强调:briefing 是 computed,never written by a model;同一日志与同一时钟下输出字节级一致,零 token、无幻觉。页面是派生状态,不调用 inject()、不追加 session event、不向模型发送任何内容;唯一写入 transcript 的路径是你主动执行的 /briefing 命令(README 称 selftest 会断言这一点)。

核心功能

Conversation View 里的报纸式标签页

Morning Paper 是真实的 Conversation View 标签页,版式按报纸组织:报头(masthead)、日期行(dateline)、待办公告框(action bulletin)、带首字下沉的导语(lede)、分栏与脚注式小字(small print)。

同一套 briefing 有两种呈现:

  • 标签页:分页渲染为三页「报纸」;
  • 命令 /briefing:在 transcript 里打印同一份文档的纯文本连续栏(transcript 不能翻页,分页只是展示,不是另一套数据)。

三页分别承载什么

有内容才出页;安静的会话可能只有一页,不会硬凑三页空白。

页 内容
1 · Front 待办公告、一行导语(outcome)、活动摘要(what it did)、你说过的话(what you asked)、上下文压力(weather)
2 · The Log 按 turn 的时间线(耗时、步数、工具数、token、结果)、未解决失败及失败命令、corrections 行
3 · The Ledger 文件改动次数、交付物、时间花在哪(工具执行 vs 模型时间)、token 花在哪(按 turn 排序)

导语 deliberately 不引用 agent 的回复——Chat 里能读到的复述会让 briefing 失去价值;导语是一行结果(例如 Turn 17 completed. 或 turn 结束为 blocked 时在等你)。

相对 Chat 多出来的事实

README 归纳了线性聊天无法直接给出的聚合信息,例如:

  • 哪些文件被反复改动(如 12x src/auth/session.ts);
  • 墙钟时间分布:各工具执行时间、最长单次调用、工具执行占窗口比例 vs 模型思考时间;
  • 哪个 turn 占窗口 token 比例最大;
  • 失败且从未重试的工具调用(同一工具失败后又有成功则视为已处理);
  • 从你发出的消息里筛出的「你之前要什么」。

两个阅读范围

头版要回答两个问题,因此有两种读法:

问题 数据来源
我离开期间发生了什么? 仅浏览器上次展示 seq 之后的事件
现在有什么需要我? 整段日志——离开前就在等的审批、一小时前 blocked 的 turn 仍然 blocked

Fork 继承的事件不计入「发生了什么」的计数,并在 notes 行说明;readSession 会报告继承前缀长度,避免把 fork 来的工作算进当前会话。

安装与启用

插件面向 DSH Web profile。官方安装命令如下(来自 README):

dsh plugin --profile web add -w dsh-morning-paper
# restart dsh web, then reload the page

要求 DSH 版本 >=0.1.2-alpha.1 <0.2.0-0(package.json 的 engines.dsh 与 README 一致)。安装后配置行会自动写入 profile;因 host 模块与 client bundle 在启动时组装,需要重启 dsh web 再刷新页面。README 说明 patchReload: live 只监视 patch 文件,不能替代这次重启。

卸载:

dsh plugin --profile web remove dsh-morning-paper

npm 包当前版本为 0.1.1(见 package.json),许可证 MIT,Node >=20。

典型用法

离开会话再回来

在 Web profile 下启动 DSH 并保持会话标签打开,例如:

dsh --profile web

一段时间后回到浏览器,打开 Morning Paper 标签即可看到头版:离开时长、事件数、墙钟窗口、当前 turn、是否需要 action 等会出现在报头区域(README 示例中有 away 42m | 751 event(s) | … | 0 action(s) required 一类行)。

在 transcript 里要同一份 briefing

需要可复制、可搜索的纯文本时,在会话里执行:

/briefing

输出形状与 README 中的示例一致(LEAD、WHAT IT DID、TURNS、FILES、WHERE THE TIME WENT、WHERE THE MONEY WENT、BUSINESS、CORRECTIONS、UNRESOLVED、YOU ASKED、WEATHER 等区块)。若你希望 agent 用自然语言再写一段说明,README 建议用 /briefing 再配合 agent;本插件本身不提供模型生成的 prose。

适用场景与注意

适合谁: 经常在 DSH Web 里开长会话、需要快速复盘「离开期间」与「当前卡点」的开发者;关心 token 分布、工具失败与未重试项、文件 churn 时,Ledger 与 Log 页比逐条翻 Chat 更直接。

信任边界: 内容来自日志聚合,不是模型摘要;若日志不完整或 fork 边界理解有误,应以 Trajectory / 原始事件为准核对。

安全与权限: 插件随当前 dsh 进程加载与运行,能访问该进程有权读写的会话与配置。安装前建议在 GitHub 查看源码与 MIT 许可证,确认符合你的环境策略。社区目录 SkillHub 插件页 与 GitHub 仓库由社区维护,与 DeepSeek / 幻方无官方从属关系;DSH 生态是「一切皆插件」,目录站是独立入口,不是官方应用商店。

结尾

dsh-morning-paper 把持久会话日志收成一张可翻的「晨报」:发生了什么、什么坏了、什么在等你——计算得出、不进上下文、Chat 里看不到的聚合在一处呈现。需要纯文本时用 /briefing。

  • 目录页:https://www.skillhub.cn/plugins/damlys99/dsh-morning-paper
  • GitHub:https://github.com/damlys99/dsh-morning-paper
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye