# 更新日志 本插件与 dsh 宿主版本一一绑定(peerDependency 锁定精确版本),升级 dsh 前请先确认有适配的插件版本。 ## 0.1.10(2026-09-06) 适配 dsh `0.1.2-rc.1`,Node 24。 - 修复 WAL 文本快照丢失 UTF-8 BOM:改写或删除后恢复原始字节,同层连续撤销不再误把中间稿当作人工修订;补充真实文件系统与重启回滚测试。 - 补齐按消息变量与 findVariables:使用稳定 Message.id 保存独立快照,支持 withMsg 的索引、角色与当前 swipe;普通回复也继承快照,历史修改记入当前层 WAL,重启、分支与回滚保持隔离。 - 支持命名提示词与 generate/message 正则的 sticky 跨轮生命周期,共享回调闭包经生成及回复操作日志恢复;预加载重建不续期,到期释放日志,预览、多步与失败重试不重复推进。 - 生成正则支持合并消息的跨来源匹配、捕获替换及生成/删除 EJS;来源区间缓存避免主动激活重组重复副作用。提供冻结的 charAvatar/userAvatar,剥离 PNG 元数据并限制头像大小和路径。 - GENERATE 上下文按模拟消息顺序执行,提供完整原始 generateData 与递进 generateBuffer,装饰器支持下标/正则参数;展开后按实际正文检查预算。修复宿主重启后冷会话 EJS 开场白被误判的问题,展示只读持久日志。 - 使用真实 EJS 6.0.1 编译参数,补齐嵌套 include、上下文与空白语义;生成闭包、schema 和回复正则通过确定性重放与剧情持久恢复记录跨阶段保留,重启不重复写变量。 - 支持延迟命名注入出口与逐条回复上下文;回复以有序片段保存和展示,接入 @@iframe、@@message_formatting 及 Showdown,保留沙箱权限。修复卡面初始加载与 document.write 重写时的 CSP 插入位置。 - 内置真实 Faker 10.6.0,提供完整 namespace 与 77 种语言;在 QuickJS 中按需加载,默认种子和参考日期随轮次冻结。补齐完整角色定义、角色数据结构与读取别名,修正默认世界书选择及嵌套读取来源。 - 修正命名注入默认去重、define 属性路径/合并/函数上下文,以及临时正则 basic 默认规则;支持 system 过滤和回复 EJS 后的 after 替换。 - 生成变量与 WI 定时器改为同文件原子提交;提交失败重试沿用冻结计划,避免重复自增和推进冷却。旧定时文件保留迁移读取,分支与祖先回滚覆盖真实文件故障测试。 - 补齐 @INJECT 的位置、角色与正则定位,以及 GENERATE 的消息下标/正则正文追加;模拟序列保留位置和角色,真实正文映射到 tavern:turn 并在诊断中注明。未命中不执行,正则受 worker 超时限制,变量写入覆盖同轮冻结、剧情隔离和 WAL 回滚测试。 - 内置真实 Zod schema、完整 Lodash 和 jsonrepair:支持变量类型/默认值/转换、原子删除和补丁校验,校验器副作用与失败不会污染状态。模板库在 QuickJS 中加载并随包携带许可证,Lodash 时钟与随机源遵守同轮冻结。 - 模板与 WI 合并到同一隔离计划,支持 activewi 同轮嵌套激活、关键词查询与预处理递归;来源缓存避免重组时重复写变量。补充 activateRegex 的同步回调、作用域/深度过滤与本轮回复字符串规则冻结,纯文本回复也保存渲染快照。 - 扩展 ST 模板兼容:JSON Patch、数组/字符串插入删除、命名提示词、按角色过滤的历史数量/区间查询与匹配;支持常用生成/渲染/初始变量装饰器、扫描前只读条件与预加载函数。补丁失败不留部分状态,预加载不直接写剧情,条件与回复处理纳入冻结/回滚集成测试。 - 内置 EJS 提示词模板:支持条件/循环/异步表达式、剧情持久变量、JSON/YAML 初始变量与当前资产读取;模板在 QuickJS/WASM worker 中隔离执行。正常 stop 回复在楼层结束时提交变量和展示快照,刷新不重复写入,分支/回退继承 WAL 语义。详见 `docs/PROMPT_TEMPLATES.md` 的兼容范围。 - 清理空类型占位文件、无调用方的宏/角色卡/HTML 辅助入口及 15 组旧界面双语文案;原有解析与渲染测试改为直接覆盖在用入口。开发命令复用正式插件补丁,移除重复配置。 ## 0.1.9(2026-09-05) 适配 dsh `0.1.2-rc.1`,Node 24。 - 修复正则页保存栏出现黑色横条、空状态和列表间距过大的问题;自定义规则独立分组,按钮继承宿主字体,适配窄屏。 - 补齐交互卡 `getVariables` / `replaceVariables` / `insertOrAssignVariables` / `insertVariables` 兼容,修复卡内预设读写报错。变量只在当前 iframe 内存中保留;提供文本备份和由用户粘贴、校验后重建卡面的恢复入口,不增加主窗口存储桥。 - 卡内切换开场白失败显示错误,连续点击去重;切换会话后隔离旧气泡请求。文档重写时复用原生入口并清理旧高度观察器,避免包装和监听堆积。 - 补齐未保存编辑的浏览器刷新/关闭保护、页签与内容区的无障碍关联、空白会话绑定加载失败的重试入口。 - 修复 Vue 模板交互卡白屏:仅在无同源权限的 iframe 内允许动态编译,保留网络白名单与窄桥校验。 - 开场白写入后同步宿主会话列表,重复进入按实际日志识别成功;已开始会话不再因 blank 滞后清除绑定。会话切换隔离选择器的异步状态。 - 新会话角色选择增加头像、搜索、最近使用与导入/创建入口;最近使用仅保留在本次应用运行期间。 - 插件管理页切换、角色/预设/人设编辑器关闭增加未保存确认,保存失败保留草稿;角色编辑使用固定底部保存区,多行备选开场白独立编辑。编辑草稿自动存入数据目录,同标签页刷新与重开编辑器恢复正文及角色/剧情上下文,成功保存或明确放弃后清除。 - 对话角色面板可直接打开当前剧情的记忆管理;区分剧情状态与新会话初始状态,记忆删除增加确认。 - 按插件容器宽度适配表单、导航和卡片,增加触屏点击区域及页签键盘导航。手机上的 Tavern 设置外壳使用横向顶部导航,弹窗正文滚动并保留底部操作,聊天正文扩展到可用宽度。 - 修复自动清理空会话与开场白写入的竞态,已开始的会话不会误解绑;请求缓存挂起后重试可重新发起请求,过期响应不会覆盖新结果。 - 增加真实 React 配模拟 remote 的交互回归测试;运行依赖不变。 ## 0.1.8(2026-09-05) 适配 dsh `0.1.2-rc.1`,Node 24。 - 剧情状态按会话隔离;分支先复制后回滚,保留原会话。旧共享数据幂等迁移并保留原目录,已混合的旧事实需人工核对。 - 编辑 AI 正文撤销该层旧派生事实;WAL 整批预检与持久化恢复游标,拒绝越过后继依赖回滚。 - 自动摘要要求完整成功终止,失败按轮去重重试;检索覆盖活跃摘要的归档来源。 - standing 与模拟历史预算分离,同轮冻结完整计划;尊重常驻 WI 的概率、分组与定时条件。 - 第三方正则/WI/组装放入有时间、内存和队列上限的 worker;失败明确报告。 - 提示词预览区分实际宿主请求与 ST 模拟;新正则默认使用 live 有效的 output/render。 - 卡片完整读改写加锁;RPC 方法集合与请求/结果双向编译检查;客户端使用真实 React 与 primitives 类型。 - 增加分支、故障恢复、worker、流完整性测试,重整 AGENTS 与架构/宿主兼容说明。 ## 0.1.7(2026-09-05) 适配 dsh `0.1.2-rc.1`。 - 修复楼层回退:每次修改先原子保存 WAL 前后镜像,再原子替换正文;保留中途手动编辑,避免后补快照失败导致无法撤销。 - 修复世界状态并发:不同实例的读改写与回退共用工作区锁,回退按条目撤销,保留其他会话及面板新增条目。 - 修复记忆压缩与回退:提交摘要前复核原文;回退时递归展开受影响摘要,再撤销源记忆并重建索引,防止已撤销事实通过摘要残留。 ## 0.1.6(2026-09-04) 适配 dsh `0.1.2-rc.1`。 - 修复(楼层 WAL):同一角色卡多会话并发不再互相污染楼层归属——楼层改为按会话开立(`openFloors` 记 `sessionId → { cardId, floor }`),turn 流程写入走 `WorkspaceFs.withFloor(floor)` 派生实例,共享句柄 floor 恒为 null;生成中途换绑角色卡后写工具按 binding-changed 拒写,不再绕过 WAL。 - 修复(面板写入):设置面板的记忆/世界状态编辑(saveMemory/deleteMemory/compressMemories/addWorldDelta/revokeWorldDelta)全部改走 `plainWorkspace`(floor 恒 null),生成期间的面板修改不再被楼层回退静默撤销;手动压缩记忆改为「先写合并条目、后归档原批次」,合并写失败不再整批丢失。 - 修复(资产 id):世界书/预设/人设文件名净化增加冲突检测——不同显示名净化到同一 id 时自动追加序号后缀,不再静默覆盖;服务层统一使用存储层返回的实际落盘 id。 - 安全(第三方资产):PNG 卡 zTXt/iTXt 解压加输出上限防压缩炸弹,卡文件字节数硬上限;正则规则编译期拒绝超长 pattern 与嵌套量词/交叠分支等灾难性回溯构造;世界书/预设导入加条目数、正文长度、键长度硬限制,字段缺失的畸形数据归一化时即抛错。 - 修复(世界书):inclusion group 落选条目不再参与后续轮次的递归触发。 - 修复(校验):绑定文件读写全量严格校验(`parseSessionBinding`),坏数据不再落盘;remote 入参 schema 在可精确刻画处收紧;setSessionBinding/savePreset/saveRegexRules 改为整体校验,非法载荷拒绝落盘。 - 性能:listCharacters 与 tavern_asset_list 不再无界递归遍历 memory/archive/state/wal;客户端绑定/角色详情/头像 RPC 加会话级去重缓存(in-flight 去重 + 短 TTL),getAvatar 服务端加 stat 指纹缓存。 - 界面:记忆面板及其余子面板的写操作统一走 runAsync 安全外壳——失败 toast 提示、操作中 busy 防连击,不再产生未处理 rejection;交互卡渲染开关优先读会话绑定的 interactiveCards,缺省回落全局设置。 ## 0.1.5(2026-09-03) 适配 dsh `0.1.2-rc.1`。 - 界面:语言设置新增「跟随宿主」档并设为默认——auto 档按宿主界面语言自动切换中/英文(0.1.2 的 LocaleRuntime 快照 + 订阅),仍可在 Tavern 设置页手动锁定中/英。 - 宿主 API 迁移:`Session.events` 数组属性被按需读取 API 取代,楼层定位/前缀切片/开场白判定全量改走 `snapshotEvents()`;fork 元数据从 `header.seedLength` 改为 `meta.isSeeded` + 顶层 `inheritedEventCount`(与官方 `SessionStore.fork` 同形);`resolveSessionPreset` 帮手移除,会话预设判定改走官方 `agentPreset` 会话投影(`sessionPresetId`,投影缺席时手动折叠 header + `agent-preset/selected` 兜底);`settingsNamespace()` 帮手移除(`settings.register` 直接吃字面量);`JsonValue` 改从 `@deepseek-ai/dsh-util-values` 导入。 - 界面修复(0.1.2 破坏点):宿主 `MarkdownText` 的 `labels` 变为必填 prop,缺了渲染代码围栏即崩;对话正文与角色发言条统一经 `useMarkdownLabels()` 传本插件字典(复制/已复制/脚注)。 - 界面修复:「新对话」动作从 `ctx.workspaces.startSession` 迁到 `ctx.uiWorkspace.startSession`;seatWatch 补偿器双路径兜底,无会话 hero 选「Tavern 模式」自动开会话在新宿主上恢复可用。 - 界面修复(0.1.2 破坏点,此前导致选卡英雄区/会话芯片/楼层操作条/assistant 排版全部不显示):会话列表摘要 `SessionSummary` 顶层不再有 `agentPreset` 字段,Tavern 模式判定改读 `projectionValues.agentPreset`(此前恒判为非 Tavern,全部会话面 UI 沉默);`SessionSnapshot.composerPhase` 移除,英雄区「未动过输入框」判定改用 `blank && !promptAttempted`(原相位机的 blank→engaging 边粘性标记)。 - 仓库:`dsh.client.inject` 移除(`dsh-client-runtime` 包已删,client bundle 只 require 宿主 seed 词);client external 清理掉 0.1.2 已不再提供或未引用的三个包。 - 仓库(dev 环境):0.1.2 起 dsh 把大量运行时依赖改写成 peer(`legacy-peer-deps` 不会自动安装),devDependencies 补齐七个宿主内部基础包(`dsh-jobs` / `dsh-session-persistence` / `dsh-session-query` / `dsh-util-time` / `dsh-util-workspace-path` / `dsh-hook-protocol` / `dsh-sdk-protocol`),cordis / cordis-plugin-* / schemastery 跟随宿主升到 4.0.2 / 1.0.2·1.0.7·1.0.3 / 3.18.2(peerDependencies 同步);不补会在宿主 boot 时 `Cannot find package` 失败。 ## 0.1.4(2026-09-03) 适配 dsh `0.1.1-rc.2`。 - 界面:被中断(停止生成)的楼层现在也有操作条——宿主 slot 只对 finalized 消息挂载,中断楼层由 chat.node 侧补挂「兄弟导航 / 重新生成 / 回退」最小组,定位改传 `turn` 而非 messageId(`resolveFloorTurn`;`regenerate` / `rollbackToFloor` / `getFloorSiblings` remote schema 增加可选 `turn`)。 - 界面:设置面板骨架屏加 20s 加载超时,超时转错误态可用「刷新」重试,不再永远停在骨架;会话头芯片与英雄区在绑定加载期间显示骨架占位,不再闪现「选择角色卡」。 - 界面:英雄区选卡下拉条目标注内嵌世界书条数;提示词预览弹窗页签改用分段控件 Tabs;会话绑定弹窗保存栏固定到弹窗 footer(弹窗内容区让出 footer 高度,不再被视口裁切)。 ## 0.1.3(2026-09-02) 适配 dsh `0.1.1-rc.2`。 - 界面:插件前端中英双语。新增设置项 `locale`(默认英文),Tavern 设置页新增「界面 / Interface」子组可切换语言,选择即生效并自动保存,只影响本插件 UI(面板、对话芯片、英雄区、楼层操作条、弹窗与 toast)。全部界面文案迁入按模块分片的字典(`client/locales/`,zh 为键全集源、en 同键齐全),组件经 `useT()` 取文案;新增 `test/i18n.test.ts` 校验 zh/en 键集 parity、片段碰撞与源码键引用。 - 仓库:LICENSE 版权人改为 Amakurai;AGENTS.md 压缩到 32 KB 以内并同步 i18n 约定。 ## 0.1.2(2026-08-30) 适配 dsh `0.1.1-rc.2`。 - 界面:设置面板内分五个子组(默认配置 / 采样与思考 / 世界书引擎 / 记忆 / 卡片与数据),页内第二级 pill 导航 + 分组刻度,每组表单独立 SaveBar 保存;Tavern 品牌层统一 `--tavern-accent-*` 青碧变量(开关开启态、选中底色、图标座)。 - 修复(世界书):sticky 延续条目被 token 预算裁掉后定时器漏清,下一轮免概率回归并无条件占住 inclusion group、饿死同组兄弟;延续期落选现在同样清 stickyLeft(cooldown 保留)。 - 修复(宏):`{{getvar ::x}}`(宏名与 `::` 间带空格)解析失败、原文带双花括号漏进 prompt;命令名判定与 isGetVar 口径对齐。 - 修复(绑定回收):库中有多张同名卡时按名接回可能接错卡(工作区/记忆/WAL 静默串卡);现在仅唯一命中时接回,否则视为未绑定。 - 修复(交互卡):`cardNetworkWhitelist` 条目未校验直接拼进 CSP meta,含引号可截断属性注入;非法条目现在直接丢弃。 - 修复(WAL):生成进行中经面板编辑 journal/卡/世界书会被误记进当前楼层 WAL,回退楼层时把用户编辑静默改回旧值;面板/服务层写路径改走 floor 恒 null 的文件面(`plainFs`)。 - 修复(楼层 fork):祖先 walLineage 的 throughTurn 未按新 seed 截断,跨多代 fork 会把错误的定时器状态复制给子会话;现在 clamp 到实际继承边界,空 seed 丢弃祖先世系。swipeGreeting 补 saveBinding 失败的子会话清理。editUserMessage 拒绝空文本(schema + 代码双重,对齐 editAssistantMessage)。 - 修复(记忆):压缩先归档后落盘,落盘失败丢整批事实且清标记永不重试;改为先落盘后归档,失败可重试、最坏新旧并存不丢事实。记忆 id 同毫秒碰撞会静默覆盖,随机段加长到 6 位 hex。 - 修复(导出):截断 PNG(无 IEND)导出时静默产出废图,现在抛 `CardParseError` 提示。 - 修复(WAL 回放):records.jsonl 单行损坏中断整个多楼层回滚,改为坏行跳过(与 readMeta 容忍标准一致)。 - 修复(工具):`tavern_asset_list` 对损坏的 index.json 无容错、每次必抛;坏文件按 `index: null` 返回。 - 修复(管线):同轮第 2 步起已入日志的用户消息在触发日志/预览里重复;turn/start 时无绑定、中途才绑定的会话每步重评世界书定时器(违反每 turn 只评估一次),现在无绑定也记 turn 号。 - 修复(界面):封面 HTML 内 swipe 按钮的分支跳转漏传标题(分支会话标题不进会话列表);角色选择面板加载与英雄区多处异步操作缺 catch,RPC 失败停在骨架屏/无任何提示。 - CI:lib/ 产物一致性校验拦不住未跟踪的新产物(补 `git status --porcelain`);`npm pack --dry-run` 改为解析 `--json` files 列表断言白名单(裸 dry-run 只打印不失败,无校验效力)。 - 思考:「深度思考」新增「最高」档(DeepSeek 适配器的 `max` effort,模型公布该档时显式指定);设置面板说明补充——「自动」档会落在模型默认档,思考可能很短,要更充分的思考选高/最高。turn playbook 强化「按条查证再动笔」:回复涉及人物关系、地点、规则、既有事件等设定而快照未覆盖时,先用工具查证,不要凭印象编造。 - 测试:新增缓存字节稳定性守卫(`test/pipelineCache.test.ts`,对应 Reasonix 的 cache-guard 思路)——连续两轮 standing 必须逐字节一致、同轮多步快照必须逐字节一致、standing-safe 常驻条目端到端恒定注入、钉位复用/失效行为,防止后续改动把前缀缓存打退化。 - 缓存:standing-safe 常驻世界书条目(constant 且无本轮宏)不再掷概率、恒定注入——钉死机制本就把掷骰冻结成「每会话一次」,而 swipe/重新生成 fork 出的子会话换种子重掷会与父会话 standing 字节漂移、打穿整个 system 前缀缓存;改后 standing 只取决于资产内容,跨会话/跨分支字节确定(`STANDING_PIN_VERSION` 7 → 8,因下方分段标签改变 standing 布局)。同轮宏输入冻结:`{{lastcharmessage}}` 与 journal 文本随 `wiCache` 按 turn 缓存,第 1 步之后 history 增长或 journal 中途编辑不再改变同轮快照字节(宿主去重 100% 生效,附带省掉每步一次 journal 读盘)。触发日志新增 `[standing:pin]` 行观测 standing 钉位命中/重算。 - 提示词:世界书固定 `tokenBudget` 默认 3000 → 8192(仍是绝对上限、优先于百分比),多命中条目不再轻易被裁进 uid 清单等模型补读;世界书与检索记忆段落在 standing/快照里加来源标签(`【世界书·常驻】` / `【世界书·本轮触发】` / `【检索记忆】`),裸文本拼接不再让模型把设定事实当普通叙述滑过(作者注释保持无标签原文)。 - 缓存:提示词组装分流修正——静态深度注入(无本轮宏的预设 in-chat 条目、卡 depth_prompt)不再无条件并入 turn 快照每轮全价重付,改并入 standing 随会话钉死(`STANDING_PIN_VERSION` 6 → 7);触发型 @D 世界书与含本轮宏的注入保持 turn 侧不变。standing/turn 分流改为按消息对象身份追踪,两条展开后同字节的内容不再互相误踢。 - 缓存:多步 turn 的 runtime context 快照零重付——turn playbook 从按步变化的 `formatTurnPlaybook(step)` 改为固定文本 `TURN_PLAYBOOK`,宿主对快照按字节去重,同轮后续步骤不再重复追加(此前每步打飞去重、整份快照逐步全价重付)。「第几步该收口」的压力改由工具执行时注入的 `【Tavern 步骤】` 通知承载(按 `turn:nextStep` 去重,2 步软收口、3 步起强收口)。standing 指纹的设置标记收窄到真正决定 standing 字节的三个键(characterStrategy / useGroupScoring / maxTokens):调 tokenBudget、scanDepth 等 turn 层设置不再白白打穿整段 standing 前缀缓存。组装失败兜底优先穿同卡已钉死的 standing(`peekStanding`),瞬时故障不再回退未绑定文案把 system 前缀打穿成 0%。 - 缓存:turn 层预算收紧,直击 DeepSeek 前缀缓存命中率——runtime context 快照对新请求永远是未缓存前缀,大体量世界书/变化层搭快照通道即每轮全价重付(实测单轮快照可达 ~37k 字符)。世界书固定 `tokenBudget` 默认 0 → 3000 且改为**绝对上限**(不再随历史长度扣减归零),但只计搭快照通道的条目:落 standing 的常驻(constant 且无本轮宏)豁免计费;百分比预算折算基数 clamp 到 128K(1M 窗口模型不再把 25% 放大成 25 万 token);被裁世界书条目不再静默丢弃——快照尾部附 uid 清单(封顶 8 条),模型可经 `tavern_lore_read` 按条补读。变化层按 1500 token 从最新往旧装载(预算只计实际进快照的常驻/已命中条目,未命中的带键变化不占额度),更旧的经 `tavern_lore_read(source=delta)` 补读;触发日志新增 `[turn:tail]` 行可观测每轮尾巴体积。 - 界面:会话绑定弹窗与角色编辑弹窗整体重排——新增 880px 宽弹窗档,字段按「绑定 / 世界书 / 本轮注入」「人设与场景 / 开场白与示例 / 高级注入 / 元数据」装入分区面板卡,主操作行改为「危险操作靠左、主操作靠右」的大号按钮布局,上下文用量改为弱底色信息条;弹窗加载骨架同步为表单形状。 - 界面重构:角色卡列表改为 SillyTavern 式海报卡网格(封面图 / 首字符封面 + 底部渐变名条,悬停放大与抬升、删除钮悬停浮现,整卡可点进编辑);世界书 / 预设 / 人设改为「图标 + 名称 + 实际元信息 + 操作」的瓦片行,去掉每张卡重复的填充说明文案。 - 界面:新会话英雄区开场白改为引用式排版(左竖线、保留换行),角色名旁展示作者 / 版本 / 标签元信息,「开始对话」与开场白切换合并为单行操作区;详情加载期间显示骨架卡(不再误报「该角色没有开场白」),并补上 ← → 切换提示。 - 界面:角色卡详情弹窗按「人设与场景 / 开场白与示例 / 高级注入 / 元数据」分组;会话绑定弹窗按「绑定 / 世界书 / 本轮注入 / 开场白与调试」分组,上下文占用增加细进度条(≥90% 转警示色)。 - 界面:角色卡 / 世界书 / 预设 / 人设列表新增关键词搜索(条目 ≥5 时出现,角色面板可按内嵌书名命中),无结果给出清空入口;设置面板页签在重挂后停留在上次浏览的分区;空态改为圆底图标徽章样式;楼层操作条三组按钮之间加细分隔线。 - 界面:记忆 / 世界状态条目头部改徽标化排版(id、类型、标签、撤销态一目了然,作废与已撤销用警示色徽标、撤销条目整体压暗),新增表单改虚线卡片;正则规则的作用域 / 时机由复选框改为带对勾的多选 chip,来源改徽标;设置页与会话绑定里的「全局世界书」勾选列表改为多选 chip 组;提示词预览弹窗新增「复制当前视图」按钮;世界书编辑器「未保存」改为徽标提示。 - 性能:热路径读盘治理——库资产(预设/世界书/角色卡)解析结果按修订号缓存,`loadBinding` 在卡仍存在时不再全库扫描角色目录,`rulesFor` 对确认无正则的卡直接短路,记忆库目录读取并行化。 - 性能:世界书触发键与正则规则改为按批预编译一次,不再逐条消息 / 逐轮递归重复编译。 - 修复:损坏的预设文件不再打崩组装(回退默认预设);世界状态变化层并发写入经互斥队列串行化且 id 不再依赖行数(回滚后不会复用旧 id 误撤);siblings.json 的登记与剪枝互斥,防并发覆盖。 - 健壮性:楼层 beginFloor 失败后写工具(记忆/世界状态)显式报错可重试,不再静默产生不可回滚的写入;standing 钉位 / 触发日志 / 模型元数据缓存加上限与 TTL,长驻进程不再无界增长。 ## 0.1.1(2026-08-22) 首个记录版本,适配 dsh `0.1.1-rc.2`。 - 角色卡(SillyTavern V1/V2/V3,PNG/JSON)导入导出;多开场白 swipe、卡内嵌世界书、`regex_scripts` 正则脚本、沙箱 iframe 交互卡封面。 - 提示词预设按 Prompt Manager 语义组装,经 dsh system-prompt 瀑布下发:常驻段进 standing(按会话 × 生成场景钉死),每轮变化进 runtime context。 - 世界书全局 / 角色 / 会话三级 + 变化层;常驻条目进 standing,关键词条目按轮检索,模型可经工具按条补读。 - BM25 长期记忆:时间衰减检索、超容量 idle 期异步压缩,配 7 个模型工具供多步 agent 循环按需调用。 - 楼层事务:写入走 WAL 可回滚;重新生成 / 回退 / 编辑 = fork 分支会话续跑,同层分支 ‹ n/m › 导航;另有不改历史的续写与 AI 代答。 - 人设(`{{user}}`)、分组条目、分组拦截顺序等 ST 语义对齐。