github komari-monitor/komari Snapshot-2610231333

pre-releaseone hour ago

主要更新内容

  • JS 运行时迁移至 MoeJS:插件引擎底层从 dop251/goja + goja_nodejs 全面替换为 Calcium-Ion/moejs,涉及插件路由、RPC、HTTP/WebSocket 钩子、定时任务、通知通道及全部 Node.js 兼容模块(buffer、crypto、fs、http、fetch、child_process、events、console 等)。
  • 插件内建对象可修改:每个插件运行时启用 MutableIntrinsics,插件可修改自身 Reflect、Array.prototype 等内建对象,且修改不会泄漏到其他插件实例。
  • 统一指标查询引擎:新增 internal/metricstore/query.go,提供 QueryMode(points / series / latest_before)、QuerySource(auto / raw / rollup)、EntityScope、PointBudget、FillPolicy 等抽象,替代原先分散的查询路径。
  • 查询性能优化:
    • 新增 LoadProjection 按 load_type 仅选取所需字段,减少对象分配。
    • 新增 RecordQueryOptions(MetricNames + MaxPoints),在聚合前限制响应点数。
    • 新增 internal/sampling 包,提供确定性按比例降采样,用于历史数据响应。
    • 新增 database/tasks/ping_summary.go,单次遍历完成 ping 客户端/任务聚合统计。
  • Ping 队列独立容量:ping 批量写入队列容量从与 report 队列共享的 512 提升至独立的 4096,避免高并发 ping 上报时阻塞常规指标写入。

Bug修复

  • 修复 ping 队列与 report 队列共用容量导致 ping 记录在高峰期被丢弃的问题(PR #695)。

其他

  • 移除 cmd/flags/config_test.go 和 internal/sqlitetune/connector_test.go 等已失效测试。
  • stretchr/testify 升级至 v1.12.1。
  • .gitignore 新增 .gocache/ 条目。
  • README 及中文 README 新增 MooProxy 赞助商信息。
  • 多处数据库访问层(accounts、clients、tasks、oauth)简化错误处理与冗余 nil 检查,移除死代码。
  • internal/metricstore 中 store 初始化、迁移取消、结构升级等流程重构为更紧凑的辅助函数。

What's Changed

Commits

New Contributors

Full Changelog: 1.6.0...Snapshot-2610231333

Don't miss a new komari release

NewReleases is sending notifications on new releases.