Skip to content

Update plugin token-meter to 1.1.0 - #28

Merged
luolangaga merged 1 commit into
luolangaga:mainfrom
KujouShiori:update-plugin-token-meter-1.1.0
Oct 13, 2026
Merged

luolangaga merged 1 commit into
luolangaga:mainfrom
KujouShiori:update-plugin-token-meter-1.1.0

Conversation

@KujouShiori

Copy link
Copy Markdown
Contributor

插件简介

Token 计岛(token-meter) 的 1.1.0 更新投稿(1.0.0 已由 PR #23 合并)。

本次新增可选的服务商用量接口:本地会话日志降级为兜底数据源,接口可用时以服务端数据为准;接口不可用、超时或权限不足时自动降级,界面标明当前数字来自哪个来源。

本次变更

  • 多来源按模型归属分派并分列展示:本地与云端是两个运营商、两种币种,各自成块,不混算、不互相覆盖
  • 服务端金额按 quota 以 1e-8 定点记账;某窗口服务端覆盖不足 99% 时标为「混合」并继续显示本地估算,不拿部分数据冒充全量
  • 接口层新增:地址安全卡控(带密钥时禁止明文 http)、识别「HTTP 200 但业务层报错」、JSON 路径支持数组下标与「字符串内嵌 JSON」、页码与游标两种分页
  • 岛面 / 聚光卡 / 设置页均显示当前数据口径与费用口径
  • 修复:KPI 跨行未对齐、柱状图溢出导致最右格被裁、刷新中途云端块塌陷、云端账本未持久化导致重启后历史丢失

测试环境

  • WinIsland 版本:程序 v1.1.3,宿主 SDK 2.4.0.0(min_host_version 填 2.4.0)
  • Windows 版本:Windows 11 25H2(Build 26200)
  • 是否需要管理员权限:不需要

权限与数据

  • 默认不联网:接口开关 Enabled 默认为 false,未启用时行为与 1.0.0 完全一致(只读本机会话日志)。
  • 启用后:仅向用户自行配置的那一个地址发 GET 请求。发请求前会校验必须是 http/https 绝对地址,带密钥时拒绝明文 http(本地调试 127.0.0.1 / localhost 例外)。除该地址外不发任何其他网络请求。
  • API 密钥不保存在插件里:设置页只存一个环境变量名,运行时从环境变量读取。密钥不会落进宿主的 settings.json、不会进插件自己的缓存文件、也不会出现在日志与错误文案中。
  • 读取:默认自动定位本机 AI 客户端的会话记录目录(可在设置页修改,多个目录用 ; 分隔),且只解析 role=assistant 且带 usage 的记录。
  • 写入:只写插件自己目录下的 .cache\(扫描增量偏移、按天账本、云端水位线与云端账本)。卸载插件时该目录随 plugins\<id>\ 一起删除;仅当插件目录不可写时才回退到 %LOCALAPPDATA%,并在插件日志中明确记录这一回退。
  • 设置键:只使用 enabled / priority / refreshSeconds / roots / pricing / provider / localScope,全部由 SDK 自动加 token-meter. 前缀;不读写 plugin.<id>.disabled,不读写其他插件的数据。
  • 费用是估算:会话记录里的 cost 字段恒为 0,插件按用户填写的模型单价计算;未配单价的模型显示「未定价」,不计入费用,也不会被伪装成免费。启用接口且服务端返回真实金额时优先采用服务端值。

对照审核标准自查

审核标准 本插件状态
能正常安装、启用、禁用、卸载,不残留后台进程/文件 无子进程、无自启;定时器与设置页由宿主托管;缓存全部在插件目录 .cache\ 内,卸载即消失。本机已实测「.lwp 放入 plugins\ → 启动自动安装 → 加载 → 启用 → 卸载清除」全链路,安装后目录内文件与包内文件逐个哈希一致
不把宿主自带的运行时打进包 包内仅 5 个文件(plugin.json、入口 dll、deps.json、.pri、README.md),无 WinIsland.Core.dll / WinUI / WinRT / WebView2 / *.pdb
不越权 见上「设置键」一条
说明与行为一致,许可证明确 MIT(源码仓库含 LICENSE);plugin.json 与 README 均写明「默认只读本地日志;启用接口后仅请求你所配置的那一个地址;密钥只从环境变量读」
版本号递增 1.0.0 → 1.1.0

构建来源与一致性

  • 插件源码:https://github.com/KujouShiori/token-meter ,tag v1.1.0(commit 707c960)
  • 投稿包由该 tag 的 dotnet build -c Release 产物,经官方 tools/submit-plugin.ps1 -NoIndex 生成
  • 已逐字节比对:包内 plugin.json 与 plugins/token-meter/plugin.json 完全一致
  • 按 CONTRIBUTING 要求,本次未改动仓库根的 index.json 与 README.md(索引交由 CI 重建)

已知限制(如实说明)

  1. 云端接口的字段映射依赖用户自行配置。内置的 Anthropic 预设已对照官方文档核实;OpenAI 兼容预设的字段名未核实(其文档站在作者所在网络不可达),README 与代码注释中均已明确标注为「未核实的示例起点」,不冒充事实。
  2. 服务端用量数据通常有数分钟延迟。插件用「滞后带 + 来源标记」处理:滞后带以内的时间继续显示本地日志数据,并在界面标明当前口径,避免用户看到突然掉一截的数字。
  3. 若某来源当天没有用量,界面显示「今日无」而不是 0,以免被读成「花了 0 元」。

备注

提交历史的作者邮箱使用 GitHub 匿名回复邮箱。

新增可选的服务商用量接口,本地会话日志降级为兜底数据源:

- 多来源按模型归属分派并分列展示(本地 ¥ 与云端 $ 不混算、不互相覆盖)
- 服务端金额按 quota 定点记账,覆盖不足时标「混合」而非冒充全量
- 接口层:地址安全卡控(带密钥禁止明文 http)、识别 HTTP 200 但业务层报错、
  JSON 路径支持数组下标与「字符串内嵌 JSON」、页码与游标两种分页
- 密钥只从环境变量读,不落盘、不进日志、不进错误文案
- 接口不可用/超时/权限不足时自动降级回本地日志,界面标明当前口径

按要求未改动仓库根的 index.json 与 README.md(索引由上游 CI 重建)。
构建来源:KujouShiori/token-meter tag v1.1.0 (707c960)。
@luolangaga
luolangaga merged commit 686492c into luolangaga:main Oct 13, 2026
2 checks passed
@KujouShiori
KujouShiori deleted the update-plugin-token-meter-1.1.0 branch October 14, 2026 05:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants