github komari-monitor/komari Snapshot-2610241641

pre-release3 hours ago

主要更新内容

  • JS 运行时迁移至 MoeJS:插件引擎底层从 dop251/goja + goja_nodejs 全面切换为 Calcium-Ion/moejs,涉及插件路由、Hook、RPC、定时任务、通知通道及所有 Node.js 兼容模块(fs、http、crypto、fetch、child_process、events、console 等)的适配重写。
  • 插件 WebSocket 监听:新增 route_websocket.go,插件可通过 req.upgradeWebSocket() 在 HTTP 路由中升级并处理 WebSocket 连接,支持帧队列、关闭握手和运行时资源生命周期管理。
  • 插件内建对象隔离与可修改:每个插件运行时拥有独立的内建对象副本,插件可修改自身内建对象(如 Reflect.decorate),且不会泄漏到其他插件实例。
  • 统一指标查询引擎:新增 internal/metricstore/query.go,支持精确采样、自适应降采样、最新值查询三种模式,提供 PointBudget 点数预算和 RecordQueryOptions 指标选择,避免全量加载后再裁剪。
  • Ping 汇总聚合:新增 database/tasks/ping_summary.go,单次遍历同时计算各客户端和各任务的丢包率、延迟分位数(P50/P99)等统计,供旧版与新版 Ping RPC 共用。
  • PostgreSQL / MySQL 兼容:新功能(查询引擎、投影、采样)在 pgsql 和 mysql 驱动下均可正常工作。
  • Node.js Buffer 模块:新增 pkg/jsruntime/buffer,基于原生 TypedArray 实现 Buffer 类,支持 hex/base64/utf16le 等编码及大端/小端读写。

Bug修复

  • Ping 队列容量独立:Ping 记录写入队列从与报告队列共享 512 容量改为独立的 4096 容量,避免高并发下 Ping 记录因队列满而被丢弃(PR #695)。

其他

  • 数据库层(accounts、sessions、clients、tasks、oauth)代码简化,去除冗余错误处理和注释。
  • Store 迁移与 Restructure 流程重构,提取 openWithoutMigration 辅助函数,StopStoreMigrationForShutdown 提升为公开 API。
  • 移除已废弃的测试文件 cmd/flags/config_test.go 和 internal/sqlitetune/connector_test.go。
  • README 新增 MooProxy 赞助商条目。
  • 新增 pkg/jsruntime/loop 事件循环封装和 pkg/jsruntime/native 原生桥接工具包。

What's Changed

Commits

New Contributors

Full Changelog: 1.6.0...Snapshot-2610241641

Don't miss a new komari release

NewReleases is sending notifications on new releases.