Releases: yannicksong0106/tavern-android
Releases · yannicksong0106/tavern-android
Release list
v1.2.9
v1.2.8
酒馆 AI v1.2.8
安全收敛 + 多语言 + 聊天分支 + 自动摘要 + Web Search + VN 模式
更新内容
Phase S: 安全收敛
- TLS 证书固定
- Coil key 补全
- CE rethrow 全量审计
Phase O3: 多语言支持
- 中/英/日/韩 四语言完整支持
- 语言切换 UI
Phase P: 聊天分支系统
- 分支创建与切换
- 书签导航
- BranchEntity CRUD
Phase Q: 三级预设系统
- Global/Character/Chat 三级预设
- Handlebars 模板引擎
Phase R: 自动摘要系统
- 长对话自动压缩
- 摘要注入 Prompt
Phase T: Web Search
- DuckDuckGo/Bing/Google 搜索引擎集成
Phase U: 群聊调度增强
- 自然/列表/轮询三种策略
Phase V: Visual Novel 模式
- 立绘系统
- 表情映射
- BGM 播放
- 转场动画
Bug 修复
- 修复 CropImage 裁剪头像时确认按钮不可见的问题
日常:炸鸡太好吃了 🍗
v1.2.75 — 三级预设 + 分支增强 + LaTeX + 安全修复
v1.2.75 (2026-05-26)
新特性
- 三级预设系统:Chat > Character > Global 非空字段覆盖合并,预设 UI 新增 scope 筛选 Tab
- SendMessageUseCase 拆分:3 个 UseCase + MessageExecutionHelper
- 聊天分支/书签增强:BranchEntity CRUD + createBranchFromMessage
- LaTeX 渲染:JLatexMathPlugin(
$...$行内 /$$...$$块级) - DB v21:BranchEntity 表 + PresetEntity.scope + presetId 字段
安全修复
- A1: TtsHelper 协程泄漏修复 — shutdown() 时取消 scope
- A2: 13 处 suspend catch 块补 CancellationException rethrow
- A3: allowBackup=false 防止加密数据被系统备份泄露
其他
- README 全面更新
- 关于页版本号同步
安装
下载下方 app-release.apk,允许安装未知来源应用即可。
基于 debug keystore 签名,仅供测试使用。
v1.2.7 — 升级稳定性保障
v1.2.7 (2026-05-24)
主要变更
- 数据库迁移失败时自动删除重建,防止升级安装闪退
- 新增 3 个数据库索引:chats.updated_at、memory_atoms 排序、world_book_entries 活跃状态
- 16 处 catch 块补 Log.w 日志输出
- 提取 PROACTIVE_TRIGGER_DELAY_MS 常量
升级说明
旧版本可直接覆盖安装。如遇数据库迁移问题会自动重建(数据会丢失)。
APK
- app-release.apk (正式版)
v1.2.2 - 交互体验全面优化
✨ 新功能
- 消息操作栏 — 点击消息气泡弹出浮动操作栏,包含复制/编辑/重新生成/朗读/置顶/删除按钮,带动画效果
- 头像裁剪 — 编辑角色头像时支持圆形裁剪,自动 1:1 比例
🔧 优化
- 群聊回复概率 — 根据角色健谈度(50%~100%)决定是否回复,不再每次全员回复
- 消息间隔自然化 — 根据消息长度动态调整回复间隔(600ms~2800ms),模拟真人打字节奏
- Material You 动态主题 — 已验证完善,支持 Android 12+ 壁纸取色
📦 依赖
- 新增
com.vanniktech:android-image-cropper:4.7.0用于头像裁剪
Full Changelog: v1.2.1...v1.2.2
v1.2.1 — 稳定性修复 + 代码清理 + 测试全覆盖
v1.2.1 (2026-05-22)
⚠️ 测试版,debug 签名,请勿用于生产环境。
修复
- 修复 API 流式请求资源泄漏(OkHttp Response 未关闭)
- 修复世界书递归匹配逻辑错误
- Gemini API 使用 systemInstruction 字段传递系统提示
- TTS 关闭时正确清理状态
改进
- 群聊支持 Author's Note 注入
- 数据库性能优化:消息查询新增复合索引
- API 指数退避重试(最多 3 次,4xx 不重试)
- 移除长按菜单及未使用的分支操作代码
测试
- 测试从 31 扩充到 178 个(16 个测试套件)
- ProGuard 规则补充(WorkManager + DataStore)
📱 下载: app-release.apk (2.9 MB)
🔧 签名: debug keystore
📦 versionCode: 13 | versionName: 1.2.1
v1.2.0 — 全量数据备份/恢复 + 消息引用回复
新功能
- 全量数据备份/恢复 — 一键导出/导入全部数据(角色、对话、消息、记忆、世界书、脚本、预设),支持分享备份文件
- 消息引用回复 — 长按消息选择"引用回复",输入框显示引用摘要,发送后展示引用卡片
- 消息置顶 — 长按消息可置顶/取消置顶,支持查看所有置顶消息
- 从此处删除 — 长按消息选择"从此处删除",批量删除该消息及之后的所有消息
- 开发日志页面 — 点击"关于"查看 v1.0.0-beta1 到 v1.2.0 共 10 个版本的更新历史和生活记录
性能优化
- 聊天列表使用 JOIN 查询,消除 N+1 性能问题
- API 配置输入框修复光标卡顿问题
- 清除缓存按钮添加状态反馈和 Toast 提示
- 长按操作添加触觉反馈
技术变更
- 数据库版本 12→13(新增 reply_to_id)→ 14(新增 is_pinned)
- 新增 BackupData 模型和 BackupManager
- 新增 DevLogScreen 开发日志页面
- 新增 ChatWithLastMessage 优化查询
版本: v1.2.0 (versionCode=14)
最低 Android: 8.0 (API 26)
目标 Android: 14 (API 34)
v1.0.7
v1.0.7 — 全局后台主动对话
新功能
- 后台主动对话: 应用在后台时,角色也会主动发言、群聊自发互动
- WorkManager 调度: 每 15 分钟轻量级后台触发,系统自动管理电池优化
- 设置开关: 设置页面新增"后台主动对话"Switch,一键开启/关闭
- 单聊/群聊分离: 后台逻辑复用现有健谈度概率和角色加权选择
技术实现
- WorkManager PeriodicWorkRequest + HiltWorker 注入
- ProactiveWorkScheduler 调度管理器
- BackgroundProactiveWorker 独立后台 Worker
- 逻辑完全隔离,不影响前台手动聊天
修改文件 (13 个)
- 新增:
worker/BackgroundProactiveWorker.kt,worker/ProactiveWorkScheduler.kt - 修改: TavernApp, AppModule, SettingsStore, SettingsViewModel, SettingsScreen, ChatDao, AndroidManifest, strings.xml, build.gradle.kts, libs.versions.toml
注意: 这是正式版,使用 debug keystore 签名。
v1.0.6 — 健谈度调整 + 思维链模型修复
v1.0.6 正式版
新增功能
- 聊天界面健谈度调整 — 顶栏新增设置按钮(齿轮图标),打开健谈度调整面板
- 单聊:角色健谈度 Slider(0-100,5 档:沉默寡言/较为安静/正常交流/比较健谈/非常健谈)
- 群聊:群聊整体健谈度 + 每个角色独立健谈度,分开控制
- 健谈度持久化 — 调整后自动保存到数据库,重启不丢失
Bug 修复
- 修复思维链模型返回大量 null 字符串 — DeepSeek V4 Pro / Qwen 3.6 Plus 等 thinking 模型不再出现重复 null
- reasoning_content 传回 — 思维链内容自动传回 API,避免 400 报错
技术改动
- ChatDao / ChatCharacterDao 新增 chattiness 更新方法
- ChatViewModel 新增 chattiness 状态管理
- ChatScreen 新增 ChattinessSheet(ModalBottomSheet)
- ChatApiService null 解析修复 + reasoning_content 收集
- 8 个文件,230+ 行新增
🤖 Generated with Claude Code
v1.0.5 — 测试版:修复思维链模型 null bug
测试版 v1.0.5
修复内容
- 修复思维链模型返回大量 null 字符串 — DeepSeek V4 Pro / Qwen 3.6 Plus 等 thinking 模型的 SSE 流中,thinking 阶段
delta.content为 JSON null,之前用optString会返回字面量"null"导致大量重复 null 累积 - reasoning_content 传回 — 收集思维链内容并在下次请求时传回给 API,避免 400 报错
修改文件
ChatApiService.kt— null 解析修复 + reasoning_content 收集 + ChatMessage 扩展ChatViewModel.kt— 所有 7 个 streamChat 调用点适配
测试建议
用 DeepSeek V4 Pro 或 Qwen 3.6 Plus 连接测试,确认不再出现 null 字符串,多轮对话正常。
🤖 Generated with Claude Code