主要更新内容
- 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
- fix(metricstore): give the ping queue its own capacity by @cristianchiriac in #695
Commits
- Update payment options in README (5006f55) @Akizon77
- Update README_zh-cn.md (4b24f1e) @Akizon77
- fix(metricstore): give the ping queue its own capacity (fa5a04d) @cristianchiriac
- 让opus5.5 简化、优化1下代码 (b38b0b2) @Akizon77
- 优化单次查询性能 (3cf8445) @Akizon77
- 查询时对象分配数量可以少一点 (48af63c) @Akizon77
- 感谢新的金主 MooProxy (dc7f4cb) @Akizon77
- 感谢新的金主 MooProxy (7468dcb) @Akizon77
- Merge main into PR 695 and remove added queue test (b704267) @Akizon77
- Merge pull request #695 from cristianchiriac/fix-ping-queue-size (528cea2) @Akizon77
- JS运行时换成moejs (d50cc0a) @Akizon77
- 允许插件修改自己的内建对象 (c24c4b9) @Akizon77
- 优化查询性能 (d5689ef) @Akizon77
- 优化查询的CPU性能,但是稍微牺牲一点点内存 (e30b9fd) @Akizon77
New Contributors
- @cristianchiriac made their first contribution in #695
Full Changelog: 1.6.0...Snapshot-2610231333