v2.1.1 版本主要改动
多设备同步
- 将同步协议全面从http为基础的v1协议换到了tls加密的v2协议,数据更安全。因为苹果政策之前会被阻断的iOS端现在也可以正常进行局域网同步了
- 大幅优化了传输速度,采用Zstd+bundle传输替代了之前的per-file,实测局域网互传可达30MB+/s
- 新增了
同步内容自主可选,可以自己指定只同步哪些内容。 - 新增了
自动同步功能,可按照指定的间隔时间自动上传到特定设备。 - 新增了同步功能端口可以随App启动一同打开,不用再单独开启
Agent系统
- 新增
Agent 接力,允许多个不同的 Agent 串行接力进行撰写- 对应的 Agent Profil e面板/运行时间线面板已更新,支持显示 Agent 接力状态
- 新增
Agent运行引导,在 Agent 运行时可以输入内容并点击发送,输入内容会作为引导消息指引 Agent 下一步的操作 - 宽容 Agent Profile 中指定的预设/模型未找到的情况,不再阻塞面板启动
- 现在未找到时会提示进行修正
- Agent Profile 中指定的预设更名时,对应的 Agent Profile 中字段会同步更名
- Agent 持久化状态的删除更加宽容,避免出现删除范围扩大的情况
- 在Agent扩展面板中添加了输入框内 Agent 按钮的隐藏/启用开关
- 现在 Agent 在工作中的独白会出现在 Agent 运行面板中
- Agent 运行面板现在在移动端可以通过左右滑动切换时间线/详情页面
Agent 历史运行管理
- 在Agent System面板添加了
运行历史查看,可以回顾之前的Agent运行事件 - 添加了对过往Agent运行记录的扫描与清理
- 添加了对过往Agent运行记录的自动清理开关
功能改进
- 规范化 OpenRouter 推理强度,感谢@yhny1001
- 对支持的模型添加
xhigh推理强度,不支持的会自动回落到high - 添加了GLM-5.2模型相应支持
- Linux 下为 AppImage 捆绑必要的 GStreamer 媒体插件
- Linux 下默认默认禁用 WebKitGTK DMA-BUF 渲染器,提高对 nVidia 显卡的兼容性
- 改进 Linux 桌面软件包元数据和媒体依赖项
- 将 Agent 内嵌资源扫描与角色导入解耦,防止出现导入不稳定
- 为输入框内的长消息添加了
全屏编辑器,编辑体验更加舒适 - 调整输入栏全屏按钮的样式,与大多数主题美化兼容
- 酒馆助手与小白X启用时,自带的代码渲染扩展自动进行避让
- 优化了导入大文件时的内存占用
- 遇到网络波动时,显示具体的连接错误信息,代替模糊的error sending request for url
- 基于Vue3重构了TauriTavern设置面板,便于后续扩展
- 将上游1.18.0版本新增的字符串全部做了简体中文/繁体中文翻译
- 添加了
动态切换壁纸功能,现在可以根据设备的日/夜模式自动切换指定的壁纸了 - 为日志与同步面板新增了快捷slash command命令
/syncpanel与/lansync可打开同步面板/frontendlog与/consolelog可打开前端日志面板/backendlog可打开后端日志面板/llmlog可打开LLM API 日志面板
Bug修复
- 容忍部分扩展传入的 custom_* 请求体作为原生 JSON 对象注入的行为
- 修复
减少动态效果打开时,部分弹窗的抽搐行为 - 对Skill的导入行为更加宽容,不会让损坏的Skill阻塞整个流程
- 修复极小概率下上游 PromptManager 会在 settings.json 中写入 null 值,从而炸掉启动流程的问题
- 重构了 Android 文件导出桥,不会再保存到应用内部数据目录了
- 移除了对角色文件名的不必要清理
- 修复了保存的模型 API 密钥发生更新后,对应的 Agent 运行时使用的密钥不会及时更新的问题
- 修复了新建角色时,导入头像失败会卡住整个流程的问题
- 修复了部分第三方扩展的弹窗在移动端进行键盘输入时会抽搐的问题
- 修复了之前世界书改名不允许开头空格的问题
- 修复了切换分片加载与全量加载时容易错误写入聊天记录导致之前的聊天记录丢失情况的问题,感谢@1756141021
- 修复了分片加载下
/hide命令无法隐藏不在分片内的楼层的问题,感谢@1756141021
开发
- 将前端打包从Webpack迁移至Rspack
- 将Arm64 APK命名改为 Arm64-v8a ,符合标准ABI命名规范
下个版本会有什么
- 前端内存管理重构,尝试在全量加载的同时保持可控的性能消耗
- 备份管理系统重构,可控且节省空间
- 停下脚步,清理一些技术债
- 更新README/文档/GitHub贡献指南等
v2.1.1 Release Notes
Multi-Device Sync
- The sync protocol has been upgraded from the HTTP-based v1 protocol to the TLS-encrypted v2 protocol, improving data security. LAN sync on iOS now works normally as well, where it was previously affected by Apple platform policies.
- Transfer speed has been significantly improved. Zstd-compressed bundled transfers now replace the previous per-file transfer approach, reaching over 30 MB/s in LAN testing.
- Added selectable sync content, allowing users to choose exactly which data should be synced.
- Added automatic sync, allowing uploads to a selected device at a configured interval.
- The sync service port can now be opened automatically when the app starts.
Agent System
- Added
Agent Handoff, allowing multiple different Agents to write in sequence.- The Agent Profile panel and Run Timeline panel have been updated to show handoff status.
- Added
in-run Agent guidance. While an Agent is running, users can enter guidance and send it to steer the Agent’s next steps. - Agent Profiles are now more tolerant when a configured preset or model cannot be found, and no longer block the panel from opening.
- A correction prompt is now shown when this happens.
- When a preset referenced by an Agent Profile is renamed, the corresponding Agent Profile field is now updated as well.
- Deleting persisted Agent state is now more tolerant and avoids unintentionally broad deletion scopes.
- Added a toggle in the Agent extension panel to show or hide the Agent button inside the input box.
- Agent narration during work is now shown in the Agent run panel.
- On mobile, the Agent run panel now supports swiping left and right to switch between the timeline and detail views.
Agent Run History
- Added Run History to the Agent System panel, allowing previous Agent run events to be reviewed.
- Added scanning and cleanup for past Agent run records.
- Added an automatic cleanup toggle for old Agent run records.
Improvements
- Normalized OpenRouter reasoning effort handling. Thanks to @yhny1001.
- Added
xhighreasoning effort for supported models. Unsupported models automatically fall back tohigh. - Added support for GLM-5.2 models.
- Bundled the required GStreamer media plugins for AppImage builds on Linux.
- Disabled the WebKitGTK DMA-BUF renderer by default on Linux to improve NVIDIA GPU compatibility.
- Improved Linux desktop package metadata and media dependencies.
- Decoupled Agent embedded asset scanning from character import to improve import stability.
- Added a full-screen editor for long messages in the input box.
- Adjusted the style of the input bar full-screen button for better compatibility with most custom themes.
- The built-in code rendering extension now automatically yields when JS-Slash-Runner or LittleWhiteBox is enabled.
- Optimized memory usage when importing large files.
- When network instability occurs, specific connection errors are now displayed instead of the vague
error sending request for url. - Refactored the TauriTavern settings panel with Vue 3 to make future expansion easier.
- Added Simplified Chinese and Traditional Chinese translations for all new upstream strings from version 1.18.0.
- Added dynamic wallpaper switching, allowing wallpapers to change automatically according to the device’s day/night mode.
- Added slash commands for opening the log and sync panels:
/syncpaneland/lansyncopen the sync panel./frontendlogand/consolelogopen the frontend log panel./backendlogopens the backend log panel./llmlogopens the LLM API log panel.
Bug Fixes
- Tolerated cases where some extensions inject
custom_*request bodies as native JSON objects. - Fixed jitter in some popups when reduced motion is enabled.
- Made Skill import more tolerant, so a damaged Skill no longer blocks the entire flow.
- Fixed a very rare issue where upstream PromptManager could write
nullvalues intosettings.jsonand break startup. - Refactored the Android file export bridge so files are no longer saved into the app’s internal data directory.
- Removed unnecessary sanitization of character file names.
- Fixed an issue where updated saved model API keys were not picked up promptly by Agent runs.
- Fixed an issue where character creation could get stuck if avatar import failed.
- Fixed keyboard-related jitter in some third-party extension popups on mobile.
- Fixed an issue where world book renaming did not allow leading spaces.
- Fixed an issue where switching between windowed loading and full loading could incorrectly write chat records and cause previous chat history to be lost. Thanks to @1756141021.
- Fixed an issue where the
/hidecommand could not hide messages outside the currently loaded windowed slice. Thanks to @1756141021.
Development
- Migrated the frontend build system from Webpack to Rspack.
- Renamed Arm64 APK builds to
arm64-v8a, matching the standard ABI naming convention.
What’s Next
- Refactor frontend memory management to keep memory usage under control while supporting full loading.
- Refactor backup management for better control and storage efficiency.
- Take time to clean up technical debt.
- Update the README, documentation, GitHub contribution guide, and related project materials.
What's Changed
- fix(chat): accept object/array custom_* override fields by @yhny1001 in #79
- Fixing Linux experience-related issues by @Darkatse in #81
- fix(ci): use pnpm 10 for prerelease builds by @Darkatse in #83
- fix(chat): normalize OpenRouter reasoning effort by @yhny1001 in #85
- fix: prevent data loss when saving with stale cursor from mode switch by @1756141021 in #90
- feat: add /hide all and /hide before for windowed chats by @1756141021 in #91
- i18n: localize /hide all and /hide before strings in 16 locales by @1756141021 in #92
- fix: add input validation for tauri bridge interface by @MatrixNeoKozak in #95
- Bump version to 2.1.1 by @Darkatse in #98
New Contributors
- @1756141021 made their first contribution in #90
- @MatrixNeoKozak made their first contribution in #95
Full Changelog: v2.1.0...v2.1.1