github komari-monitor/komari Snapshot-2607202118

pre-releaseone day ago

主要更新内容

  • 新增公开访客审计事件RPC 端点(public:recordVisitorEvent),支持主题前端上报访问记录
  • 重构 metric 存储:所有指标读写统一路由到专用 metric store,支持热重载数据库配置与自动 DSN 驱动检测
  • 启动生命周期拆分为显式阶段(Bootstrap/InitStores/InitProviders 等),提升可维护性
  • 移除内置 Cloudflare tunnel 支持及 Cloudflare Access OAuth 提供者
  • 移除 Nezha 兼容层
  • 增加 loong64 架构的二进制构建支持
  • metric 存储新增保留策略管理、定时 rollup 压缩、批量写入性能优化
  • 支持暂停/恢复 metrics 迁移,进度持久化与重启后孤儿状态修复
  • 新增数据库空间回收(ReclaimSpace)与存储大小检查功能
  • 新增自动低资源模式检测与 SQLite 调优
  • 磁盘 IO 基准测试改用对齐无缓冲 IO
  • 节点列表 RPC(common:getNodes)返回 UUID 键映射而非数组
  • Telegram 通知在非 200 响应时返回 API 错误描述
  • 配置文件热重载统一管理(ReloadManager
  • 前端构建流程提取为可复用 action(build-frontend/restore-frontend),重构 CI 工作流
  • 依赖清理:移除 coreos/go-oidcgrpcprotobuf 等未使用依赖

Bug 修复

  • 修复主题操作(DeleteTheme/UpdateTheme/SetTheme)中的路径遍历安全漏洞(#584
  • 修复 Telegram 通知在非 200 状态码时仅返回状态码,现返回 API 错误描述(#583
  • 强化访客审计日志记录安全性(#602
  • 修复 SQLite 数据库锁定失败问题(record 写入)
  • 修复 metrics 迁移过程中的表锁问题
  • 修复数据库时间查询使用 FromTime() 与实际时间类型不一致问题
  • 修复 metric store 启动时迁移应先于一次性迁移
  • 修复 rollup 压缩按 metric 独立 cursor 轮转
  • 修复保留零保留期 metric 定义不被操作覆盖
  • 修复内置 metric 默认保留期设为 1 天用于测试
  • 修复 ping 记录读取使用 Series 以支持 rollup
  • 修复资源探测中 Totalram 溢出问题(cast to uint64)
  • 修复 metric 图表间隙自适应

其他

  • CI 工作流:复用前端和工具链 actions,生成 AI 辅助发布说明,更新 snapshot 版本时区为 UTC+8
  • 新增 rebuild-release 工作流,用于重新构建现有发行版的二进制和 Docker 镜像
  • 重构 cmd/server.go,拆分 App 生命周期结构
  • 移除废弃的 Record/GPURecord 写入函数,迁移至 metric store
  • 移除废弃的数据库配置参数(db-host/db-port 等)
  • 移除废弃的 reportSaveLocks 和旧报告保存逻辑
  • 标准化时间字段为 time.Time(移除自定义 LocalTime 类型)
  • 新增 OIDC 配置删除函数
  • 清理无用数据库函数(会话更新、客户端编辑等)

What's Changed

  • fix(security): prevent path traversal in theme name (DeleteTheme/UpdateTheme/SetTheme) by @guocn in #584
  • fix(telegram): 非 200 响应时返回 API 错误描述而非仅状态码 by @Torther in #583
  • feat(rpc): add public visitor audit event endpoint by @sanrokamlan-prog in #597
  • fix: harden visitor audit logging by @sanrokamlan-prog in #602

Commits

New Contributors

Full Changelog: 1.2.5-fix2...Snapshot-2607202118

Don't miss a new komari release

NewReleases is sending notifications on new releases.