Skip to content

Releases

v0.9.0 — 记忆主管全链 + 健康层前台提示 + 尾部注入改替换

Choose a tag to compare

@vv5v5 vv5v5 released this 01 Oct 05:39

自 0.8.0 起:

  • 记忆主管全链:线程化收排(思维链保持)、四块提示词组装(含导演指令到期判定)、append-only 硬闸与工具描述双版本、看门狗/失败逃生舱、首轮 notes 分档、dryRun 移除
  • 健康事件层:全流程失败落账 + 面板故障档 + 前台 toast(唯一 SSE 推送)
  • 尾部注入改"替换":简报/index 尾注/PHI 不再逐楼叠加(surface 替换)+ 手术清扫端点(幂等、重跑即孤儿认领)+ 首楼认领(fork/重启自愈)
  • 查看器:surfaceOp 读事件根——被替换的行不再冒充活行
  • 摘要删除迁主管档;每行删除按钮;面板页签重排;故障档可达性修复

v0.8.0 — persona §0 + 压缩面板重构 + memory_write 维护姿态 + 压缩自愈修复

Choose a tag to compare

@vv5v5 vv5v5 released this 28 Sep 14:36

自 v0.7.0 以来(详见 CHANGELOG):

persona / 行为

  • §0 每轮强制读取 index.md(置于人格头部,未读不落笔)
  • 「思考从简」:工具思考只留要点,⛔ 复述检索原文
  • memory_write 描述重写:维护姿态前置——一场一段、过时信息当场删、大整理用 overwrite

压缩

  • 面板重构:保留比(retainPercent)与阈值平级、各自独立保存;步长 5 对齐取消(自由输入);usePanelThreshold 开关退役(面板数值恒生效)
  • 修复:span 只剩旧 checkpoint 时不再产出空摘要顶掉真浓缩;compaction/summary 账本行不再冒充对话行

面板 / 检索

  • 新增 POST /retrieval/models(面板一键抓取嵌入/重排模型清单)
  • 提示词查看器按真实请求面渲染(消费 compaction/prune 与 surfaceOp.replace,含修剪标记与徽标)

v0.7.0 — 楼层清单改版 + 每轮折叠历史工具结果 + 查看器真实请求面 + 模型列表抓取 + persona §0

Choose a tag to compare

@vv5v5 vv5v5 released this 27 Sep 11:33

自 v0.5.2 以来的主要变更(详见 CHANGELOG):

  • 楼层清单改版:自编序号、倒序窗口、回执、改动下钻
  • 每轮折叠历史工具结果(toolCollapsePerTurn)+ 提示词查看器渲染真实请求面
  • 「向量检索 API」卡新增抓取模型列表(POST /retrieval/models)
  • persona 新增 §0 每轮强制读取 index.md
  • 折叠模块 mt-compaction-rp 随预设目录分发

v0.5.2 - v3 external composition consumer (composer + panel, off by default)

Choose a tag to compare

@vv5v5 vv5v5 released this 16 Sep 06:02

v0.5.2 —— v3 外部组合消费端(组合器 + 面板,默认关)

Consume the Tavern v3 external composition API. Off by default.

