Skip to content

AI Code Usage Tray v1.3.0

Choose a tag to compare

@saime428 saime428 released this 16 Sep 12:47
· 18 commits to main since this release

新增

  • 一键安装版(主推下载)。AI-Code-Usage-Tray-Setup-1.3.0-win-x64.exe 按当前用户安装到 %LOCALAPPDATA%\Programs,不需要管理员权限;启动时不用每次解压约 350 MB,托盘图标和开机自启的路径也固定下来。卸载在 Windows 设置 → 应用 里进行,%APPDATA%\ai-code-usage-tray 下的设置和账号账本会保留。便携版继续提供。
  • 挂起记录。主线程停止响应超过 15 秒时,%APPDATA%\ai-code-usage-tray\hang-log.jsonl 会记下发生时间、当时卡在哪一步、卡住前 15 分钟启动了哪些进程(含输入法和文本服务进程),不上传任何内容。看门狗自己没起来也会写一条,所以空日志不会有歧义。

修正

  • 卡死之后再打开就能救回来。以前应用一旦未响应,怎么双击都没反应:卡死的实例一直占着单实例锁,Electron 把新实例转交给它那个无响应的窗口,新实例随即静默退出。现在新启动会先结束 Windows 判定为「未响应」的同名进程再接管,并留下一条 ended-hung-instance 记录。只结束主进程——它的子进程会自己退出,而连坐会把应用打开过的浏览器或 Claude Desktop 一起关掉。
  • 便携版不再误伤正在运行的实例。以前每次启动都解压到同一个临时目录、退出时整个删掉,连正从那个目录运行的实例要用的文件也会被删。现在每次启动用独立目录。
  • Claude 账户额度能从限流中恢复。以前 Anthropic 限流额度查询时,应用每 30 秒刷新都会重试一次,等于一直把限流续着,Fable 额度再也不显示。现在不论上次成功还是失败,每 5 分钟最多请求一次;响应要求等更久时就照它说的等(封顶 1 小时),面板提示也相应改成「稍后会自动重试」。
  • 卸载会清掉开机自启项。开机自启的注册表值是应用自己写的,NSIS 卸载程序原本不会碰它,卸载后会残留一条指向已删除程序的启动项。

说明

  • 安装包和便携版都还没有代码签名,SmartScreen 可能提示,请核对下面的 SHA-256。
  • 从便携版换到安装版:先退出便携版再运行安装包。装完之后如果再运行便携版,开机自启项会被抢回临时目录——两种版本挑一个用就好。
  • 目前分析过的那次卡死里加载了输入法的文本服务 DLL,这只是线索、不是结论。挂起记录就是为了下次拿到证据。

校验

  • 本地测试:43/43 通过
  • 卡死恢复、便携版独立目录、安装与卸载(含开机自启项清理、设置保留)均在本机实测
  • 限流修复用真实被限流的账户抓包验证:6 分钟内只发出 1 次请求(旧逻辑会发 12 次),并遵守了响应里要求的等待时间(那次是 1350 秒)
  • SHA-256
    • AI-Code-Usage-Tray-Setup-1.3.0-win-x64.exe:84bde9e3a28d8c2b04de1bd250d8940a80127b693815920d0f806c09a95a8fef
    • AI-Code-Usage-Tray-1.3.0-win-x64.exe:6c350db88f5376f8aeac06d750811d53e94a6a6311aeca00056aed667e4e0d4a