Skip to content

Releases: JiewiW/dsh-derive-watcher

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 15:43
release v0.4.0

dsh-derive-watcher v0.3.3

Choose a tag to compare

@JiewiW JiewiW released this 23 Oct 16:08

v0.3.3

设置页 UI 改造:每个设置项名称下方显示源码内部变量名(源码键:xxx),并将大量参数折叠进「高级参数(N 项)」区,默认收起。

  • 总开关(enableJourney / enableInjection)与生成小结、塞回上下文、判断新旧内容、发现卡死等核心项保留前台
  • 其余 17 项参数分组折叠(4+4+9:墙钟观察 / 文件存放 / 静默中断专家项)
  • 此版本已在隔离 profile 独立端口验证通过,无插件加载异常

v0.3.2

Choose a tag to compare

@JiewiW JiewiW released this 22 Oct 14:24

发布准备(npm pack 净化)

v0.3.1 的 package.json files 字段用了目录通配(replay/、test/),npm 走该字段时 .gitignore 完全失效,导致 tarball 打包进了 replay/transcripts/ 下的真实会话录音(12.7MB + 7.7MB)和全部 12 个测试文件,pack 体积 4.2MB、unpack 22.9MB。

修复:files 字段改为精确白名单,逐项列出要打入包的文件。

变更清单

  • files 精确化:只保留 lib/、README.md、LICENSE、cordis.patch.yml、docs/events.md、replay/README.md、replay/replay.mjs、replay/expected-ranges.json、replay/p2-25/;排除了 replay/transcripts/(真实会话 jsonl,12.7MB + 7.7MB)、replay/replay-ledger/(运行时账本)、test/(全部 12 个 .test.js)、replay/dump-sessions.mjs(开发工具)
  • homepage / bugs 补全:package.json 补 homepage 和 bugs.url 字段(此前缺)
  • 测试回归:236 用例全绿

Pack 结果

  • tarball 大小:4.2MB → 125KB
  • unpack 大小:22.9MB → 382KB
  • 文件数:62 → 25
  • shasum:72f3edc367fbc21e8006f12ba1e844f685b4e57d

v0.3.1

Choose a tag to compare

@JiewiW JiewiW released this 19 Oct 06:01

test

v0.3.0:静默中断识别与原窗口主动续跑(P1)

Choose a tag to compare

@JiewiW JiewiW released this 18 Oct 18:21

新增:静默中断识别与原窗口主动续跑(P1)

回合被步限/上限/运行时错误打断、且没有面向用户的结论时,插件识别为静默中断,可按设置自动在原窗口续跑。

四种动作模式(设置 → 静默中断 → 动作模式)

  • off:不检测
  • notify:仅告警(默认,fail-safe)
  • followup:自动续跑(原窗口 followup 拉起新回合)
  • goal-resume:目标优先续跑(blocked/paused 目标走 goals.resume,回退 followup)

安全闸

  • 每会话最多自动续跑 3 次(真人消息接管后清零)
  • 回合结束后 15 秒冷却,给真人和其他插件让位
  • 真人消息/其他续跑在场则放弃介入
  • 续跑后 3 步内无进展或未调用工具 → 升级人工
  • 错误码命中(401/403/signed-out)只告警不重试

可观测

  • 六类事件:detected / cancelled / resume-sent / resolved / escalated(+zombie-detected 占位)
  • timeline 归入干预通道,GUI 徽标区分「已续跑 / 已升级人工」

测试

  • silent-abort 测试套件 T1-T6 全覆盖;全量 247/247 pass

v0.2.2 设置与时间线文案人类化

Choose a tag to compare

@JiewiW JiewiW released this 14 Oct 08:10

这一版做了什么

把「语义旅程监视」插件的所有设置项与时间线卡片,从内部代号与术语改成普通中文。

设置面板

  • 22 个设置项的名称与说明全部重写为日常说法,不再出现内部代号与英文缩写。
  • 设置项按用途重新分组:总开关 / 生成小结 / 塞回上下文 / 判断新旧内容 / 发现卡死 / 文件存放。
  • 「判断新旧内容的方式」由自由输入框改为下拉选择,三种方式写明差异:结构检查(默认,最快最省)、语义相似度(更准,需要向量模型)、两者都用(最准,稍慢)。
  • 能力条文案改为「AI 自动总结 / 卡死拦截 / 自动塞回小结」,记录目录改称「记录存放目录」。

时间线卡片

  • 干预卡片的标题与摘要不再显示内部代号,直接说明发生了什么、是否已经生效。
  • 停滞等级改为「停滞等级 N 级」。
  • 无法识别的卡片标题统一显示「类型未知」。

兼容性

  • 只改显示层。内部保存的取值、配置文件格式与既有行为完全不变,无需修改已有配置即可升级。
  • 内部标识符保持不变,以保证历史记录与已落盘的样本可正常解析。

升级方式:覆盖插件目录后重启 DSH 即可。

v0.2.1:总结器路由缺失修复(语义条目全量落 gap)

Choose a tag to compare

@JiewiW JiewiW released this 14 Oct 06:10

v0.2.1:总结器路由缺失修复(语义条目全量落 gap)

本版本是修复性发布。修复前,所有会话的语义条目 100% 落成 gap——timeline 上只能看到心跳与一条降级事件,看不到任何结论推进。

根因

总结器调用 LLM 时没有传 provider / model,内核按 undefined 路由,返回 NO_ADAPTER;该失败被归类为「草稿解析失败」,于是每条 assistant 消息都写一条 type: gap 记录,type: entry 恒为 0。实测某会话 83 条明细 全部 是 parse-error,全库累计 3267 条 gap、0 条 entry。

