Repository navigation
Releases
AI Provider Monitor v1.6.1
AI Provider Monitor v1.6.1
v1.6.1 汇总修复 v1.6.0 系统审查中确认的七项 P1 缺陷,覆盖检测判定、配置变更、文件损坏保护、备份合并、凭据脱敏、编辑会话隔离和多通道告警交付。正式发布版本、应用内版本、安装包和标签统一为 1.6.1。
本版不含新功能与界面改版;应用外观和操作方式与 v1.6.0 一致,升级无需迁移配置或历史。
缺陷修复
检测判定
- HTTP 200 业务错误不再误判在线:严格模式按 chat / completions / embeddings / custom 校验最小有效结果,先识别
error、非空errors、success:false、ok:false等明确业务错误,再执行用户响应断言。空对象、空choices、空向量均判定失败;工具调用、推理内容、合法的长度截断响应和显式自定义断言仍然通过。显式可达性模式保留原有语义,但同样不放过业务错误。响应中的凭据同步脱敏。
配置与数据完整性
- 检测途中修改配置不再把旧结果写入新配置:新增检测配置指纹,覆盖 URL、凭据、鉴权、模型路径、探测方式与请求体、断言、忽略规则、配额、流式测量、代理、TLS 与各超时,以及影响请求的全局网络与并发设置。编辑、批量修改、导入合并、备份还原和全局设置在同一保存事务内重置运行态、取消在途检测并按新配置补检;检测完成时同时校验代次与指纹,旧结果不写状态、不写历史、不触发新代次告警,迟到通知回执同样丢弃。保存失败整体回滚且不打断正在运行的检测;改名、备注、周期调整不影响正常检测结果。
- 结构损坏的配置不再被空库覆盖:
providers非数组、数组内出现非对象条目、global非对象时进入既有只读恢复流程,保留原文件并尝试建立.corrupt-*副本。真正的新安装与合法空数组照常加载。 - 稀疏备份合并只修改显式字段:合并旧版或字段不全的备份时,为新增记录补齐默认值,对已有记录按备份中显式出现的字段生成补丁;未提供的启用状态、探测方式、维护窗口、独立 SLO、通知路由、能力矩阵与凭据继续保留。显式
false、null、空数组仍可覆盖,运行态字段不从备份合并。
凭据与编辑安全
- URL 内凭据不再进入导出、日志和告警:新增统一脱敏模块,覆盖 URL userinfo 与 URL / 模型列表 / 探测 / 配额路径中的敏感查询参数,处理大小写、重复参数与百分号编码的参数名。公共状态快照、日志(含磁盘文件)、告警与模型变动文案、自定义 Webhook 的
{{url}}占位符、检测错误和测试连接结果均使用脱敏值,实际请求继续使用原始配置。默认导出与一键克隆移除 URL 凭据,完整导出和完整备份保留真实配置。 - 脱敏 URL 可在表单中安全编辑:界面以
***显示凭据,保留掩码或修改普通参数时沿用已存凭据,删除参数或填写新值即替换;无法还原时明确报错而不是静默写入掩码。新增 URL 凭据提示词条。 - 延迟回显与会话串用:编辑弹窗、密钥回显、连接测试和保存分别编号,回调校验当前会话、服务商 ID、表单修订与内容指纹。A 弹窗的延迟回显或测试结果不会写入 B 弹窗,请求途中的手动输入、清空或关闭眼睛不会被旧值覆盖,关闭后重新打开也不接受上一次的结果。
告警交付
- 部分通道恢复失败不再阻断下一次故障:故障生命周期与消息交付分离,每次故障有独立 incident ID,按通道保存最后通知事件与顺序。恢复只送达部分通道后再次故障会建立新事件,已收到恢复的通道同样收到新故障;已成功通道在重试时跳过,迟到回执不能覆盖更新的通道状态,旧版仅带全局状态的数据可在启动时平滑迁移。
- 通知按服务商顺序发送:同一服务商的故障、恢复与模型变动依次投递,避免慢速多通道发送交错;运行态已被重置的服务商丢弃过期回执。
验证
| 项目 | 命令 | 结果 |
|---|---|---|
| 模块冒烟 | npm test |
35 通过 / 0 失败 |
| 单元逻辑 | npm run test:unit |
31 通过 / 0 失败 |
| 缺陷回归 | npm run test:regression |
35 通过 / 0 失败(新增 9 项本轮缺陷场景) |
| 真实主进程集成 | npm run test:integration |
22 项通过(新增配置变更事务、脱敏编辑、真实 IPC 延迟和多通道顺序交付) |
| UI 布局与交互 | npm run ui-check |
七页、1280/1020/820 宽度、浅深色、中英文、等高卡片、焦点及草稿检查通过 |
| 应用/渲染自检 | npm run app-test / npm run renderer-test |
通过,无运行错误或 CSP 拦截 |
| 规范与翻译 | npm run lint / npm run i18n-check / git diff --check |
通过;237 个扫描翻译键无缺失 |
| 包内容与启动 | npm run test:package -- dist-v1.6.1 |
通过;37 份源码/资源一致,解包版和 Portable 的启动、IPC、主要功能与正常退出验证 |
测试使用临时数据目录、本地 HTTP/SMTP fixture 与隐藏窗口,凭据均为虚构值。
下载
AIProviderMonitor-1.6.1.exe:Windows x64 NSIS 安装包。AIProviderMonitor-Portable-1.6.1.exe:Windows x64 免安装便携版。latest.yml/AIProviderMonitor-1.6.1.exe.blockmap:自动更新元数据。SHA256SUMS-1.6.1.txt:安装产物校验值。
安装包未配置代码签名证书。
构建完成时间:2026-11-11 08:49(UTC+8)。安装版 126,321,840 字节,Portable 112,899,133 字节;latest.yml 的版本、安装包大小和 SHA-512 与文件匹配。
升级说明
- 从 v1.6.0 退出托盘程序后覆盖安装;配置、历史和告警状态可继续使用,无需手动迁移。
- 使用 URL 查询参数传递凭据的服务商,升级后界面与导出显示
***;保留掩码保存即可沿用原值,删除参数或填写新值才会替换。 - 旧版告警运行态在首次加载时自动迁移为按通道记录,迁移不改动已成功送达的通道。
- 严格推理下,返回 HTTP 200 但缺乏有效结果或带业务错误的响应现在判定为不可用;确需只验证“请求可路由”时,在高级表单显式选择可达性模式。
- Portable 数据位于 EXE 同级
AIPM-Data/;迁移便携版时保留该目录。
SHA-256
b87ff128378c4e52403ea5100fe8b580f528c19cd2081bb6e4d19272ff673e0d AIProviderMonitor-1.6.1.exe
bd5d8936ae8d7ceff988c29fd1de0e855387b44c4de74bf95e17832a52d84d14 AIProviderMonitor-Portable-1.6.1.exe
完整变更:v1.6.0...v1.6.1
AI Provider Monitor v1.6.0
AI Provider Monitor v1.6.0
v1.6.0 在 v1.5.0 的基础上完成监控可靠性修复,新增服务商模板、一键克隆、基础/高级表单、时间加权可用率、SLO 与错误预算,并统一桌面界面的布局和交互。正式发布版本、应用内版本、安装包和标签统一为 1.6.0。
新功能
- 服务商模板:新增 OpenAI、OpenAI 兼容接口、vLLM、LM Studio、原生 Ollama 和自定义服务。统一根地址与端点拼接,保留网关前缀和查询参数,避免重复
/v1;原生 Ollama 使用/api/tags与/api/chat。 - 一键克隆与单项启停:复制检测配置和 SLO 目标,生成唯一名称与 ID;副本默认停用,不复制 API Key、自定义鉴权头、专用代理、历史和告警状态。停用操作会取消自动排队与在途检测。
- 基础/高级表单:常用配置集中在基础区域,鉴权、探测能力、响应断言、维护、代理、通知路由及独立 SLO 放入高级区域。折叠编辑保留已有高级配置,保存与测试连接使用相同的有效配置。
- SLO 与错误预算:支持全局目标、1–90 天滚动窗口及服务商独立目标;统计页和详情展示时间加权可用率、数据覆盖率、未知时长、已知故障、剩余预算及达标状态。HTML、CSV、Excel 报告共享指标定义。
- 统计范围选择:默认仅统计当前配置中的服务商;主动选择“包含历史服务商”后才显示历史条目并标记。趋势、SLO、采样导出和报告使用相同范围,空配置不会重新显示已移除服务商。
- 快捷键录制:组合键以独立按键块显示,点击即可录制,支持 Esc 取消与恢复默认;录制期间临时释放注册,结束、失焦或渲染进程异常后恢复。
缺陷修复
- 请求与调度:统一检测、SSE 和通知请求生命周期,处理中途断流、提前关闭、取消、响应容量与绝对超时;修复排队重复、暂停后仍执行、停用后继续检测、修改周期产生孤儿定时器,以及恢复时集中重复检测。
- 告警与通知:持久化待发送事件,按通道记录交付并重试;修复静默/维护后恢复与模型变动通知丢失、发送失败却记为已告警、恢复回执竞态。通知通道同时校验 HTTP 与业务状态码。
- 配置与数据完整性:合并导入仅更新显式字段;新增、导入和还原统一保证服务商 ID 唯一;修复维护星期留空变成周日、跨页自动保存丢草稿、覆盖还原未应用全局设置,以及删除失败仍显示成功。
- 检测语义与凭据:默认使用严格推理;显式可达性模式不绕过响应断言或把配额错误判为可用。跨源重定向剥离业务鉴权,默认导出排除密钥、自定义头和代理凭据;关闭代理优先于其他代理设置。
- 导入导出与详情:修复多行 CSV 往返、长 JSON 复制被截断、动态密钥提示被翻译覆盖、详情不随状态更新、首次轮询误报新增模型,以及新手引导过早消失。
- 历史可靠性:修复 UTF-8 跨块读取、写入顺序与退出落盘,自动备份和清理支持跨日运行;MTTR 仅计入已恢复事件,持续故障独立展示,默认历史保留 90 天。
审查范围内的 11 项 P1、12 项 P2 及历史统计问题逐项对照见 实施与验收说明。
界面优化
- 统一七页标题、字体、间距、卡片、按钮和表单;浅/深色主题加强层次、边界、蓝色选中态和真实状态色,移除装饰光晕及无目的循环动效。
- 统计页采用四项概览、趋势与时长分布、SLO 汇总和服务商明细;图表使用等宽标注,保留单点和缺失采样区间。
- 服务商操作与筛选分区,显示结果和选中数量,提供清空筛选和可操作空状态;宽表在自身容器滚动。
- 设置默认显示“外观与启动”,支持分类、方向键及“全部设置”;切换分类保留草稿,跨页返回恢复滚动位置。
- 通知健康卡可定位配置;通知与备份在宽屏双列。备份/还原卡片等高、按钮底部对齐,结果信息和长文件名保持自适应。
- 日志增加独立筛选栏、计数与空状态;最近检测单击打开详情,表单标签、键盘焦点、非活动页面和减少动态效果支持同步完善。
运行时与依赖
- Electron 升级到 45.2.3,nodemailer 升级到 10.4.0,更新构建链与锁依赖。
- 开发环境要求 Node.js 22.12+;Windows 桌面程序自带 Electron,无需额外安装 Node.js。
验证
| 项目 | 命令 | 结果 |
|---|---|---|
| 模块冒烟 | npm test |
35 通过 / 0 失败 |
| 单元逻辑 | npm run test:unit |
31 通过 / 0 失败 |
| 缺陷回归 | npm run test:regression |
26 通过 / 0 失败 |
| 真实主进程集成 | npm run test:integration |
17 项通过,真实 preload/IPC 与跨页业务路径 |
| UI 布局与交互 | npm run ui-check |
七页、1280/1020/820 宽度、浅深色、中英文、等高卡片、焦点及草稿检查通过 |
| 应用/渲染自检 | npm run app-test / npm run renderer-test |
通过,无运行错误或 CSP 拦截 |
| 规范与翻译 | npm run lint / npm run i18n-check |
通过;237 个扫描翻译键无缺失 |
| 包内容与启动 | npm run test:package -- dist-v1.6.0 |
通过;35 份源码/资源一致,解包版和 Portable 的启动、IPC、主要功能与正常退出验证 |
| 依赖公告 | npm audit --include=dev |
0 条已知漏洞(2026-11-10) |
测试使用临时数据与本地 HTTP/SMTP fixture;界面截图使用模拟服务商和历史,不包含用户配置。代表性文字对比度检查:浅色主按钮 6.02:1,深色主按钮 4.88:1。
下载
AIProviderMonitor-1.6.0.exe:Windows x64 NSIS 安装包。AIProviderMonitor-Portable-1.6.0.exe:Windows x64 免安装便携版。latest.yml/AIProviderMonitor-1.6.0.exe.blockmap:自动更新元数据。SHA256SUMS-1.6.0.txt:安装产物校验值。
安装包未配置代码签名证书。
构建完成时间:2026-11-10 19:50(UTC+8)。安装版 126,317,611 字节,Portable 112,893,289 字节;latest.yml 的版本、安装包大小和 SHA-512 与文件匹配。
升级说明
- 从 v1.5.0 退出托盘程序后覆盖安装;已有配置和历史可继续使用,无需手动迁移。
- 新增配置字段使用默认值。旧历史没有采样周期时按间隔估算,无法追溯补全缺失数据;SLO 数据不足时不会确认达标。
- 默认严格推理可能将原来只验证“请求可路由”的模型标为不可用;确需旧兼容行为时,在高级表单显式选择可达性模式。
- 一键克隆不携带凭据且默认停用,补充所需凭据后再启用;维护窗口仅抑制通知,仍纳入健康统计。
- Portable 数据位于 EXE 同级
AIPM-Data/;迁移便携版时保留该目录。全局暂停仍为会话状态,重启后恢复。
SHA-256
6ded8ab6766427e1ed48448606b059d15ad1ec89261ac8d93049f946120e92ca AIProviderMonitor-1.6.0.exe
e38b14accaa2b4a4e99e449961ef3f87669dfc2e524e191f02c0148b218f458f AIProviderMonitor-Portable-1.6.0.exe
完整变更:v1.5.0...v1.6.0
AI Provider Monitor v1.5.0
AI Provider Monitor v1.5.0
v1.5.0 是一轮架构与体验的双升级:主进程完成模块化拆分,新增全局暂停、日志管理、90 天可用率色条、分组折叠与拖拽排序、空状态引导、托盘逐服务商菜单六项能力。
架构
- main.js 模块化拆分:从约 1350 行瘦身为约 600 行,只保留生命周期、窗口、托盘、未读队列、状态快照与 IPC 装配。全部 IPC handler 按域拆入
src/ipc/六个模块(providers / global / history / backup / transfer / misc),通过统一的 ctx(db 访问器 / 持久化 / 状态推送 / 调度器)注入依赖;状态报告三件套(CSV / 自包含 HTML / Excel)迁至src/report.js。行为零变更,全部回归与 E2E 兜底。
新功能
- 全局暂停检测:托盘菜单勾选项与仪表盘按钮一键暂停全部自动轮循;手动检测不受影响。暂停期间到期的定时器转入 30 秒低频轮询(不检测、不丢服务商),恢复时全部重挂、错过周期的立即补检。暂停为内存态,重启后自动恢复检测。
- 日志页管理:级别下拉(debug/info/warn/error)与按服务商过滤(匹配日志行
[名称]标记),与关键字过滤三者叠加;底部「日志文件」卡片列出磁盘文件(大小 / 时间),支持删除单个文件——新 IPClogs:deleteFile只接受aipm-YYYYMMDD.log(.N)命名规则,路径穿越直接拒绝。 - 90 天可用率色条:详情弹窗新增 status-page 风格色条,每天一格(绿 ≥99% / 橙 ≥90% / 红 / 灰 = 无数据),悬浮显示当日可用率与样本数;数据来自新聚合
history.perDay与 IPChistory:perDay。 - 分组折叠 + 拖拽排序:服务商工具条新增「分组」开关,按 group 分节显示(未分组垫底),节头显示在线数并支持折叠;无筛选的扁平列表中按行首手柄拖拽重排,
provider:reorder校验 ID 集合完整性(重复 / 缺失 / 多余均拒绝)后整体落盘,前端乐观更新、失败回滚。 - 空状态三步引导:无服务商时仪表盘给出「新增第一个服务商 → 配置通知渠道 → 完成首轮检测」向导,每步带直达按钮与完成态绿勾。
- 托盘菜单增强:右键菜单逐服务商显示状态与可用模型数(超过 15 个折叠为汇总行),点击唤起主窗口并直达该服务商详情。
界面优化
- 服务商列表选择列从 44px 加宽到 66px,拖拽手柄与勾选框拉开间距(8px),手柄图标缩小至 13px 并降低对比度。
- 手柄常驻占位:分组视图 / 筛选状态下不可拖拽时位置保留,勾选框不左右跳动。
验证
| 项目 | 命令 | 结果 |
|---|---|---|
| 单元测试 | node tests/unit-logic.js |
31 passed / 0 failed(新增暂停补检、perDay 聚合 2 用例) |
| 模块冒烟 | node tests/smoke.js |
35 通过 / 0 失败 |
| 代码规范 | npx eslint main.js preload.js src renderer scripts tests |
退出码 0 |
| i18n 缺键 | node tests/i18n-check.js |
178 keys, missing 0 |
| 应用自检 | npx electron . --smoke-test |
APP-SMOKE-OK |
| 渲染层自检 | npx electron tests/renderer-check.js |
RENDERER-CHECK-OK |
| 界面行为 | npx electron tests/ui-check.js |
UI-CHECK-OK |
| 真应用 E2E | CDP 驱动完整应用(独立数据目录 + 隔离 userData) | 25 passed / 0 failed |
E2E 覆盖(新增 8 项):暂停/恢复状态翻转、仪表盘暂停按钮文案、排序合法重排与非法 ID 拒绝、perDay 返回当日数据、日志文件列表、路径穿越与不存在文件删除被拒、新 UI 资产齐备、空态引导退出;前 17 项(v1.4.1 回归)对拆分后的 IPC 全链路重跑通过。
打包与产物核验:
npm run dist生成 NSIS 与 Portable 两个 x64 包,退出码 0(rcedit 无重试,版本一次写入成功)。dist/win-unpacked/AI Provider Monitor.exe版本元数据为1.5.0/1.5.0.0。- 已比对
app.asar与工作区:主进程 5 个模块、src/ipc/全部 6 个 handler、渲染层 3 个文件与图标资产共 18 份文件 SHA-256 完全一致,asar 内package.json版本为 1.5.0。 - 解包版以
AIPM_DATA_DIR+ 隔离--user-data-dir启动,日志确认数据目录自适应、快捷键注册与每日自动备份正常,验证后按 PID 清理无残留进程。 - 界面间距调整经真实实例截图核验(四服务商同视角)。
下载
AIProviderMonitor-1.5.0.exe:Windows NSIS 安装包。AIProviderMonitor-Portable-1.5.0.exe:免安装便携版。latest.yml/.blockmap:自动更新元数据。SHA256SUMS-1.5.0.txt:安装产物校验值。
安装包暂未做代码签名,Windows SmartScreen 首次运行可能提示“未知发布者”。
升级说明
- 从 1.4.x 直接覆盖安装即可,配置格式无迁移。
- 全局暂停为内存态:重启后自动恢复检测,属预期行为。
- 拖拽排序结果写入
providers.json的服务商顺序,随配置持久化。
SHA-256
48A91E9A7599A133D3017D01236623C0EEC80D81B11F11CB01E99F536EC93055 AIProviderMonitor-1.5.0.exe
A9E89E7DA9F0DC13E723EECC8C369A651E556660388D0D1C84CDC185D9EE8B30 AIProviderMonitor-Portable-1.5.0.exe
AI Provider Monitor v1.4.1
AI Provider Monitor v1.4.1
v1.4.1 是一轮集中修复与体验升级:9 项功能性修复、3 项规模化改造、5 个高频功能,并修复了 1.4.0 安装版托盘图标缺失的潜伏问题。
核心修复
- 托盘图标缺失(1.4.0 潜伏问题):
build/是 electron-builder 的构建资源目录,即使列入files白名单也不会打进 asar,导致 1.4.0 安装版createTray找不到build/icon.ico静默跳过——点 ✕ 隐藏到托盘后没有图标可恢复。运行时图标迁移到assets/目录(gen-icons.js同时输出构建期与运行时两份),安装版托盘由此恢复。 - 坏正则卡死检测:手改
providers.json写入非法modelIgnorePattern时,加载阶段逐条校验并停用该条目(数据不丢弃、日志告警),运行阶段正则编译失败降级为「本轮忽略该规则」。双重防线,任一路径都不会再让服务商状态永久卡死。 - 未读告警只能看到最后 5 条:主进程原先只下发
slice(-5),队列上限 50 条时其余 45 条无法逐条确认。现改为全量下发,弹窗列表内部滚动。 - 健康面板跨天歧义:「最后成功 10:35:22」看不出是今天还是三天前。同天显示时刻、跨天带日期;「下次检测」同样处理。
- 熔断器残留:删除、批量删除、停用、覆盖还原后清理对应服务商的熔断状态,失败计数不再跨生命周期延续,状态快照也不再携带已删除条目。
- 导入合并后周期不生效:合并导入更新了轮循周期时立即按新周期重排(周期未变的定时器不受打扰)。
- 批量编辑周期无上限:批量与单个编辑统一钳位到 1 年,超限在保存前提示而不是整批静默回滚。
- 错误信息截断乱码:服务商列表的错误摘要先截断再转义(原先先转义后截断会切烂 HTML 实体),并支持悬浮查看完整错误。
- 日报时间字符串陷阱:
dailyReportTime归一化补零成两位HH:MM,消除'9:05' >= '08:00'恒真导致任意时刻补发日报的边界。
新功能
- 托盘图标状态染色:绿 = 全部在线,橙 = 有异常,红 = 有离线 / 鉴权失败,未检测为原始图标;隐藏到托盘后一眼看出整体健康度。
- 测试连接:编辑弹窗一键试测,不保存直接跑一轮检测,就地显示状态 / 延迟 / 模型可用数与前三条失败原因;编辑已有服务商时自动沿用已存密钥(
provider:testConn与增改共用同一套字段语义)。 - 列表行内增强:周期列下方显示下次检测时间;最近检测列下方显示 24h 可用率(≥99% 绿 / ≥90% 橙 / 其余红),可用率全量拉取、5 分钟刷新。
- 详情走势图:详情弹窗新增近 24 小时可用率(绿)+ 平均延迟(蓝)双轴折线,区分「刚好这轮慢」和「一直慢」。
- 通道故障转告警:通知通道连续失败 3 次(此后每再败 5 次)自动转成未读告警并弹托盘气泡——「告警发不出去」不再只有日志一行。
性能与规模化
- 历史统计异步化:
summarize/series/modelRates/exportCSV改为异步分块读取,每 2MB 让出一次事件循环、分片之间再让步,大分片统计不再冻结主进程(窗口 / 托盘 / IPC 全停)。 - 检测结果落盘 2 秒防抖:
providers.json内含三份模型列表,大服务商每轮全量写盘代价高;配置类 IPC 仍即时写并依赖写结果回滚,退出前补刷。 - 界面状态刷新 200ms 合并渲染:多服务商同时完成检测时不再逐条重建 DOM。
验证
| 项目 | 命令 | 结果 |
|---|---|---|
| 单元测试 | node tests/unit-logic.js |
29 passed / 0 failed(新增 4 用例) |
| 模块冒烟 | node tests/smoke.js |
35 通过 / 0 失败 |
| 代码规范 | npx eslint main.js preload.js src renderer scripts tests |
退出码 0 |
| i18n 缺键 | node tests/i18n-check.js |
153 keys, missing 0 |
| 应用自检 | npx electron . --smoke-test |
APP-SMOKE-OK |
| 渲染层自检 | npx electron tests/renderer-check.js |
RENDERER-CHECK-OK |
| 界面行为 | npx electron tests/ui-check.js |
UI-CHECK-OK(健康面板五态断言全过) |
| 真应用 E2E | CDP 驱动完整应用(独立数据目录 + 隔离 userData) | 17 passed / 0 failed |
E2E 覆盖:新增服务商 → 首轮检测 up → 历史落盘 → 列表两个副行 → 详情走势图渲染 → 测试连接(复用已存 Key / 坏 Key 报鉴权失败 / 不可达报 down / 测试不改库)→ 通道 3 次失败产生未读告警且健康记录落盘。
打包与产物核验:
npm run dist生成 NSIS 与 Portable 两个 x64 包,退出码 0。dist/win-unpacked/AI Provider Monitor.exe版本元数据为1.4.1/1.4.1.0(rcedit 首写重试后成功,与 1.4.0 相同的已知现象)。- 已比对
app.asar与工作区:主进程 7 个模块、渲染层 3 个文件与 4 个图标资产共 14 份文件 SHA-256 完全一致,asar 内package.json版本为 1.4.1。 - 解包版以
AIPM_DATA_DIR+ 隔离--user-data-dir启动,日志确认数据目录自适应、快捷键注册与每日自动备份正常,验证后按 PID 清理无残留进程。
下载
AIProviderMonitor-1.4.1.exe:Windows NSIS 安装包。AIProviderMonitor-Portable-1.4.1.exe:免安装便携版。latest.yml/.blockmap:自动更新元数据。SHA256SUMS-1.4.1.txt:安装产物校验值。
安装包暂未做代码签名,Windows SmartScreen 首次运行可能提示“未知发布者”。
升级说明
- 从 1.4.x 直接覆盖安装即可,配置格式无迁移。
- 安装版升级后托盘图标将首次出现(1.4.0 的托盘缺失由本版修复)。
- 通道健康记录、历史数据与通知配置全部沿用,无需重新配置。
SHA-256
5FCEBD478031DCC31F05B686BB9F66B5595A7EAE03E935C700175C7F4A1E2724 AIProviderMonitor-1.4.1.exe
C7F0B31EFE1B2A50544EAB3F0BF18131D1DA59D0152010085B09E4F02165B5A1 AIProviderMonitor-Portable-1.4.1.exe
AI Provider Monitor v1.4.0
AI Provider Monitor v1.4.0
v1.4.0 集中在三件事上:通知通道状态看得见、日报去重标记不再丢、配置与凭据的生命周期收口。
核心修复
- 通知通道健康面板误报「未使用」:钉钉等通道明明已启用且配置完整,面板仍显示「未使用」。原因是面板只遍历发送记录,而健康记录在启用后尚未产生、测试发送又不记账、且只存在内存里一重启就清空。现在按「开关 + 配置完整性」渲染五态,测试发送计入健康记录,记录落盘到
notify-health.json。 - 日报去重标记被归一化剥离:
lastReportDay不在已知键白名单里,保存任意设置后该键被丢弃,导致同一天重复发送日报。现已纳入白名单并做YYYY-MM-DD校验,非法值清空(宁可多发一次也不永久漏发),且该键只在主进程维护,渲染层通过global:set写入会被拒绝。 - 凭据清除后残留旧健康状态:清除某通道的 Webhook / Token / Key 时同步重置该通道健康记录,避免新配置沿用上一套凭据的绿灯或红灯。
- 测试发送结果不刷新界面:
notify:test成功与失败都主动推送状态快照,点完测试按钮面板立即变绿或变红,不必等下一轮检测。
安全与校验
- 导入、合并还原与手工新增走同一套 Schema 校验:坏正则、非 HTTP(S) 地址、未知通知通道在入口拦下。
- 备份覆盖还原的 global 一律经过归一化:数值钳位、时间格式校验、未知键丢弃。
- 设置页所有敏感项与 Provider 的 API Key / 自定义请求头 / 专用代理均可从界面清除;留空仍表示不修改。
- Provider 代理地址在状态快照中掩码下发;敏感字段只下发
*Configured/*Masked标志。
告警与统计
- 延迟劣化告警:服务在线但连接延迟连续 N 轮超过阈值时推送,阈值与轮数可配,受静默时段、维护窗口与冷却约束。
- 故障升级提醒:故障持续指定分钟数仍未恢复时重复推送,避免长时间故障只提醒一次。
- 未读告警逐条确认:点击未读徽标打开列表,可逐条确认或一键全部确认。
- SLA 报表:统计页与导出报告(HTML / CSV / Excel)新增故障次数、MTTR、最长故障三项指标。
界面
- 通知页健康面板五态:
未使用/配置不完整/已启用 · 待发送/正常 · 最后成功 {t}/连续失败 {n} 次 · {t},鼠标悬停显示最后一条错误;状态变更只局部刷新面板,不会清空正在输入的密钥框。 - 批量编辑:勾选多个服务商后可批量修改轮循周期、变动上报开关、分组与代理设置。
- API Key 显隐与复制:编辑弹窗支持眼睛图标切换明文、一键复制。
- 导出默认不包含 API Key,勾选包含密钥时需二次确认;备份包含密钥时同样确认。
工程
- 新增
tests/i18n-check.js:扫描renderer/app.js的tx('…')与index.html的data-i18n,缺键直接退出码 1。当前 150 键、缺失 0。 - 新增
tests/ui-check.js健康面板六条 DOM 断言,其中一条是反向断言「已启用未发送时不再显示未使用」。 tests/unit-logic.js增加健康落盘与lastReportDay持久化两组用例。
验证
| 项目 | 命令 | 结果 |
|---|---|---|
| 单元测试 | node tests/unit-logic.js |
25 passed / 0 failed |
| 模块冒烟 | node tests/smoke.js |
35 通过 / 0 失败 |
| 代码规范 | npx eslint main.js preload.js src renderer scripts tests |
退出码 0 |
| i18n 缺键 | node tests/i18n-check.js |
150 keys, missing 0 |
| 应用自检 | npx electron . --smoke-test |
APP-SMOKE-OK |
| 渲染层自检 | npx electron tests/renderer-check.js |
RENDERER-CHECK-OK,CSP 未拦截任何资源 |
| 界面行为 | npx electron tests/ui-check.js |
UI-CHECK-OK |
打包与产物核验:
npm run dist生成 NSIS 与 Portable 两个 x64 包,退出码 0。dist/win-unpacked/AI Provider Monitor.exe版本元数据为1.4.0/1.4.0.0。- 已比对
app.asar与工作区:main.js、preload.js、src/notifier.js、src/store.js、renderer/app.js、renderer/i18n.js六份文件 SHA-256 完全一致,确认产物由最终代码构建。 - 解包版以
AIPM_DATA_DIR指向临时目录启动,日志确认数据目录自适应、每日自动备份与快捷键注册均正常,退出后无残留进程。 - 钉钉通道端到端核对:对模拟机器人 Webhook 发一次测试,健康记录
{fails:0,lastOkAt}立即落盘到notify-health.json,新进程读回一致,面板判定为「正常」。 - 打包过程中
rcedit首次写版本资源报Unable to commit changes并重试,重试后版本信息写入成功(上表已核验)。
下载
AIProviderMonitor-1.4.0.exe:Windows NSIS 安装包。AIProviderMonitor-Portable-1.4.0.exe:免安装便携版。latest.yml/.blockmap:自动更新元数据。SHA256SUMS-1.4.0.txt:安装产物校验值。
安装包暂未做代码签名,Windows SmartScreen 首次运行可能提示“未知发布者”。
升级说明
- 从 1.3.x 直接覆盖安装即可,配置格式版本自动迁移。
- 升级后首次打开通知页,已启用且配置完整的通道显示「已启用 · 待发送」,点一次「测试」即可看到绿灯与最后成功时间。
- 通道健康记录从本版本开始落盘,1.3.x 期间的历史发送记录不会补写。
SHA-256
794CBDDA1DBC220107E52B4705604FCCB54CD873B2C78994BEB6F61A688553C6 AIProviderMonitor-1.4.0.exe
23833C3020189E3B48C9A2A6BA205E2A45147D4E1F5F6D68713836B7A0FF2553 AIProviderMonitor-Portable-1.4.0.exe
AI Provider Monitor v1.3.0
AI Provider Monitor v1.3.0
v1.3.0 聚焦探测能力、安全边界、告警策略和运行可观测性,并补齐配置持久化与打包验证。
核心修复
- “启动即检测”关闭时仍会正常建立周期轮循,不再连带禁用自动调度。
- 单模型探测正确继承 Provider / 全局 TLS 校验设置。
- Provider 新增、更新、删除、启停、全局设置、备份还原和导入均检查持久化结果;写入失败时回滚内存状态并向界面提示。
- 统一 Provider 输入校验,仅允许 HTTP/HTTPS,限制字段长度、探测上限及自定义 JSON 格式。
- 加载、还原和导入时修复无效或重复 Provider ID。
- Webhook 响应体限制为 1 MiB;日志采用短周期批量落盘并在退出时同步刷盘。
- 全局设置 IPC 增加字段白名单,未知字段不会写入配置。
安全边界
- API Key、自定义请求头和敏感全局通知配置不再通过公共状态明文下发到渲染进程。
- Electron 渲染进程启用 sandbox,并限制新窗口和外部导航。
- 编辑秘密字段时支持“留空保持原值”。
探测与性能
- 支持自定义模型列表路径、Bearer / 自定义 Header / 无鉴权及自定义请求头。
- 重试支持
Retry-After,连续失败达到阈值后自动熔断;手动检测仍可绕过熔断。 - 支持 Chat、Embeddings、Completions 能力矩阵探测。
- 支持包含文本和 JSON 路径响应断言。
- 记录单模型耗时、平均探测延迟和 P95。
- 支持正则模型忽略规则,被忽略模型不进入探测、统计和模型变动基线。
- 可选 OpenAI 兼容 SSE 流式探测,记录首 Token 延迟与估算 token/s;每轮只额外探测一个已验证模型。
告警与维护
- Provider 可指定通知通道路由;留空时继续广播所有已启用通道。
- 维护窗口支持日期、星期和每日时间段组合匹配。
- 可配置配额查询端点、剩余额度 JSON 路径和低配额告警阈值;配额查询失败不影响健康状态。
- 低配额告警遵循维护窗口、静默时段和冷却策略。
- 未读告警不再因窗口获得焦点自动消失,需要用户显式确认。
界面与可观测性
- Provider 表单增加鉴权、能力矩阵、断言、模型忽略、配额和流式性能设置。
- Provider 列表可查看下一次计划检测时间。
- 详情页显示剩余配额、首 Token 延迟和流式吞吐。
- 公开自监控状态增加熔断信息。
验证
- 关键 JavaScript 文件通过
node --check。 - 针对性单元测试:13 passed / 0 failed。
- Windows NSIS 与 Portable 打包成功,构建退出码为 0。
- 解包版与 Portable 产物
--smoke-test均通过。 - ASAR 内版本和关键文件已核验。
下载
AIProviderMonitor-1.3.0.exe:Windows NSIS 安装包。AIProviderMonitor-Portable-1.3.0.exe:免安装便携版。latest.yml/.blockmap:自动更新元数据。SHA256SUMS-1.3.0.txt:安装产物校验值。
安装包暂未做代码签名,Windows SmartScreen 首次运行可能提示“未知发布者”。
SHA-256
0E18893EF4405BC304D6146A61D5049111C7C937B740E73EFF535C69DFD45382 AIProviderMonitor-1.3.0.exe
BFFC3C3A2E15CB0CD00667B2F59B69B204298B033B2CC9013368A93C82309625 AIProviderMonitor-Portable-1.3.0.exe
AI Provider Monitor v1.2.1
修复
• 月/年轮循不再因定时器上限变成约每秒检测一次
• 连接失败或鉴权失败时不再把基线模型当成已消失,避免误报模型变动
• 模型变动只在集合真正变化时上报一次;状态翻转不再绕过故障消抖
• 禁用服务商时清空模型基线与告警运行时,重新启用后不沿用旧状态
• 配置损坏时保留原文件,禁止用空库覆盖
• 跨源重定向不再携带 API Key
• 通知代理遵循「代理已启用」,未启用时不再走代理
• 自定义探测模板对模型名做转义,避免特殊字符拼坏请求
• 菜单「检查更新」会提示结果;启动检查保持静默
• 错过日报发送分钟时,当天补发一次
• QQ OneBot 的 user_id / group_id 按规范发送数字
改进
• 统计单独计入鉴权失败
• 邮件 TLS 与探测 TLS 分开,可单独跳过 SMTP 证书校验
• 状态报告补齐 Excel 导出依赖(exceljs)
• 历史写入后立即可读;日志高频输出做节流
• 新增单元测试,覆盖调度、基线、重定向与告警静默
安装说明
• AIProviderMonitor-1.2.1.exe:NSIS 安装包
• AIProviderMonitor-Portable-1.2.1.exe:免安装便携版
• latest.yml / .blockmap:自动更新元数据
• 安装包未做代码签名,Windows SmartScreen 首次运行可能提示「未知发布者」,选择「仍要运行」即可
AI Provider Monitor v1.2.0
鉴权失败独立态、维护窗口、TLS控制、探测调优、单模型可用率徽标、未读告警、邮件日报、全局快捷键、托盘气泡、中英双语、自动更新检查
AI Provider Monitor v1.1.1
v1.1.1 更新概要
- 探测上限默认 8 → 20,大模型列表覆盖更全
- 模型列表先稳定排序再截取,修复上游顺序抖动导致的变动误报
- 配置自动迁移(v2):旧默认 8 自动提升为 20,用户自定义值不受影响;超限模型记为「未探测」,不再计入不可用
- 停用 Provider 后彻底清空模型状态,不再残留过期“在线”显示
- 启动最小化到托盘设置生效
- 应用内版本号改从 package.json 读取
- 补齐 https-proxy-agent 生产依赖,代理探测开箱可用
安装包
- AIProviderMonitor-1.1.1.exe:NSIS 安装版
- AIProviderMonitor-Portable-1.1.1.exe:便携版(数据存 exe 同级 AIPM-Data/)
AI Provider Monitor v1.1.0
新功能
📊 统计分析
- 新增统计页签:整体可用率、检测样本数、P95 延迟概览
- 可用率与平均延迟趋势图,支持 1 / 6 / 24 小时、7 / 30 天时间范围
- 服务商明细:样本、可用率、在线/异常/离线计数、故障时长、延迟分位
- 导出 CSV 明细 / HTML 报告
🔔 告警与通知
- 告警策略引擎:连续 N 轮失败才告警(防抖动)、恢复通知、同类告警冷却、免打扰时段
- 通知渠道扩展至 8 个:Webhook、企业微信、QQ、钉钉、Telegram、飞书、Slack、Server酱,支持自定义模板
⚙️ 检测与体验
- 并发数、请求/探测超时、失败重试次数可配置;模型级可用性自定义探测
- 分组与标签管理、HTTP(S) 代理、开机自启、托盘状态徽标、深色模式
- 每日自动备份 + JSON/CSV 导入导出
修复
- renderer 模块加载时序 bug(P0)
- DEFAULT_GLOBAL 补齐 QQ 通知字段;配置保存改为原子写入
- 设置页数字输入框居中显示、隐藏微调箭头
- 服务商页签:全选/反选合并为三态勾选框,操作按钮去图标,筛选框收窄不再折行
- 日志过滤框风格统一;统计页头部筛选与操作按钮单行排列
安装说明
AIProviderMonitor-1.1.0.exe:NSIS 安装包AIProviderMonitor-Portable-1.1.0.exe:免安装便携版latest.yml/.blockmap:自动更新元数据- 安装包未做代码签名,Windows SmartScreen 首次运行可能提示「未知发布者」,选择「仍要运行」即可