Repository navigation
Releases: xibai6668/Android-AI-gateway
Releases · xibai6668/Android-AI-gateway
Release list
v2.12.1
更新内容(v2.9.18 → v2.12.1)
- chore(release): 2.12.1
- fix(ui): 修滚动渐隐黑条与用量页数据重复
- chore(release): 2.12.0
- feat(ui): 用量环形仪表、记录页指标胶囊与折叠动效
- feat(ui): 动效地基——弹簧预设矩阵与滚动渐隐
- docs: 新增第三方来源与致谢清单并补齐代码内来源链接
- chore(release): 2.11.2
- feat(usage): 用量统计补「中断」计数,让请求数对得上
- fix(loomy): chatid 恢复每请求唯一,修 2.11.0 引入的偶发 409
- chore(release): 2.11.1
- fix(ui): 我的页标题不再换行,缓存命中行去掉多余占位符
- chore(release): 2.11.0
- feat(usage): 记录并按提示词缓存命中率展示
- fix(loomy): 会话 id 改按消息前缀派生,不再每请求换缓存桶
- chore(release): 2.10.0
- fix(models,quota,raccoon): 数据来源诚实化与额度中心积分明细
v2.9.18
更新内容(v2.9.12 → v2.9.18)
- chore(release): 2.9.18
- feat(codebuddy): 工具 schema 归一化与工具名双向改写
- chore(release): 2.9.17
- feat(failover): 模型级冷却,修熔断误伤与无谓换号
- fix(gateway,codebuddy,raccoon): 纯图响应误判为空、非 SSE 200 吞错、max_completion_tokens 丢失
- fix(gateway,loomy): 上游中断补终止帧、Loomy 补三个追踪头
- chore(release): 2.9.16
- feat(codebuddy,trae): 企业账号门控、11153、刷新单飞、工具 schema $ref 内联
- chore(release): 2.9.15
- fix(codebuddy,loomy,trae,failover): 修国际版会话头缺失与同账号并发卡死
- fix(loomy,trae,codebuddy): 调研确认的三处协议缺口
- fix(antigravity): 客户端版本动态化并降温 invalid_grant (2.9.14)
- fix(ui): 记录页设置面板不再随标签变化 (2.9.13)
- fix(failover): 开关关闭时不再跨供应商转移 (2.9.13)
v2.9.12
更新内容(v2.7.1 → v2.9.12)
- fix(app): 代码审查确认的 App 侧四处缺陷 (2.9.12)
- fix: 代码审查确认的四处缺陷
- fix(antigravity): claude 通道不再给思考块挂占位签名 (2.9.11)
- fix(probe): 测速探测不再下发 max_tokens (2.9.10)
- fix(codebuddy): 请求体补齐首条 system 等上游硬性要求 (2.9.9)
- fix(perf): 修每请求刷凭证与目录串行拉取 (2.9.8)
- fix(trae): 国际版 agent host 修正并收敛区域端点定义 (2.9.7)
- fix(workbuddy): 国际版模型目录改用 v2 API 路由 (2.9.6)
- fix(region): 修国际版区域判定与鉴权/代理域名 (2.9.5)
- fix(workbuddy): 修正国际版模型接口区域判定 (2.9.4)
- fix(login): 设备授权轮询沿用创建 state 的区域 (2.9.3)
- fix(trae): 区域判定补 apiHost 兜底并统一走 provider (2.9.2)
- fix(gateway): 区域型供应商按区域分别拉取模型目录 (2.9.1)
- refactor(ui): 删除数据管理页并顺延我的页编号 (2.9.0)
- refactor(ui): 排查诊断挪进日志设置 (2.8.0)
- chore(ui): 移除我的页重复的调用记录归档开关 (2.7.3)
- chore: 版本 2.7.2 (versionCode 135)
- fix(app): 悬浮窗改为网关服务启动后显示
- feat: 悬浮窗随启动显示并限制在屏内、账号添加自动领小浣熊奖励、首字延迟优化
- feat(app): 保活页新增可选的悬浮窗保活
- fix(app): 记录页两个标签都可打开日志设置
- fix(gateway): 修复并发许可泄漏与日志细节问题
- fix(logs): 调用记录详情支持查看完整原文
- feat(app): 并发与容错设置页 + 日志系统完善
- feat(core): 新增并发闸门与日志系统设置项
- docs(raccoon): 订正 PATH_GRANT 注释与动作说明,去掉「每日签到」措辞
- fix(raccoon): 签到补桌面端头并如实反馈,新增积分明细 (2.4.2)
- chore(ui): 删除用量统计页重复的最近调用 (2.4.2)
- fix(gateway): 动作前保鲜凭证,修签到因 token 过期失败
v2.7.1
更新内容(v2.4.1 → v2.7.1)
- fix(app): 悬浮窗改为网关服务启动后显示
- feat: 悬浮窗随启动显示并限制在屏内、账号添加自动领小浣熊奖励、首字延迟优化
- feat(app): 保活页新增可选的悬浮窗保活
- fix(app): 记录页两个标签都可打开日志设置
- fix(gateway): 修复并发许可泄漏与日志细节问题
- fix(logs): 调用记录详情支持查看完整原文
- feat(app): 并发与容错设置页 + 日志系统完善
- feat(core): 新增并发闸门与日志系统设置项
- docs(raccoon): 订正 PATH_GRANT 注释与动作说明,去掉「每日签到」措辞
- fix(raccoon): 签到补桌面端头并如实反馈,新增积分明细 (2.4.2)
v2.4.1
更新内容(v2.2.1 → v2.4.1)
修复
- 流式输出「说到一半卡住」:
GatewayHttpServer.streamResponse新增sawDone门禁,上游正常结束(EOF)但未发送data: [DONE]时补一帧,客户端不再收到无结束信号的截断流;SSE 心跳由「每 15 秒无条件发送」改为「静默满 15 秒才发」(检查周期 5 秒,最坏保活间隔约 20 秒),不再掩盖客户端自身的读超时。新增SseStreamTerminationTest(5 例)。 - 模型页折叠分组闪退:折叠状态由
SnapshotStateList套rememberSaveable改为不可变Set。原写法在切后台/进程回收的保存时机与列表快照交叠,抛「Reading a state that was created after the snapshot was taken」。 - 模型测试失败原因看不全:行内仍紧凑显示,点击弹窗查看完整原文(可滚动)。
- 刷新按钮未绕过模型目录缓存:新增
Provider.invalidateModelCache(),modelsStreaming(forceRefresh)在拉取前失效各供应商的目录 TTL 缓存(Antigravity 10 分钟 / Trae 60 分钟 / Loomy 10 分钟),真正重打上游;仍保留最后一次成功结果作失败兜底。 - 远端已下架的模型残留:刷新后清理开放名单中已不存在的勾选(拉不到完整目录的前缀不动);自定义供应商「拉取模型」改为以远端结果为准,保存时移除已下架项并提示数量。
新功能
- WorkBuddy 粘贴凭证 JSON 导入:
CodeBuddyProvider.importCredentials(复用credentialOf链路,兼容 camelCase / snake_case,uid 从 JWT 兜底)。上游只有设备码通道、无回调链接端点,原语义不准的「重新检查授权状态」按钮已移除,设备码登录保留。 - 账号列表统一分页:新增共享组件
PagedAccountList(每页 30,超过才出现翻页控件),五个内置供应商 + 自定义供应商共用同一套代码;Trae / WorkBuddy 按国内 / 国际各自分页。 - 批量操作进度与结果:批量签到 / 批量任务 / 刷新额度改为有界并发,带「已完成 X/N」进度与结构化结果面板(失败账号逐条列出)。
- 模型页按供应商分组可折叠:点击分组头展开/收起该组模型,折叠状态重进页面保持(折叠集合 + 分组头图标与点击 + 折叠时跳过该组模型行)。
结构调整
- 账号状态一账号一 json:状态键由
pool/state/<供应商>.json(内含全部账号)改为pool/state/<供应商>/<账号>.json;旧格式首次读取时惰性迁移(迁一个摘一个、旧文件空则删除、可重复执行、不会回退),并对旧键残留做清理。 GatewayEngine.performActionAll/refreshAllCredits:有界并发 + 结构化结果;动作全部结束后才统一刷额度,去掉「每个账号动作成功后立刻补刷」的逐账号额外请求。
性能
AccountPool:账号状态/凭证落盘移出写锁。原实现持写锁期间执行EncryptedSharedPreferences.commit()(整文件重写 + 加密),一个账号更新额度即阻塞整个账号池读写;现改为按账号串行 I/O,且落盘前重读内存最新值(refreshToken 轮换场景不会写出旧值覆盖新值)。AccountPool.summary(providerId):复用byProvider分片索引,消除providers()的 O(供应商 × 账号) 遍历。GatewayEngine.providerHosts():结果加缓存(原先每次建立连接都重建 Map 并遍历全部供应商)。GatewayEngine批量并发:DEFAULT_BATCH_PARALLELISM3 → 6,MAX_BATCH_PARALLELISM8 → 12(7000 账号量级的批量签到耗时约减半)。RequestLog:拆分「数据锁」与「落盘串行化」,降低并发写入日志时的锁争用。:app:ProviderUiRegistry缓存自定义供应商的CustomUi实例(原先每次重组都new,导致该页永远无法跳过重组);移除StatusChip中目标恒为主题常量的空转动画;模型搜索过滤与首页趋势图数组补remember,避免每帧重算/重建。
重构(行为不变)
- 新增
util/HttpSupport:收敛 6 家 Provider 几乎相同的建连/超时/读体/截断逻辑(Custom / Trae / Loomy / CodeBuddy / Raccoon / Antigravity)。 - 新增
util/Ids:newCompletionId(原 4 处重复)、randomHex(原 3 处重复,共用一个SecureRandom)。 SSE_DONE收敛至StreamSupport;firstString/firstLong/jwtClaim从 CodeBuddy 与 Raccoon 的逐字重复副本提升进util/JsonAccess(保留firstLong的「>0」语义);删除LoomyJson中与JsonAccess逐字相同的取值函数。- 新增
ui/AccountComponents(账号卡外壳 + 标题行 + 启用开关 + 删除胶囊 + 区域滑块),收敛 4 份账号卡片(通用详情页 / Trae / WorkBuddy / 自定义供应商)与 2 份区域滑块。 - 新增
ui/Format.kt,合并HomeScreen与MeScreen中逐字重复的格式化函数;删除无引用的死代码NavRow。 - 重复定义点由 16 处收敛到 4 处。
- 刻意未合并(属协议差异,不能共享):Antigravity 的
postForm(urlencoded + 特殊 Host 头)、各家超时值与 UA/业务头、各家 SSE translator、Credential/toProviderAccount。
v2.2.1
更新内容(v2.2.0 → v2.2.1)
- fix(antigravity): 收敛 OAuth 刷新频率,修登录频繁失效 (2.2.1)
v2.2.0
更新内容(v2.0.0 → v2.2.0)
- feat(models): 模型目录改为按需拉取、取消内置快照,并修掉无意义报错 (2.2.0)
- fix(ui): bouncyClick 缓存最新 onClick,修点击后失效需切页刷新
- feat(models): 新增模型开放名单,勾选的模型才出现在 /v1/models
v2.0.0
更新内容(v1.1.3 → v2.0.0)
- fix(trae): 账号列表按服务区域独立显示(国内/国际各自一套)
- chore: 版本 2.0.0 (versionCode 118)
- fix: 代码审查问题批量修复(数据丢失/风控/并发/熔断/体验)(1.8.0)
- fix(checkin): 批量签到跳过 Trae 国际版 + 文案/按钮对齐 (1.7.1)
- refactor(ui): WorkBuddy 登录区合并为 Trae 同款单卡片 (1.7.0)
- feat(trae): 登录入口加国内/国际分段滑块 (1.6.0)
- fix(raccoon): 模型目录改为递归查找数组,不再依赖固定键名 (1.5.3)
- fix(raccoon): 内置模型快照补齐 5 个真实 model id + 目录拉取更宽容 (1.5.2)
- fix(raccoon): 请求体用标准 max_tokens + 模型测试错误截断 (1.5.1)
- feat: 同步 fork 分支优化(Trae 区域化/Loomy 国家码/CodeBuddy 成长中心/区域前缀路由)(1.5.0)
- feat(ui): 模型测试显示真实失败原因 + 探针记失败日志 (1.4.2)
- fix(raccoon): 对话/模型改用 v2 端点(v1 的 model_catalog 是 404) (1.4.1)
- fix(raccoon): 修复网页登录回不来 + 新增签到领积分 (1.4.0)
- feat(raccoon): 切换到 web 通道并接入积分余额 (1.3.0)
- fix(raccoon): 强制上游流式 + 兼容未包裹响应,修复测速超时 (1.2.1)
- feat(raccoon): 接入商汤小浣熊供应商 (1.2.0)
- fix(ui): 移除色彩风格页重复的动态取色设置项;版本 1.1.6 (103)
- perf(ui,core): 动画绘制细节优化与冷启动异步预载
- perf(ui): 消除主线程加密写盘与无效重组,提升点击响应与流畅度
- chore(build): 本地只出 debug 包,release 改为云端手动触发发版