修复

  • 总结调用补路由:默认跟随触发消息的 provider / model,可用 summaryProvider / summaryModel 覆盖。修复后同一会话在数分钟内即产出真实结论条目(finding / plan)。
  • 失败分类透出:按 NO_ADAPTER(无可用模型路由)/ timeout(调用超时)/ 草稿解析失败 / 模型空回复 四类分别归类,原因随 gap 一同落账本,不再一律记成「解析失败」。
  • 超时日志:onMeta 增补 aborted 分支日志(耗时、provider、model、purpose),便于区分「真等满超时」与「瞬间秒拒」。

timeline 新增 gap 来源(四来源 → 五来源)

  • gap 不再隐形:每条总结跳过都会在 timeline 上成为一张卡片,标题为该原因的可读文案(「总结跳过:无可用模型路由」/「总结跳过:调用超时」/「总结跳过:草稿解析失败」/「总结跳过:模型空回复」/「总结跳过:其他故障」,缺 grade 时为「总结跳过(原因未知)」),并带 grade 原因徽标。
  • 心跳事件默认折叠,面板顶部新增「显示心跳」勾选可展开;折叠时卡片数一并提示,避免心跳刷屏掩盖真实结论。
  • 观察组补 step 范围:折叠态直接显示该组覆盖的 step 区间,便于定位。
  • 排序优先级:intervention → watcher-event → milestone → gap → journey → observation(同时间戳、同步号时按来源优先级)。

升级提示(重要)

  • 客户端(右栏 UI)刷新页面即生效(插件客户端半边由 combo 打包,无需重启)。
  • 宿主侧改动需要重启一次 dsh web 才会加载新的 host 模块。

测试

  • 用例 133 → 134(新增 per-call provider/model 覆盖闭包与 failure 透传用例),npm test 全绿。
  • 零第三方运行时依赖,peerDependencies 范围不变。

安装:dsh plugin --profile <profile> add github:JiewiW/dsh-derive-watcher#v0.2.1

v0.2.0 右侧栏 timeline

Choose a tag to compare

@JiewiW JiewiW released this 13 Oct 02:19

v0.2.0 右侧栏 timeline

把语义监视者的后台观察记录与 step-governor 干预全程,合并成 DSH Web 右侧栏一条纵向时间线。

新增

  • 右侧栏「语义监视」选项卡:归并五类来源并按时间倒序——
    • intervention:stall-2/3 的 L2 干预受理结果(deny-read / reject-step),醒目卡片展示动作、所在 turn/step、是否受理、TTL 与解除步(expiresAtStep)
    • watcher-event:其余 semantic-watcher/* 事件(stall / heartbeat / handoff-written 等)
    • milestone:里程碑折叠产出
    • journey:语义旅程条目(含重复标记)
    • observation:每步 reasoning/text/产物观察(默认折叠可展开)
    • 支持会话切换(语义账本 ∪ 内核 sessionQuery 并集,带标题/cwd/live)、每 5 秒自动刷新;时间戳兼容 ISO 字符串与毫秒数字;脏 JSONL 行自动跳过
  • 新事件 semantic-watcher/intervention:stall-2 denyToolCategory / stall-3 rejectStep 成功受理后发出;必带 action/accepted/code/level,ttlSteps/expiresAtStep/pending 仅取 L2 真实返回值,缺失省略不编造;发射 fail-soft,L2 失败仍走 execution-unavailable
  • host 只读路由:
    • GET /plugins/derive-watcher/timeline/sessions
    • GET /plugins/derive-watcher/timeline?sessionId=<sid>&limit=<n>(limit 默认 200、上限 1000;缺 sessionId 返 400、无账本返 404)
    • sessionQuery 不可用 / listEvents 抛错时自动降级(扫账本目录 / 事件源置空并带 warnings),不返回 5xx

升级提示(重要)

  • 客户端(右栏 UI)刷新页面即生效。
  • 宿主侧两个新路由需要重启一次 dsh web 才会注册——插件 host 模块不热加载;未重启时右栏会显示「timeline 接口不可用,重启 dsh web 后即生效」的优雅空态,不影响既有设置页与其他功能。

测试

  • 用例 117 → 133(新增 intervention 受理埋点 7 个、timeline API 9 个),npm test 全绿;测试改为串行(--test-concurrency=1)以避免共用全局 settings.json 的用例互相踩踏。
  • 零第三方运行时依赖,peerDependencies 范围不变。

SHA-256 校验 / 安装:dsh plugin --profile <profile> add github:JiewiW/dsh-derive-watcher#v0.2.0

v0.1.1 — 空转治理整改(FIX-01/05/06)

Choose a tag to compare

@JiewiW JiewiW released this 12 Oct 15:57

v0.1.1:空转治理整改(FIX-01 / 05 / 06)

本版本为修复性发布,同时是本仓库在 GitHub 上的首个正式 Release。

修复与增强

  • FIX-01 user/message 双形状兼容:user/message 事件处理同时兼容 data.source 直挂与 data.message.source 嵌套两种载荷形状;插件自身来源(source.plugin)正确防回环,不误判为用户输入。
  • FIX-05 测试运行器收口:npm test 统一为 node --test "test/*.test.js",P2-25 回归通过独立 npm run test:p225 运行;默认套件 117 项全绿。
  • FIX-06 P2-25 事务四线回归:新增 replay/p2-25/ 回归夹具与 11 项断言,覆盖事件形状兼容、停滞升级窗口、inc-1…6、entries 正/负对照,以及关键双形状断言——source.plugin 不清零(插件来源不误判)而 source.surface=gui 负对照仍正确清零;P2-25 回归 11/11 通过。
  • Web 客户端半边:补齐插件在 DSH Web 端的客户端注册。

兼容性

  • 无破坏性接口变更;两种历史/当前事件形状均被正确处理。