Skip to content

Releases: yannicksong0106/tavern-android

v1.2.9

Choose a tag to compare

@yannicksong0106 yannicksong0106 released this 06 Jun 12:35

Release v1.2.9

  • Fix OpenAI-compatible SSE stream parsing for empty choices chunks.
  • Fix app language switching by using the AppCompat locale path.
  • Bump Android versionName to 1.2.9 and versionCode to 22.

v1.2.8

Choose a tag to compare

@yannicksong0106 yannicksong0106 released this 28 May 17:31

酒馆 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 + 安全修复

Choose a tag to compare

@yannicksong0106 yannicksong0106 released this 26 May 14:19

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 — 升级稳定性保障

Choose a tag to compare

@yannicksong0106 yannicksong0106 released this 24 May 09:40

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 - 交互体验全面优化

Choose a tag to compare

@yannicksong0106 yannicksong0106 released this 22 May 05:45

✨ 新功能

  • 消息操作栏 — 点击消息气泡弹出浮动操作栏,包含复制/编辑/重新生成/朗读/置顶/删除按钮,带动画效果
  • 头像裁剪 — 编辑角色头像时支持圆形裁剪,自动 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 — 稳定性修复 + 代码清理 + 测试全覆盖

Choose a tag to compare

@yannicksong0106 yannicksong0106 released this 22 May 04:30

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 — 全量数据备份/恢复 + 消息引用回复

Choose a tag to compare

@yannicksong0106 yannicksong0106 released this 20 May 13:52

新功能

  • 全量数据备份/恢复 — 一键导出/导入全部数据(角色、对话、消息、记忆、世界书、脚本、预设),支持分享备份文件
  • 消息引用回复 — 长按消息选择"引用回复",输入框显示引用摘要,发送后展示引用卡片
  • 消息置顶 — 长按消息可置顶/取消置顶,支持查看所有置顶消息
  • 从此处删除 — 长按消息选择"从此处删除",批量删除该消息及之后的所有消息
  • 开发日志页面 — 点击"关于"查看 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

Choose a tag to compare

@yannicksong0106 yannicksong0106 released this 19 May 11:04

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 — 健谈度调整 + 思维链模型修复

Choose a tag to compare

@yannicksong0106 yannicksong0106 released this 19 May 10:33

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+ 行新增

⚠️ debug 签名,仅供测试体验
🤖 Generated with Claude Code

v1.0.5 — 测试版:修复思维链模型 null bug

Choose a tag to compare

@yannicksong0106 yannicksong0106 released this 19 May 09:12

测试版 v1.0.5

⚠️ 这是测试版本,非正式发布。debug 签名。

修复内容

  • 修复思维链模型返回大量 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