Skip to content

DSH Tavern v2.4:存档重构与超长对话性能优化

Latest

Choose a tag to compare

@flizzywine flizzywine released this 28 Sep 13:19
· 222 commits to main since this release

DSH Tavern v2.4 变更记录

这一版的重点,是让游戏能够长久玩下去。

围绕数千轮乃至万轮规模的游玩,v2.4 重构了存档的数据结构,并系统优化变量更新、历史展示和候选项生成的等待时间。随着剧情增长,常用操作尽量只处理当前轮次和实际发生的变化,减少反复读取、复制和保存整份历史的开销。

存档重构:当前状态与历史分页存储

  • 新游戏使用新的分页存档结构,将当前状态、历史消息和运行时数据分开保存。读取最近几轮或更新某条消息时,可以直接访问相关数据,无需先加载整份存档。
  • 变量和消息按变化增量保存,复用未变化的历史数据;后台任务进度等小更新不再反复重写全部聊天记录。
  • 为历史消息、变量回执、场景图片等建立索引,减少长档中的全历史扫描。
  • 提交保留版本校验、冲突检查与原子切换,避免后台迟到的结算覆盖新的剧情状态。
  • 酒馆状态增加“迁移旧存档”入口。旧档可显式迁移到新结构,完整读回校验通过后才切换;迁移保留原文件和迁移前的历史版本,不增加剧情轮次。

变量更新:只处理变化的部分

  • MVU 结算在独立草稿中执行,按需读取涉及的历史楼层,提交时应用本次变量变更。
  • 后台与前台增量同步消息、变量和结算回执,减少整份上下文的复制与传输。
  • 界面优先更新受影响的轮次和面板,避免一处变量变化带动全部历史重新计算。
  • 优化结算检查点、重试输入、回退状态和模板历史读取,降低长档继续游玩的额外开销。
  • 修复官方 MVU 的临时解析标记被误判为跨对话全局写入、导致变量结算失败的问题。

候选项生成:减少点击前后的等待

  • 当前轮次结算和显示模板同步完成后,提前准备候选任务所需的世界书模板结果;点击生成时可复用已经准备好的结果。
  • 正文、变量、回退、模型或相关设置发生变化时,使准备结果失效,避免使用过期上下文。
  • 精简候选任务的读取、持久化和提交路径,减少为一个候选任务加载完整人物卡、脚本、图片与历史的情况。
  • 优化候选结果的发布与前台同步,减少后台完成后界面仍在等待的时间。

这些改动优化的是模型生成前后的系统开销;模型本身的生成速度仍取决于所选模型、上下文和网络。

长对话打开与显示

  • 打开对话时延后加载完整人物卡和世界书,避免大卡拖慢首屏。
  • 历史采用窗口读取和增量展示,复用未变化的正文、状态栏与变量回执。
  • 优化冷启动时的宿主历史重放,减少随着历史增长出现的重复复制。
  • Helper 的历史数据按需读取,隐藏的模板格式化 DOM 使用有限窗口;完整聊天数据仍可通过历史接口访问。

人物卡与开场向导兼容

  • 支持旧版 TavernHelper 包装脚本格式,修复脚本列表、自检配置和重启后开场脚本恢复问题。
  • 卡内额外模型请求接入本局后台模型,减少重复配置连接信息的操作。
  • 补全开场向导的草稿保存、正文更新和发送接口,完成向导后可进入正式游戏并发送开场消息。
  • 开场消息发送前替换 {{user}}、{{char}} 等身份宏。
  • 修复开场 Markdown、美化片段与共享样式的显示问题。
  • 开场预览随内容伸缩,最多使用完整窗口高度;空间不足时自动折叠顶部称呼设置,也可手动展开。修复长页切回短页后残留空白、首次加载大占位闪烁及底部操作栏遮挡。
  • 修复人物卡浮层遮挡原生导航、子代理切换菜单,以及切到后台子代理后卡片浮层仍残留的问题。

更新与旧档说明

  • 新局默认使用新存档结构;旧局不会在启动时自动批量迁移,可从酒馆状态中选择迁移。
  • 迁移后的新进度保存在新结构中,保留的旧文件不包含后续进度,不可直接拿来当作最新存档降级使用,也不要提前删除。
  • 自定义脚本若直接遍历隐藏聊天 DOM,应改为通过聊天历史接口读取远处楼层,避免依赖全部历史节点常驻页面。
  • DSH 核心仍固定为 0.1.5-rc.2。更新后重启服务并刷新页面。
  • 安装与更新统一通过 GitHub 分发,npm 安装与发布渠道已退役。
  • 修复 Android 归档安装流程,并改善 Windows 下载失败后的重试与回退。

验证范围

本版以万轮规模为优化目标,并使用万轮合成历史定位性能瓶颈、验证部分增量路径;这不等于所有复杂人物卡的万轮完整游玩都已通过性能验收。首次迁移、完整导出、旧历史补处理等操作仍需处理相应规模的数据。

已有验证包括分页存储与迁移回归、迁移后继续游玩与重启恢复,以及真实人物卡的候选生成、正文重生成和回退。真实候选测试确认点击时可以复用提前准备的模板,但整条请求链路仍有约秒级开销,不承诺所有场景都在几百毫秒内启动。发布前全量回归:3,268 项通过、0 项失败、13 项跳过;客户端构建产物与插件打包一致性检查通过。跨平台安装结果以 GitHub Actions 为准。

完整提交清单 · 存档迁移验证 · 候选项延迟验证 · 安装与更新说明

Windows 安装包(2026-10-01 补充)

新增 DSH-Tavern-Desktop-2.0.13-x64-Setup5.exe(SHA-256 cdb14589aff5bb63706010bd8a1e7de010ef52ae81206231c403f4ca02c28d01),由 GitHub Actions 从上游 DSH Desktop 2.0.13 构建并通过联网安装全流程测试:修复网络慢或只开系统代理时安装报 The operation was aborted due to timeout;不再额外下载 Node,改用 Desktop 自带 pnpm;自动使用 Windows 系统代理;出错时提示具体失败步骤;修复英文系统下中文路径无法创建快捷方式。