主要更新内容
- 通知系统重写:移除旧的
messageSender工厂模式(bark、email、Server酱³、Server酱Turbo、Telegram、empty 等内置通道),替换为新的NotificationChannel注册表。内置通道保留 Webhook 和 JavaScript,并支持插件通过server.registerNotificationChannel()注册自定义通知通道。 - Agent 启动配置获取:新增
agent.startupConfig/agent.startupConfig.resultJSON-RPC 方法,管理员可通过admin:getAgentStartupConfig获取在线 Agent 的完整启动参数(含凭据)。 - Agent 版本切换:新增
agent.switchVersion方法及admin:switchAgentVersionRPC,支持向在线 v2 Agent 下发版本切换指令。 - WebSocket 心跳与压缩:v2 连接读等待从 11 秒提升至 75 秒,新增 Ping/Pong 心跳处理器;终端及客户端 WebSocket 升级时协商压缩算法。
- JS 运行时增强:
URL/URLSearchParams注入为全局变量;新增tls模块(支持tls.connect及基于已有 socket 的 STARTTLS 升级);net模块新增AttachSocket/DetachSocket。 - 前端静态资源改为磁盘缓存:启动时将内嵌 dist 归档解压至
./cache/dist目录,不再将全部文件加载到内存。 - 内存优化:Docker 镜像及安装脚本添加
GODEBUG=disablethp=1;zstd 编码器限制并发为 1 并启用低内存模式;上报批处理队列从 4096 缩减至 512。
Bug修复
- 修复流量上报重试时可能将历史累计值误计为增量流量的问题(超过 15 分钟的间隔不再参与流量归因)。
- WebSocket 心跳超时现在能正确识别为
net.Error超时并输出日志,而非被当作意外关闭。
其他
- 移除剪贴板功能(模型、数据库操作、API 路由及 RPC 方法)。
- 移除负载通知(
LoadNotification)模型、调度器及全部相关代码。 - 移除
visitor_audit_enabled设置项及公开访客事件审计逻辑。 - 移除 xtermjs 设置相关 API 端点。
- 移除旧版消息发送器配置 API(
admin:setMessageSenderProvider/admin:getMessageSenderProvider),由新的通知通道配置端点替代。 - 新增
admin:getLastRunVersionRPC,返回本次启动前记录的版本号。 /admin路径新增 302 重定向至/admin/dashboard。- Linux 构建添加
-extldflags=-Wl,--strip-all以减小二进制体积。 .gitignore新增/cache目录。
Commits
- 重定向旧版本的主题接口? (4ec22ed) @Akizon77
- 重写1下通知 (d15f051) @Akizon77
- 裁剪1下 (f57461f) @Akizon77
- 优化内存的分配喵,再压1点! (7e91794) @Akizon77
- 1点点小参数优化内存 (2c3f228) @Akizon77
- 添加1个小参数优化内存 (154d2b8) @Akizon77
- 没有落地的访客审计功能先删掉吧 (14bc87d) @Akizon77
- xterm设置适用面有1点太少了 (68c284d) @Akizon77
- 剪切板也是1个用的比较少的功能,移除了喵 (7d692d2) @Akizon77
- 支持拿到Agent的运行参数了 (29d309f) @Akizon77
- 对于#675,有一个更简洁的方案可以试1下 (70df320) @Akizon77
- Agent支持切换版本协议 (9812acf) @Akizon77
- 识别长时间断报优化一下 (39cb3f5) @Akizon77
- js通知先加回来 (a68704a) @Akizon77
- 加1个通知升级提醒 (e48aa1e) @Akizon77
- 和浏览器1起协商ws压缩算法 (13cbdca) @Akizon77
- js通知沿用旧版本的逻辑 (1b76b7a) @Akizon77
Full Changelog: 1.5.1...Snapshot-2610141700