Skip to content

Releases: GLFzr/dsh-opencode-go-quota

v0.3.2

Choose a tag to compare

@GLFzr GLFzr released this 15 Aug 13:29

新增

  • README「常见问题」:Windows ACL 沙箱下圆环灰色感叹号(sandbox-policy.workspaceRootdsh web 启动目录耦合)的排障说明,及 key 缺失排查指引。

改进

  • 沙箱错误人类可读化:宿主沙箱不可用时(windows-acl-run / no sandbox backend is usable),tooltip 不再透传冗长的底层报错,改为可操作的中文提示(配置 workspaceRoot 或从 workspace 目录启动)。
  • key 解析增强:支持环境变量 OPENCODE_GO_API_KEY(优先于 auth.json);auth.json 容忍 UTF-8 BOM(此前带 BOM 会误报 "key not found");区分"文件缺失 / 解析失败 / 无 key"三类错误。

修复

  • 失败结果短缓存:错误 payload 此前按成功 TTL(60s)缓存,接口恢复后需等待或手动刷新;现按 errorCacheTtl(默认 5 秒,可配置)短缓存,恢复后快速显示真实用量。

测试

  • 新增:BOM 容忍与错误区分、沙箱错误映射(throw / stderr 两分支)、错误缓存 TTL。全量 25/25 通过

v0.3.1

Choose a tag to compare

@GLFzr GLFzr released this 15 Aug 13:29

修复

  • Prompt 注入不再依赖浏览器轮询:system prompt 求值时若用量缓存缺失或过期,会在后台自动刷新(并发去重)。GUI 未打开(headless / API 会话)时额度提醒也能正常生效。
  • 瞬时失败不再清空提醒记忆:用量接口临时失败时保持静默且保留已提醒档位,恢复后不会重复提醒同一档;仅窗口重置(真实回落至警示阈值以下)才清除记忆。
  • 阈值配置合法性检查warnAt < criticalAt < escalateFrom 不成立时打印 console.warn,避免档位阶梯被静默压平。
  • readBody 超限响应修复:请求体超过 4KB 上限时改为排空请求流并正常返回 400,此前 req.destroy() 会掐断连接,客户端收到的是 ECONNRESET。
  • 圆环键盘可达性role="button" / tabIndex / aria-label,支持 Enter / Space 切换窗口。
  • 标签页唤醒刷新:后台标签页唤醒且数据超过 1 分钟时强制刷新。
  • README:许可统一为 MIT,删除重复段落。
  • CI 跨平台:测试命令改为 node --test "tests/*.test.mjs",修复 Windows 下目录参数失败的问题。

测试

  • 新增 host 半测试 tests/index.test.mjs(11 个):路由注册、用量归一化、缓存 TTL、强制刷新、错误映射、405/400、档位状态机、无数据记忆保留与 headless 自刷新回归、自定义阈值下发。全量 21/21 通过

v0.3.0

Choose a tag to compare

@GLFzr GLFzr released this 15 Aug 05:42

v0.3.0 更新内容(相对 v0.2.0)

错误处理更友好

  • Host 端失败时输出清晰错误日志([dsh-opencode-go-quota] usage fetch failed: ...\),浏览器控制台同步输出 \console.debug\ 调试日志
  • UI 错误态保持:圆环灰色 + 中央 !\,悬停显示错误原因(已有能力)

配置更灵活

  • 新增 \cacheTtl\ 配置(用量缓存秒数,默认 60,cordis.yml 可覆盖)
  • 至此全部行为参数可配:\warnAt\ / \criticalAt\ / \escalateFrom\ / \escalateStep\ / \cacheTtl\ / \weeklyWarnAt\ / \monthlyWarnAt\

CI

  • 新增 GitHub Actions:push/PR 自动跑
    ode --check\ 语法检查 +
    ode --test\ 单测(零依赖,Node 22)

v0.2.0

Choose a tag to compare

@GLFzr GLFzr released this 14 Aug 20:41

v0.2.0 更新内容(相对 v0.1.0)

对话内额度提醒(Codex CLI 式,分级 + 每档只提醒一次)

  • 动态注入 system prompt,低于 warnAt(60%)零注入(省 token、prompt 前缀稳定、利于缓存命中)
  • 60%~79%:注意档,提醒一次——建议在合适节点提醒用户、暂停待恢复
  • 80%~89%:告急档,提醒一次——主动提醒、任务边界暂停
  • 90% 起每 +2% 递进一档,措辞紧急程度递增:严重(90) → 濒临耗尽(92) → 即将耗尽(94) → 几乎耗尽(96) → 近极限(98) → 已用尽(100),每档只提醒一次
  • 窗口重置回 60% 以下后升档记忆自动清除,下次爬升重新按档提醒

圆环警示按窗口独立阈值

  • 5小时 ≥80%(唯一参与 prompt 注入)
  • 周 ≥90%、月 ≥95%(仅 UI 警示,不注入 prompt)
  • 警示行与文案跟随当前窗口(修复切换 5/W/M 后警示不刷新的问题)

配置(cordis.yml)

  • \warnAt\ / \criticalAt\ / \escalateFrom\ / \escalateStep\(默认 60/80/90/2)
  • \weeklyWarnAt\ / \monthlyWarnAt\(默认 90/95)

工程

  • 新增 \lib/usage-text.js\(纯函数:档位计算、一次宣告门控、文案渲染)与 \ ests/usage-text.test.mjs\(10 个单测)