主要更新内容
- 新增插件系统:支持通过 ZIP 包(含
komari-plugin.json清单)安装插件,插件可注册 HTTP 路由、静态目录、请求/响应 Hook、HTML 注入、RPC 方法及定时任务(server.cron)。 - 插件引入权限管理:
server模块的系统 RPC、路由、Hook、HTML 注入等能力需管理员批准;官方插件市场设为默认源。 - 插件新增独立持久化数据目录(
data/plugin-data),插件更新时数据保留。 - 重构 JavaScript 运行时:模块化内置组件,新增
node:stream、node:crypto等 Node.js 兼容模块,并补充 API 与兼容性文档;不支持的方法明确抛错而非静默无操作。
Bug修复
- 修复
process.exit(0)被误判为异常终止的问题,并改进错误上报。 - 修复响应 Hook 缓冲导致流式响应(如实时画面)数据被吞掉、客户端黑屏的问题,同时限制 Hook 缓冲上限。
- 修复 Hook 过滤规则及按插件限制响应体大小的问题。
- 修复运行中插件重装的安全性问题(先卸载、成功后再恢复启用状态)。
其他
- 将
database/metricstore迁移至internal/metricstore并按组件拆分(存储、压缩、删除、迁移、报表映射等)。 - 移除旧版兼容代码及未使用的数据库查询函数(消息发送、OIDC、负载通知、流量报表等)。
- 移除
golang.org/x/image依赖。 - 新增插件市场源配置项
plugin_market_sources。
Commits
- style: 移除没有使用的旧版本兼容代码,移动 database/metricstore 到 internal/metricstore 并拆分组件 (4077201) @Akizon77
- refactor: javascript runtime (df6ffba) @Akizon77
- refactor(jsruntime): modularize built-ins (3c58382) @Akizon77
- docs(jsruntime): add API and compatibility documentation (54851bd) @Akizon77
- docs(jsruntime): clarify unsupported methods throw instead of no-op (91ae9ed) @Akizon77
- fix(jsruntime): treat process.exit(0) as normal termination and improve error reporting (91cbeb3) @Akizon77
- feat: add plugin system and refactor jsruntime deadline handling (8985adc) @Akizon77
- feat(plugin): enforce server module permission gates (68bf4ed) @Akizon77
- feat(jsruntime): add node:stream module and embed nexttick JS (965afb3) @Akizon77
- feat: crypto module support (91d5f92) @Akizon77
- feat(plugin): set official plugin market as default source (f967ba0) @Akizon77
- fix(plugin): limit response hook buffering and safely reinstall (c27c21d) @Akizon77
- feat(plugin): add persistent storage dir for plugins (01c4816) @Akizon77
- feat: add plugin data storage and remove preview field (4040a5d) @Akizon77
- feat: add HTML injection permission and support for plugins (1f139ba) @Akizon77
- feat(plugin): add server.static for serving plugin static folders (eab03a1) @Akizon77
- fix: hook 过滤 + 按插件 body 上限 (d9713aa) @Akizon77
- feat(plugin): add server.cron scheduled task support (5488189) @Akizon77
Full Changelog: 1.3.2...Snapshot-2608021328