Skip to content

Releases: qikairo7/dsh-gemini-pool

v0.5.3 — 修复设置页空白(附渲染回归测试)

Choose a tag to compare

@qikairo7 qikairo7 released this 25 Sep 19:50

修复:设置页整页空白

打开「设置」,本插件卡片是空白的——看不到账号、额度和模型列表。

原因:设置页组件引用了两个从未声明的变量(localeRev / setLocaleRev,本意是语言切换后重渲染)。这个引用位于组件渲染函数体内,一执行就抛 ReferenceError,React 随即卸载整个设置分区。

修复:补上缺失的状态声明(一行)。

为什么之前没发现

此前所有检查都是静态的——语法检查、i18n 键覆盖、模块导入、HTTP 接口探测——全部通过,却漏掉了「组件根本渲染不出来」这类问题。

新增 9 项客户端渲染回归测试,会真正执行组件渲染函数:

  • test/client-render.test.mjs:空数据渲染不抛错、输出非空、所有被调用的 set* 与 hook 依赖项都有声明
  • test/client-render-populated.test.mjs:用真实接口响应(已脱敏)渲染,断言账号行、额度行、模型列表都出现在输出里,并断言「打开面板即自动刷新额度」

两个文件都做了反向验证:把修复回退后测试确实变红(9 项中 8 项失败),确认它们真能抓住这个缺陷。

安装

dsh plugin add github:qikairo7/dsh-gemini-pool --profile web

安装后需重启 dsh web 生效。

v0.5.2

Choose a tag to compare

@qikairo7 qikairo7 released this 25 Sep 14:31

Fixed

  • 账号在重启后丢失(严重 / P0):账号池加载时校验了一个实际不存在的字段(accessToken),而账号真正持有的是 access / refresh。结果每次进程重启从磁盘读回时,已保存账号在校验阶段抛错并被静默吞掉,池加载为空——若存在旧凭证文件甚至会被单账号迁移覆盖。已改为校验真正的持久字段 refresh(access 为临时令牌,可按需刷新;legacy 迁移账号允许为空),并用「保存 → 新实例重载」实测复现与验证。
  • 损坏的池文件不再静默丢弃:池文件存在但无法解析时立即抛错(含路径与原因),不再静默清空并让迁移逻辑覆盖可恢复文件。

Added

  • 3 项账号池持久化回归测试(重载存活 / 空 access 仍可加载 / 损坏文件报错且不被覆盖);测试总数 21 → 24 全绿。

Changed

  • 设置页无障碍与打磨:表单控件与 label 显式关联、额度条补 role=progressbar 与 aria 值、错误/保存提示加 live region、折叠区补 aria-expanded、:focus-visible 焦点环、点按反馈与 prefers-reduced-motion 适配、「当前使用」标签补中英双语(行为 / 接口 / 数据流零变化)。
  • 文档梳理:README 中英去营销腔并逐节对齐、修英文版破损 HTML 与语义漂移、CHANGELOG/SECURITY 轻度润色。

v0.5.1

Choose a tag to compare

@qikairo7 qikairo7 released this 25 Sep 14:14

Fixed

  • 请求失败路径崩溃修复:triedEndpoints / lastNetworkError 原声明在候选循环内部却在循环外的错误分支被引用,导致任一请求彻底失败时抛 ReferenceError 而非分类后的 LlmError——该错误无法被 isQuotaOrRateLimitError() 识别,使账号在「所有候选均 429」的常见场景下既不冷却也不自动切号,多账号 429 容灾形同虚设。已将两变量提升至请求级作用域。
  • 并发刷新令牌加锁:同一账号多路请求/后台探活并发刷新时会用同一个旧 refresh_token 同时打 Google 令牌端点,可能互相作废并刷废账号。新增 refreshAccountTokenOnce() 按账号合并在途刷新。

Added

  • 回归测试:所有候选 429 耗尽须抛限流错误(非 ReferenceError)并正确记一次冷却。

Docs

  • README 手动安装示例包名改用通配 dsh-gemini-pool-*.tgz。

v0.5.0 — 探活递减信任制 + 6 项加固

Choose a tag to compare

@qikairo7 qikairo7 released this 25 Sep 06:52

亮点

  • 探活恢复改为递减信任制:探活成功后账号重新启用,但失败计数只减 1——需连续多次探活成功才能完全重获信任;手动「重新启用」仍为全重置
  • 6 项加固:生图产物 20 MiB 上限、Web API 请求体 2 MiB 上限、账号池坏条目立即报错(不再静默修复)、设置页不再伪装默认配置、可重试状态码收敛为单一常量
  • 新增 3 项探活恢复行为测试(总计 20 项测试全绿)
  • 内部:诊断单例显式化 + 模块拆分首批落地

完整变更见 CHANGELOG

v0.4.1 账号池调度可靠性修复

Choose a tag to compare

@qikairo7 qikairo7 released this 25 Sep 03:58

修复三个核心调度缺陷:坏号不再因单次成功洗白失败计数(退役机制恢复生效);探活改用真实文本流通道(1-token 最小探测,不再被配额元数据假阳性复活);池耗尽不再误报 AUTH 登录错误。统一生图/流两条路径的配额判定口径,补 GitHub Actions 自动质检。新增 6 项行为回归测试(修复前红、修复后绿),经跨模型池双轴代码评审两轮验收。

v0.4.0 — Cooldown state machine, auto quota refresh, Gemini rebrand

Choose a tag to compare

@qikairo7 qikairo7 released this 25 Sep 02:23

Exponential-backoff cooldown with auto-disable and background probing; settings page auto-refreshes quota; full zh/en i18n; Gemini spark icon; renamed from antigravity-pool. Includes bugfixes for upstream token-refresh crash (#14) and endpoint failover (#5).