⚠️ v3 目前只活在 Tavern 的候选分支(codex/prompt-composition-api-v3 @ 92d5924,未合并未发布);
正式版 2.2.0 上 /pmp-dsh-tavern/api/v3/* 是 404 —— 本插件会如实降级(GET /v3 回 TAVERN_V3_UNAVAILABLE)。
开着这个组合器才接管装配;关着与 0.5.0 完全一样。

Added

  • v3 组合器(lib/v3-composer.js):经 Cordis 服务 pmpDshTavernPrompt 注册一个同步组合器
    (owner 默认 dsh-memory-archive)。会话被显式切成 external 后由我们产出命名段:卡字段
    (system-prompt / description / personality / scenario / message-example)、本轮命中的世界书条目、
    后置指令、仅首轮的开场、一行 [external-composition owner=… v=…] 来源标记
  • GET /v3:capabilities + 本会话 mode + sources 摘要(卡 id/名、开场序号与语义、各字段字数、
    世界书计数、suggestedCallConfig、revision)+ 组合器状态(含 needsHostRestart)。⛔ 只回投影,不回卡片正文
  • POST /v3/mode:显式切 builtin/external(先读 revision 做 CAS;必须 confirm:true;409 的两种原因如实提示)
  • 维护抽屉里的「v3 外部组合」面板:上面这份投影 + 三个显式动作(启用我方组合器 / 切到 external / 切回 builtin)
  • 两套自检:_selftest-v3-composer.mjs(18 项)、_selftest-v3-panel.mjs(8 项),各含反证

Notes

  • ★ 三个只有真机才暴露的集成陷阱(各有自检钉住,也已回帖上游):
    1. 段文本里的 {{名字}} 会被 DSH 插值(只认 provider/model/cwd)⇒ 卡片示例里的 {{user}} 让整轮直接失败;
      Tavern 把卡原文原样交给组合器 ⇒ 宏由我们负责(用 runtime.macroContext 展开;解不了的中和;畸形嵌套兜底)
    2. 段对象只许有 {id, text} 两个键:多一个键就 422 OUTPUT_INVALID,而报错文案不指向真因
    3. 世界书审计的 entryId 是裸 uid(字符串或数字),loreEntries[].id 却是全名 ——
      只按一种查会一条都命中不了且不报错(静默少注入)
  • 默认关(config.v3.composer.enabled=false):v3 是"换活法"不是修 bug。改这个开关要重启宿主
  • 组合器走软注入(ctx.inject([...], cb)):硬 inject 的插件在 Tavern 被卸载后会让整个 Host 起不来
  • callConfig 默认不回传(上游那一问未定前的保守选择)

Known gaps

  • extensions.depth_prompt 没进装配(内置会按 depth 插进消息历史;v1 需要 DSH 侧的插入能力)
  • ST 完整 marker/宏策略、prompt_order 重排、世界书 token 预算裁剪:不做(与上游示例同档的诚实边界)

Verification

  • 全量门 41 套全绿;组合器 18/18、面板 8/8、client 72/72;隐私扫描 106 文件 / 0 命中
  • 沙箱端到端(独立 DSH_HOME + 候选包 + 本机假 provider 落盘真实请求):capabilities.composers=["dsh-memory-archive"];
    切 external 后真实请求的新装配就是我们那 9 段(含命中的 <st-world-info> 与仅首轮的开场),
    trace assembly.composition.owner=dsh-memory-archive;第二轮不含开场;0 失败轮次
  • Tavern 缺席:宿主照常启动,/v3 如实回 TAVERN_V3_UNAVAILABLE

v0.5.0 - viewer field notes, RP scope suppression, template apply

Choose a tag to compare

@vv5v5 vv5v5 released this 15 Sep 17:35

v0.5.0 —— 面板侧收口:字段来路说清 + RP 遮蔽宿主定位段 + 模板「应用」

Viewer field notes, RP scope suppression, template apply.

⚠️ 诚实边界:遮蔽作用在预设作用域,只对新开的会话/周目生效(已在跑的会话留在旧一代装配);
面板侧的注释、灰标、标蓝刷新即生效。

Added

  • RP 遮蔽宿主定位段(预设模块):preset-modules/rp-suppress-host-sections.js —— 在 preset 作用域里把
    harness:source(10000) / app:web-surface(10100) / context:file-reference(900) /
    ui:deliverable-file-references(9000) 注册成同名空文本段(上游 systemPrompt.section() 契约:
    作用域内同名段遮蔽全局段;上游没有「注销别人注册的段」的 API)。order 取 getSectionOrder
    ⇒ 只换内容不换位置;逐段 try/catch、整体绝不抛(抛 = 预设挂不上 = 开不了周目)
  • 地图的字段注释表:按真机实测补齐 18 条,逐条写清「来源 + 作用」;上述 4 段另写清
    「RP 模式已禁用 ⇒ 占位、不会出现具体内容」,行上加灰标「RP 遮蔽」(仅当该段确实 0 字)。
    这几行照常逐行给出 —— 每段占一个 order,不折叠、不隐藏
  • 工具段的两个通道:tool:* 行与抽屉标蓝药丸,并写明 ① 本段 = system 里的说明与纪律
    ② 请求的 tools 字段 = 它的 JSON 定义
  • 自动收纳:「绑定」门槛(只有绑定过的会话才自动收纳)+ 失败如实播报落
    <storageDir>/auto-collect.json(面板顶栏标红)
  • _selftest-rp-suppress.mjs:遮蔽模块行为自检(8 项,含「把 text 改成非空则判据必红」的反证)

Changed

  • 模板卡:压缩指令的「保存」改成「应用」,直接用 /agent/apply 写进预设
    (writable 候选过滤 + 应用回读 + 失败带 hint);「收纳占位」卡改只读(没有可写目的地);
    撤掉多余的 ⚠️ 提示块与随之而来的空框
  • 段归属收敛成一张表:按段名前缀认 + 精确名覆盖(rp:policy=上游 pmp-dsh-tavern、
    rp:storyAnchor/rp:firstRound/dma:echo=本插件、state:card=本插件子包 state-bridge),
    表里不许写 order 数字(数字一律来自捕获)
  • 导入:新增 lib/import-apply.js(导入应用路径)

Fixed

  • 服务端错误体解析:{ok:false,error:{code,message}} 以前把整个 error 对象当成消息 ⇒ 现在取 error.message
  • 注释里残留的旧口径(旧版地图把这几段折叠成一行汇总;现行是「字段照给 + 注释说清」)已清干净

Notes

  • 遮蔽的生效范围:新会话 / 新周目;已在跑的会话里那几段仍有内容 ⇒ 面板不会给它加灰标(说真话优先)
  • 自检:39 套全绿(含新增的 _selftest-rp-suppress.mjs)
  • 安装:下载下面的 dsh-memory-archive.tgz 解包到插件目录(包内 package/…,与 0.4.0 同一种打包方式)

v0.4.0 - services and v3 read-path fixes

Choose a tag to compare

@vv5v5 vv5v5 released this 15 Sep 14:21

v0.4.0 —— 服务端能力补齐 + 三处「读不到」的真机 bug 修复

Services + three real-machine read-path fixes.

Added

  • 收纳执行器 A1/A2(/collect/targets|plan|apply|scan|auto):扫 shadowed 区间 → 写进 Tavern 周目归档,台账幂等,不碰 DSH 会话文件
  • 聊天导入适配器 B1(/import/formats、/import/plan)
  • 本地记忆回响 D2:node:sqlite FTS5(trigram) 引擎 + 以 dma:echo(order 54)注入
  • D4 标签归一(lib/ami-tags.js);保留第一轮(lib/keep-first-round.js + preset-modules/)
  • state-bridge 收编为 dsh-memory-archive/state-bridge 子包(含 70 项原样测试)
  • 查看器:常驻会话集、会话真标题、批量勾选式选常驻

Fixed

  • 只带 session.v3.jsonl.zstd 的会话整个读不到 / 带旧文件的会话只读到迁移前的冻结快照
    (改为走宿主自己的读取链;真机对照:not found → 99 楼、69 楼冻结 → 103 楼)
  • 最新一楼看得到字段、看不到上下文(system 正文改从 system/message 取,并如实标注来源)
  • requests 摘要两套算路漂移(列表页 systemChars 恒为 0)

Notes

  • 收纳与导入目前只有服务端端点,面板还没有入口(API-only)
  • 自检一律使用临时 storageDir;真夹具经环境变量提供(不绑定某一台机器)

v0.3.0 · 首次公开

Choose a tag to compare

@vv5v5 vv5v5 released this 14 Sep 13:09

首次公开版本:包名与仓库同名 dsh-memory-archive。记忆库(阅读 / 检索 / 真名解析 / 提示词面板)+ 提示词查看器(装配地图、段级偏移、点开看该段真实正文、注册表导出、诊断)。收纳落库与聊天导入适配器不在本版本内。

First public release. Memory archive + prompt viewer. The collection writer and the chat-import adapter are not part of this version.