Releases: ONEGAYI/QuotaTray
Release list
v0.7.0
[0.7.0] - 2026-08-28
本版本交付 Windows x64 便携版(解压即用、数据全部随身于 Data/ 目录)与双端「清空全部数据」功能,并在 README 立起三种数据形态的保密级别全局对照;发布资产自此由一键脚本产出(NSIS 安装包 + 便携 zip)。
新功能
Windows 便携版 x64(core / quota-cli / quota-desktop)
- zip 解压到任意可写目录即可运行:配置、查询历史与便携主密钥全部保留在旁的
Data/目录,不写注册表、无系统残留,删除目录即完成卸载;包内含 GUI(QuotaTray.exe)与 CLI(quota.exe),共用同一份数据(#56) - 首次运行展示安全确认页:正文为两行核心警示(目录等同明文凭据、泄露需轮换全部 API Key),完整固定安全提示收进问号图标点击展开(含粗体与代码样式渲染),确认按钮 5 秒倒数解锁防误触;取消则不写入任何敏感文件并退出(#56)
- CLI 新增
--portable参数并自动检测 exe 旁portable.marker(与--config互斥);便携首启同样要求交互确认,非交互环境未初始化时确定性失败并给出初始化指引(#56) - 更新检测按运行形态精确匹配资产:安装版只找 setup 安装包、便携版只找 portable zip(完整文件名相等匹配,不跨架构、跨形态回退);便携形态下载更新包后引导退出解压覆盖,不自动安装;设置页为便携形态时禁用开机自启(避免拔盘后残留无效启动项)(#56)
- 同机安装版与便携版互斥运行(GUI 二次启动自动聚焦现有窗口并给出提示);
quota vault status兼容检查文件密钥后端的健康状态(#56)
清空全部用户数据(quota-cli / quota-desktop)
- 一键删除全部供应商条目、加密凭据密文、峰谷定价与自定义模型库、查询历史与余额快照缓存,保留应用偏好(settings)与主密钥——转让设备、排障重来的就地清理手段(#56)
- GUI 入口位于「设置 → 数据管理」:二级确认弹窗 5 秒倒数解锁,执行期间弹窗完全锁定;清空后主界面、托盘圆环与悬停面板即时进入空态(#56)
- CLI 为
quota clear:交互确认默认否,--yes跳过;非交互会话未显式--yes时确定性拒绝(退出码 1)(#56)
其他
其他改进
- 发布资产一键打包:仓库根
package.cmd产出 NSIS 安装包与便携 zip,含版本单源解析、包内 GUI/CLI 的 PE 架构断言与中英双份包内说明(固定安全提示与 README 逐字一致,契约测试锁定)(#56) - README(中英)新增三种数据形态(安装版/便携版/迁移包)的保密级别全局对照表,补充清空配置的安全语义(不构成安全擦除承诺);修正设置入口名称为「数据管理」(#56)
⚠️ 便携版安全提示:便携版会将用于解密凭据的主密钥保存在Data/portable.key。虽然配置中的凭据仍以 AES-GCM 密文存储,但密钥与密文位于同一便携目录,因此整个Data/目录的保密级别等同明文凭据。请勿将其上传网盘、提交版本库或交给他人;若存储介质遗失或目录泄露,请立即轮换其中使用的全部 API Key。
v0.6.1
本补丁版本主体交付供应商卡片拖拽排序,主窗卡片列表可拖动换位并同步托盘图标与 CLI 列表顺序;同时修复硅基流动国内站接口停服的报错语义、使用统计悬停卡片遮挡曲线等问题。
新功能
供应商卡片拖拽排序(quota-desktop)
- 卡片左缘竖条把手按下拖动即可换位:被拖卡片逐帧跟手,其余卡片按目标槽位带过冲曲线让位(高度参差也精确对位),松手速度计入落位时长、快甩滑行更久;
prefers-reduced-motion下动效退化为直接换位(#52) - 拖拽防御与中断回弹:4px 激活阈值避免点按误触;ESC / 窗口失焦 / 指针中断整体回弹不落库;拖拽中抑制悬停上浮等干扰动效并支持边缘自动滚动(#52)
- 键盘 ↑↓ / Home / End 调序并保持焦点连续;落库采用乐观更新即时生效、后端 300ms 合并写盘,落库前按位核对缓存序,列表被外部替换(如导入配置)时放弃写盘防止旧序覆盖(#52)
- 松手落库后同步托盘图标子菜单序与 CLI 列表序;托盘图标对「未指定图标条目」的回退取第一个启用条目,排序会改变该回退选择,属排序的预期语义(#52)
Bug 修复
- 硅基流动国内站
/v1/user/info已于 2026-08-14 停止服务(HTTP 410,替代 API 尚未发布):国内站查询遇 410 改报确定性错误「接口已停止服务、不代表 API Key 无效」,不再与无效 Key 混淆;国际站保持通用 HTTP 错误路径。官方替代 API 发布后将移除该特判(#53,Close #50) - 使用统计悬停数据点时详情卡片不再固定压在绘图区顶部遮挡贴顶的百分比曲线:改为跟随数据点锚定,点在上半区时卡片放下方、下半区翻上方(#48)
- 卡片错误文案过长被截断时,悬停即可查看完整报错(含已脱敏的错误详情),无需另行复制排查(#53)
其他改进
v0.6.0
本版本面向 AI 辅助调试与 new-api 系中转站适配:模板/脚本新增第二凭据槽 {{apiKey2}}(令牌之外再携用户 ID 等双凭据形态),AI 调试求助升级为可直接交给本机 Agent 的完整任务提示词(Windows 安装包内置 quota CLI),assist 调试契约附完整示例并新增复用本机凭据的端测子命令。
新功能
第二凭据槽 apiKey2(core / quota-cli / quota-desktop)
- 模板与脚本支持
{{apiKey2}}变量:new-api 系中转站余额查询需「系统访问令牌 + 用户 ID」双凭据(Authorization与New-Api-User双头)。凭据经同一 vault 加密存储(空 = 保持不变、不回显)、迁移包转写、错误详情双槽脱敏;未配置第二槽时查询报确定性引导错误(#46) - GUI 编辑弹窗(模板/脚本形态)新增「第二凭据」输入框,保存与试查全链路接通;CLI
set-key --slot 1|2写入对应槽,stdin 试查在草稿引用时按需交互收集(#46)
AI 调试求助直连本机 Agent(quota-desktop)
- 模板/脚本编辑器内联 AI 调试面板:脱敏求助提示词、
.qtray-assist.json诊断包保存、复制给本机 Agent 的完整任务提示词——含真实 CLI 绝对路径、PowerShell 命令、联网查证指引、安全边界(不得索要凭据、唯一允许的真实试查是 assist test)与输出契约;保存路径随输入变化失效并在复制前重写,Agent 永远拿到最新现场(#46) - Windows 安装包内置 quota CLI:构建链暂存同 profile CLI 并映射为资源
bin/quota.exe,开发版与安装包中的 Agent 提示词都能给出真实可执行路径(#46)
assist 调试契约与端测(quota-cli)
assist schema内嵌模板/脚本完整示例(演示transforms顶层键与{"const": ...}字段形态、双凭据头写法),示例自身通过静态校验与离线解析的契约测试闭环——Agent 不再需要逆向 DSL;新增assistTest段落显式声明端测通道语义(#46)- 新增
assist test --mode <m> --input <诊断包> [--base-url]:诊断包携带已保存条目的entryId(本地标识符,非凭据),CLI 以包内草稿覆盖条目查询配置、复用本机两槽凭据密文走引擎真实查询一次;凭据不出 vault、不进输出,失败输出透出已脱敏的响应体片段(detail),退出码遵循三分约定(#46)
Bug 修复
- 编辑供应商弹窗的全屏遮罩不再盖住自定义标题栏——此前弹窗打开期间无边框窗口无法拖动、最小化或关闭(#46)
- quota CLI 路径探测的 PATH 回退排除 System32/SysWOW64:Windows 自带同名 NTFS 配额工具不得被当作本软件 CLI 拼进 Agent 提示词(#46)
- 构建链修复:release 缺 CLI 仅在 Tauri CLI 驱动的构建中硬失败,CI 与普通
cargo check --release不再被误伤;CLI 路径契约测试按平台拼接 EXE_SUFFIX,Linux 矩阵确定性成立(#46)
其他改进
- 诊断包脱敏清理覆盖
api_key2键与New-Api-User头的自家形态,两槽占位符(含 Bearer 前缀组合)不被误伤;schema 脚本示例字段名与产物解析器对齐(snake_case),Agent 照抄不再静默丢字段(#46) - 开发目录清理器纳管 CLI 暂存目录
src-tauri/generated/;脚本页签文案去除开发期里程碑标记(#46)
完整变更: v0.5.0...v0.6.0
v0.5.0
v0.5.0 更新日志
本版本交付 M5 使用历史底座与走势查看:查询结果滚动保留 30 天的时序存储(SQLite)、CLI 走势命令与迁移包携带历史,桌面端新增使用统计页签并以趋势曲线展示剩余额度;同时为主题切换加入圆形揭示动效、收敛 Provider 刷新语义,亮色主色调调整为中性灰白。
新功能
历史数据存储(core / quota-cli / quota-desktop)
- 查询结果滚动保留 30 天(
~/.quotatray/history.db,SQLite):每条用量一行,重复写入幂等、同名多窗口自动#2/#3消歧、失效行跳过防假断崖;schema 经PRAGMA user_version版本化迁移,降级运行拒绝打开(#39) - CLI 新增
quota history命令组:show查看余额/额度走势——24h/7d/30d 三档范围(桶粒度 15m/1h/6h),--window窗口语义过滤(5h/周窗口分类,缺省按范围自动选粒度,选中类别缺失回退全部),跨类别分段表头、交互式分页与--json输出;clear清空历史;quota remove删除条目时同步清其历史(#39) .qtray-export迁移容器升级 v2:随配置携带历史数值行,导入按主键幂等合并;v1 老包仍可导入,旧版程序读取 v2 拒绝。历史行仅数值字段不含凭据,16 MiB 容器上限超限时报错并附清库提示(#39)
使用统计页签(quota-desktop)
- 主窗口新增「账户 / 使用统计」页签:面板切换在最大模糊点替换内容后上浮恢复清晰,页签随鼠标距离显现靛青径向聚光(#41)
- 使用统计接入历史库趋势曲线:按条目与窗口选择查看剩余额度走势,时间轴常驻选定时间窗,悬停十字线查看采样点详情,缺失时段以间隔条纹标注(#42)
主题切换动效(quota-desktop)
- 主题切换时新主题从主题按钮位置圆形揭示扩散(View Transitions),跟随系统的实时变色同受覆盖(#40)
Bug 修复
- 切换主题/语言等显示设置不再触发无关的 Provider 刷新与额外网络请求(#40)
- Provider 刷新语义收敛:只由首次取数、轮询到点、手动刷新、条目变更与配置导入触发;页签切换改为常挂载消除卸载重查,恢复聚焦/网络重连在轮询周期内不追加查询,单条目变更按条目失效不陪查,悬停托盘不再触发全量刷新(#41)
其他改进
- 亮色模式主色调由淡蓝调调整为中性灰白(#f8f8f8),与暗色主题风格对齐(#42)
- 仓库新增 file-tree 文件树维护技能:tree.json 单一数据源,脚本化渲染 AGENTS.md 文件树与标签词表,支持一致性校验与撤销重做(#41;渲染控制字段与 kind 标识随后升级,#42)
完整变更: https://github.com/ONEGAYI/QuotaTray/blob/main/CHANGELOG.md
v0.4.3
本补丁集中修复托盘悬停状态失步、跨窗口 Provider 缓存不同步及删除确认框定位异常。
Bug 修复
v0.4.2
本版本预置平台从 12 家扩容至 20 家:新增 StepFun / Novita AI / MiniMax Coding Plan 三家按量与套餐平台、NewAPI 系中转站通用预置模板,以及 Claude / Codex(ChatGPT 订阅)/ Gemini / Grok 四家官方订阅用量查询——复用本机官方 CLI 的登录凭据,添加条目无需输入 key;同时配套条目级查询代理开关,chatgpt.com 等被墙站点可按条目走本机 HTTP 代理。
新功能
订阅四家:Claude / Codex / Gemini / Grok(core / quota-cli / quota-desktop)
- CLI 凭据复用路线:查询时只读本机官方 CLI 的登录文件(
~/.claude/.credentials.json、~/.codex/auth.json、~/.gemini/oauth_creds.json、~/.grok/auth.json),QuotaTray 不做任何 OAuth 登录、凭据不落明文、用后即弃;添加条目跳过 key 输入,编辑对话框以提示卡说明"凭据来自本机 CLI"(#34 / #35) - Claude 订阅:5 小时/周(含 Opus / Sonnet 独立周窗)多窗口用量百分比与重置倒计时,未知窗口 tier 自动兼容扫描(#34)
- Codex(ChatGPT 订阅):5 小时/周/30 天多窗口(按窗口秒数自动标注),plan_type(plus / prolite / pro)透传;User-Agent 伪装 codex-cli 防 Cloudflare 拦截(#34,真机验证通过)
- Gemini Code Assist:OAuth token 过期自动刷新(gemini-cli 公开 client 凭据,不写回 CLI 文件),按 Pro / Flash / Flash Lite 分组取最紧额度与对应重置时间(#35)
- Grok 订阅:gRPC-web 私有端点,无公开 proto 契约下以 protobuf 启发式扫描提取额度百分比与重置时间(#35)
- 错误双轨:CLI 凭据文件缺失/未登录 → 确定性错误并引导先登录官方 CLI;网络抖动/被墙 → 瞬时错误(保留旧值)(#34 / #35)
条目级查询代理(core / quota-cli / quota-desktop)
- 供应商卡片新增代理开关(Globe 图标):开启后该条目查询走设置中的网络代理端口,关闭走直连;原「更新代理端口」升级为「网络代理端口」,更新检测/下载/订阅查询共用(#34)
- 开启代理但未配置端口 → 确定性引导错误;设置中变更端口后查询引擎热重建,无需重启应用(#34)
- CLI
quota add/quota edit向导同步询问代理开关;quota dev-smoke新增--proxy开关用于真机验证代理通道(#34 / #36)
预置平台扩容(core)
- 新增 StepFun(阶跃星辰)、Novita AI、MiniMax Coding Plan(国内/国际双站)三家预置平台,含品牌图标接线(#30)
NewAPI 系通用预置模板(quota-desktop)
- 模板编辑器预设库新增 NewAPI 系形态:约 40 家 one-api 系中转站复用同一查询结构(
GET {base}/api/user/self),一键填入(#31) - 模板条目按名称启发匹配接入 NewAPI 品牌图(#31)
Bug 修复
- 添加供应商的平台选择器二级菜单在窄窗口溢出主窗、与右栏联动滚动:改为浮层菜单 + 双栏独立滚动(#32)
- main 分支 CI 全红:clippy 严格模式三处失败(grok 冗余 let-else 与恒等运算、add 向导函数参数数超限)及 GUI 冒烟示例缺新字段;修复并将 clippy 纳入提交前硬门禁(#36)
其他改进
- HTTP 响应新增字节保真通道(raw):gRPC-web 二进制协议不再受 lossy UTF-8 转换损坏(#35)
- 预研报告:阿里百炼 API-Key 路线实测证伪留档(Blocked,社区端点全变体 404 + 网关仅认控制台 OAuth);订阅四家批次勾选完成(#34 / #36)
完整变更: https://github.com/ONEGAYI/QuotaTray/blob/main/CHANGELOG.md
v0.4.1
本版本收口桌面端两处体验断链:更新安装包下载后可直接在设置页一键安装(自动退出应用并启动安装向导),下载位置移至临时目录;添加供应商的「模板」形态重构为「运营商与模型 / 设置模板」二级子页,并附带预设模板库与模板编写说明。
新功能
更新一键安装(quota-desktop)
- 安装包下载完成后,设置页主按钮变为「立即安装」:确认后运行安装包并自动退出应用(NSIS 安装向导接管),替代此前"下载完无任何入口、需自行定位运行"的断链(#27)
- 下载位置从系统下载目录改为
%TEMP%/QuotaTray/Downloads(临时目录语义,随系统清理回收,丢失重下即可)(#27) - 已下载状态由后端记录:重开设置页仍能直接安装;检测到不同版本安装包自动失效,安装包文件丢失时自动回退到可重下状态,网络故障不丢已下载记录(#27)
- 安全面:安装命令只运行后端自记录的路径;写入侧校验 release 资产名(纯文件名 +
.exe,杜绝路径上跳/盘符/ADS 形态)、运行侧校验路径限于下载目录内,并对下载目录被预置 symlink/junction 的场景设防(#27)
模板编辑器二级子页(quota-desktop)
- 「模板」页签拆为两个子页:「运营商与模型」(名称、baseUrl、API key、峰谷计价)与「设置模板」(预设模板、JSON 编辑器、校验/试查、编写说明),原先挤在一页的高密度表单按职责分层;峰谷计价草稿在子页切换间保留(#28)
- 「设置模板」子页新增 5 形态预设模板一键填入:通用示例 / 单对象余额 / 站点可变 baseUrl / 总额已用 / 多窗口(与
examples/templates同构)(#28) - 预设点亮采用语义等价比较:serde 序列化往返补全的缺省键(
method: "GET"等)不算改动——「点预设 → 保存 → 重新编辑」仍能点亮;实质修改取值路径才视为脱离预设(#28) - 新增「模板编写说明」折叠卡:
{{apiKey}}/{{baseUrl}}变量来源、取数字段速查、算术变换与多窗口写法、最小示例(#28) - 保存时模板校验/解析失败自动切换到「设置模板」子页,错误现场直达(#28)
完整变更: https://github.com/ONEGAYI/QuotaTray/blob/main/CHANGELOG.md
对比: v0.4.0...v0.4.1
v0.4.0
本版本落地 JS 脚本查询:在预置平台与声明式模板之外新增第三类查询方式——QuickJS 沙箱内运行 {request, extractor} 脚本,覆盖模板表达不了的复杂平台(字段间运算、多窗口聚合、特殊签名),core / CLI / 桌面端三端全链打通;同时修复峰谷标签跨翻转边界停留在旧判定、one-api 系平铺错误体说明丢失两类缺陷。
新功能
JS 脚本查询(core / quota-cli / quota-desktop)
- 新增 script 条目类型:脚本内定义
request()与extract(resp)两个全局函数,HTTP 由宿主执行、脚本只做纯计算;{{apiKey}}/{{baseUrl}}变量在代码字符串层面注入,脚本作者接触不到真实凭据,脚本可安全分享(#24) - 沙箱限制:内存 16MiB、栈 256KiB、单次执行 5 秒 CPU 上限,不注入任何宿主 API(无网络/文件系统),每次执行独立运行时;脚本异常可能回显的凭据在错误消息中统一打码(#24)
- 保存期干跑校验:假变量替换后执行脚本、验证双函数存在与
request()产物形状(不发 HTTP),错误带行号定位(#24) - CLI 新增
quota script test:--entry复用已存条目密文试查;--jsonstdin 双形态宽容解析(脚本配置 JSON 或纯 JS 文本,examples/scripts/*.js可直接重定向,形似配置却解析失败时附提示)(#25) quota add向导新增「script」选项(粘贴代码 + 干跑校验重试 + 是否访问非 HTTPS 地址确认);quota edit支持脚本代码重粘贴与 allowInsecure 修改(#25)- 桌面端编辑对话框 script 页签从预留态转为实态:CodeMirror JS 编辑器 + baseUrl + allowInsecure 开关(启用时明示风险)+ 校验/试查 + 内置默认示例(#26)
- 新增
examples/scripts/可运行示例:basic.js最小闭环、multi-window.js多窗口与字段间运算(含协议说明与已知边界)(#25)
Bug 修复
- 悬停面板/主窗卡片的峰谷标签跨过翻转边界(如 18:00)后停留在旧判定,而托盘已切换:后端每分钟检测到任一条目峰谷翻转时向全部窗口广播事件,前端判定改锚事件时刻,与托盘菜单保持一致(Close #15,#23)
- one-api 系少数端点的错误响应体为平铺字符串(
{"error":"..."}),此前只认嵌套error.message,错误说明被丢弃、只显示裸 HTTP 状态码:现嵌套形态之后回退平铺形态,非字符串形态不误提取(#22) - CLI 多行粘贴在管道/重定向喂入时把文件内空行当结束符,含空行的 JS 代码与美化 JSON 后半段被静默丢弃:管道现读到 EOF;交互粘贴脚本代码改为单独一行
.结束(空行照常保留),模板 JSON 保持空行结束(#25)
其他改进
- 依赖与兼容边界:引入 rquickjs 0.12(内嵌编译 QuickJS-NG),MSRV 提升至 1.87;旧版本二进制读取含 script 条目的配置会报未知类型,升级为单向(#24)
完整变更: https://github.com/ONEGAYI/QuotaTray/blob/main/CHANGELOG.md
v0.3.2
本版本解决网络受限环境下的更新下载:设置页新增「更新代理端口」(CLI 共用同一设置),检测与下载安装包可经本机 HTTP 代理(如 Clash)完成;同时修复直连不可达时下载长时间零进度无提示、失败后状态仍显示「发现新版本」的静默问题。
新功能
更新代理(core / quota-cli / quota-desktop)
- 设置页「更新」分页新增更新代理端口输入框:填本机 HTTP 代理端口(如 Clash 的 7897),留空直连;越界输入自动收到 1-65535(#21)
- 检测更新与下载安装包共用该代理设置;CLI
quota update自动读取同一 settings.json,生效时输出提示行(#21) - core 新增
proxy_url_of(端口 →http://127.0.0.1:{port}的单一拼接口径)、ReqwestAssetDownloader::try_with_proxy与ReqwestHttpClient::new_with_proxy:显式代理不叠加环境变量代理,非法代理地址报错而非静默直连(#21)
Bug 修复
QuotaTray 0.3.1
本版本聚焦查询失败的排查体验:余额查询失败(如「响应不是合法 JSON」)时保留经密钥脱敏的服务端响应详情,桌面端卡片一键复制完整报错,CLI --json 同步透出;报错文案中的密钥材料(含大小写变体、URL 参数、Bearer 回显等形态)自动打码。
新功能
查询失败排查详情(core / quota-cli / quota-desktop)
- 查询失败时保留脱敏后的服务端响应详情:JSON 解析失败附 serde 行列位置(说明"怎么不合法")与响应体片段(说明"响应长什么样"),HTTP 错误附完整脱敏响应体(#20)
- 桌面端卡片错误行新增「复制报错信息」按钮(悬停提示),一键复制
[分类] 文案 + 详情全文,复制结果经短时反馈提示;凭据未配置的业务失效不提供复制(#20) - CLI
quota query --json错误对象新增可选detail字段(无详情时省略,不改变既有输出形状;表格输出不变)(#20) - 安全设计:脱敏采用结构化正则(字段名保留、仅打码值)+ 本次请求真实密钥的字面量替换(Bearer 剥壳、URL query、模板自定义位置登记、URL-encoded 与稳定前缀形态),先清洗后截断至 2048 字符;详情仅在用户主动复制时进入剪贴板,不写入日志、托盘菜单、启动快照或 CLI 表格;报错文案通道(HTTP 错误说明、平台业务码、模板取值错误)同样全量脱敏(#20)
完整变更: v0.3.0...v0.3.1