Releases: GLFzr/dsh-opencode-go-quota
Releases · GLFzr/dsh-opencode-go-quota
Release list
v0.3.2
新增
- README「常见问题」:Windows ACL 沙箱下圆环灰色感叹号(
sandbox-policy.workspaceRoot与dsh 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
修复
- 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
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
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 个单测)