Releases: koishijs/koishi
Releases · koishijs/koishi
Koishi 4.8.0
注意:当前版本修改了较多内容,因此本轮更新的包都需要通过 @next
或写明版本号来进行安装或升级。如果担心可用性受到影响,可忽略此次更新。
Notable Changes
我们将适配器相关逻辑移至新仓库 satorijs/satori 中,并调整了适配器 / 机器人的 API,使之成为可重用的插件。想要升级到此版本的用户请参考以下升级指南:
- 所有的适配器插件不再有
bots
配置项了,如果要安装同一个适配器的多个 Bot 实例,只需安装对应的插件多次即可;同时protocol
配置项变为必选 - discord:
indents
配置项修改为 bitset 类型,可以在网页控制台中控制每一种事件是否订阅了 - telegram:
protocol
配置项的可选值修改为server
(原来是http
) 和polling
- kaiheila: 适配器插件名称调整为 kook
Features
- adapter: 迁移到 @satorijs,支持了适配器可重用 (#683) (参见下方 refa 部分)
- client: 支持了 tagged union,允许 union 对象由内部属性进行切换 (#738) (91aad42)
- manager: 支持了插件配置界面的扩展内容 (73f02b5)
- qqguild: 支持了 Internal API (satorijs/satori@c790afa)
Bug Fixes
- core: 修复了部分情况下不会自动建表的问题 (3fdb20d)
- core: 修复了 schedule 等插件会错误保存 scope guild 数据的问题 (39fc058)
- console: 优化了服务端的错误处理 (e94763f)
- manager: 修复了全局配置修改后无法保存的问题 (#734) (#745) (42eeafd)
- puppeteer: 修复了不支持 node 12 的问题 (cff3c02)
- qqguild: 修复了空 attachments 会导致报错的问题 (#687) (#716) (#741) (bc3b504)
- status: 修复了
metaInterval
配置项不工作的问题 (3124525)
Other Changes
- refa: migrate to @koishijs/registry (2d759fb)
- refa: move some utils to cosmokit (cc5580c)
- build: migrate to dtsc v2 (7535ff7)
- refa: refactor core to cordis v2 + satorijs (39fc058)
- build: update workflow (24828e4)
- refa: migrate all adapter plugins to @satorijs (abd1714)
- refa: fix core typings (5b4e074)
- refa: migrate @koishijs/segment to @satorijs (6032d82)
- refa: migrate common plugins (ef76432)
- refa: migrate mock and puppeteer plugins (ba70ac8)
- refa: migrate console plugins (0043d0e)
- refa: upgrade manager to new adapter / bot api (2aa6c9d)
- refa: fix typing issues (e8a2828)
- docs: add official repo testing guide (2c8b237)
- refa: fix unit test errors (a90afd6)
- build: support scaffold command (1bec063)
- refa: remove unused packages (b66b204)
- refa: upgrade sandbox to new adapter / bot api (f607708)
- chore: bump versions (1b29548)
Koishi 4.7.6
这应该是最后一个 4.7 的版本了 (大概)。
Features
- client: 支持了独立 const 类型的显示 (e76c1ca)
- client: 支持了多种不同类型的 union 显示 (5842477)
- client: 支持了嵌套类型的 union 显示 (59ce98e)
- manager: 添加新插件时支持搜索插件名了 (40d95e0)
- manager: 可以从左侧栏中添加插件和插件组了 (#720) (36c9c19)
- puppeteer: 支持了更多高级配置项 (4051a5c)
Bug Fixes
- admin: 修复了当
autoAssign
设置为false
时 assign 指令对不在数据库中的频道失效的问题 (#616) (d66ac7f) - cli: 当配置文件中含有无法解析的插件时依然可以正常启动了 (bd3114e)
- core: 重新添加了在过去版本中被误删的上下文 API (733a0f9)
- manager: 修复了不支持 scoped 插件的问题 (f4c8d86)
- manager: 修复了在控制台中安装插件后版本未及时更新的问题 (#735) (fc30acc)
- scripts: 对包名中的错误字符进行检测 (#729) (ff5b0ed)
Other Changes
Koishi 4.7.5
Notable Changes
- cordis: 新增了
ctx.isolate()
方法,用于创建具有隔离服务的新上下文 (cordiverse/cordis@b78516f, cordiverse/cordis@741448c) - core: 新增了
defineDriver()
方法,用于创建可重用的数据库插件;官方的数据库插件目前也已全部支持重用了 (5be03ad)
Features
- cli: 支持了在插件组配置中使用
$isolate
和$filter
修饰符 (6f26772, b8ab3c8, f39100b) - client: 优化了配置模式界面中嵌套结构的路径显示 (#700) (3023dbb)
- cordis: 新增了
ctx.extend()
方法,用于以当前上下文为原型创建新上下文 (cordiverse/cordis@72a1e32) - cordis: 新增了
Context.filter
符号,可用于给事件监听器传入非会话的this
(cordiverse/cordis@20212d8) - cordis: 新增了底层事件
internal/runtime
和internal/fork
,可用于监听插件状态变更 (cordiverse/cordis@ea18542) - cordis: 新增了
Context.source
符号,可用于更准确地追踪服务的来源 (cordiverse/cordis@ec49876) - manager: 支持在配置界面中显示上下文修饰符 (54befd0)
- manager: 针对服务隔离优化了配置界面里的依赖显示 (d4712bf)
Bug Fixes
- cordis: 修复了可重用插件的依赖变更后手动
state.update()
可能执行异常的问题 (cordiverse/cordis@c328781) - cordis: 修复了同时配置了
using
和reusable
的插件可能执行异常的问题 (cordiverse/cordis@c339c50) - cordis: 修复了
app.stop()
后再次执行app.start()
功能异常的问题 (cordiverse/cordis@4e84d33) - insight: 修复了依赖图不会即时响应插件树变更的问题 (#722) (db346df)
- insight: 修复了部分服务依赖不会显示在依赖图中的问题 (#724) (786a95d)
- manager: 修复了插件无法被拖拽入空插件组的问题 (5aaa234)
- manager: 修复了插件市场界面中部分插件无法显示完整的问题 (#705) (67584e5)
Other Changes
- build: remove linux/arm/v7 from build target (ad06582)
- refa(core): update cordis to 1.4.1 (1f1ef0e)
- chore: remove hidden flag for plugin-suggest (78058a4)
- refa: update cordis version (ee831e0)
- chore: bump orm plugin versions (c59cccf)
- refa: update cordis version (e668129)
- refa: use unified plugin loader (c0168ff)
- refa: prevent hot reload when config file is being written (13455a1)
- refa: add ctx.chain() and ctx.waterfall() (d313d46)
- chore: bump versions (973735e)
Koishi 4.7.4
Features
- insight: 针对可重用插件优化了依赖图的节点显示 (ca492b2)
- manager: 支持了对插件、分组设置引用别名 (f9f60b3, c2e6acf, 41fda37, 30aff4e)
- manager: 支持了从配置文件中移除插件和插件组 (02ae498)
- manager: 针对本地无法访问的插件给出警告,并提示前往插件市场下载 (e97c414)
- manager: 针对不可重用的插件的重复创建将给出警告 (242d7ba)
Bug Fixes
本次更新修复了两个严重 bug,建议所有 4.7.3 用户升级到此版本。
- cli: 使用
:
代替@
以解决无法加载带@
前缀的插件的问题 (#713) (60cd7db) - cli: 将插件组作为可重用插件加载,修复会话事件无法监听的问题 (#715) (6880661)
- client: 修复了部分页面侧边栏滚动条显示异常的问题 (#708) (fb553c8)
- cordis: 修复了认为所有 Service 都是可重用插件的问题 (cordiverse/cordis@7d8e4ef)
- manager: 修复了适配器插件在分组内时机器人创建时可能的错误行为 (880b965)
Other Changes
Koishi 4.7.3
Notable Changes
本次更新支持了插件组功能。
- cli: 支持了配置文件中的插件组语法 (5ddca9b)
- cli: 支持了插件组相关的 API (73e2555, cd512d3)
- manager: 使用树形结构显示插件列表 (d8584c3)
- manager: 现在加载 / 卸载插件时插件位置不会改变了 (34f431b)
- manager: 支持了插件和插件组的拖动管理 (bcf3e1a)
- manager: 支持了在插件组中添加插件 (36f4ed8, 104b942, 890b7c7)
- manager: 支持添加嵌套的插件组 (0bdb715)
- manager: 支持保存插件组的收起 / 展开状态 (17fcdca)
- manager: 支持在插件市场中点击「配置」时自动定位或添加新的插件 (8830f2a)
Features
- cordis: 新增了
internal/hook
事件,可用于定制生命周期事件的行为 (cordiverse/cordis@39a3a5c, cordiverse/cordis@a77cd43) - cordis: 支持了
Service
类中的 fork 语法糖 (cordiverse/cordis@66ff567) - cordis: 新增了
state.update()
,可用于在运行时修改配置项 (cordiverse/cordis@c23564c, cordiverse/cordis@09fcf24, cordiverse/cordis@d535224) - cordis: 新增了
lifecycle.mark()
,可用于添加具名的卸载回调函数 (cordiverse/cordis@08ecc66) - mock: 新增了 Webhook API,可通过
ctx.mock.webhook
访问 (7c8171e)
Bug Fixes
- cli: 优化了插件卸载时的诊断行为 (54eca64)
- cordis: 修复了可重用插件的一个可能的内存泄漏问题 (cordiverse/cordis@f969f9d)
- manager: 修复了由于高并发导致的插件市场请求失败 (7c84357)
- manager: 修复了依赖安装完成后依然显示红点的问题 (#704) (c06d984)
- manager: 修复了部分情况下添加机器人将无法生成正确配置的问题 (#693) (0cc419f)
- onebot: 修复了模拟 send 事件导致的循环触发问题 (083034d)
- orm: 修复了 level, mongo, mysql 插件名称显示错误的问题 (3976faf)
- scripts: 修复了通过 setup 创建插件时名字带 koishi-plugin 前缀将会导致插件无法加载的问题 (#709) (#710) (d86ec4d)
Other Changes
Koishi 4.7.2
Notable Changes
- core: help 和 suggest 这两个插件现已不再内置,老用户需要手动添加依赖到配置文件中 (5c5de46)
- infra: 支持了可重用插件,即通过特殊事件
fork
允许插件被多次加载,并妥善处理每一次时的逻辑 (compare) - market: 支持了在 package.json 中添加一个
koishi
属性来配置要显示在插件市场中的信息 (13f143f, d5260d6, 511c242, 3f38b68, 24484c7)
Features
- cli: 支持了可重用插件的热重载 (8f62369)
- client: 支持了同时发送多个资源文件 (satorijs/components@883249b)
- client: 支持了资源文件拖放发送 (satorijs/components@41b210c)
- insight: [MAJOR] 使用力导向图显示插件关系图 (9727cd1, d517ac4, 1d08e4a)
Bug Fixes
- client: 修复了部分嵌套数据结构下某些 schema 的描述不显示的问题 (#692) (dfc3b13)
- sandbox: 修复了沙盒在无数据库情况下加载失败的问题 (2dceb95)
- scripts: [MAJOR] 修复了
tsc
报错没有正常显示的问题 (#650) (4587f9a)
Other Changes
Koishi 4.7.1
Notable Changes
- adapter: 现在机器人自身发送的消息也会触发
message
事件了 (但依然不会经过中间件) (b6d723d) - infra: 发布了新的核心包 cordis,它作为 Koishi 的底层框架提供了上下文、插件系统、事件模型等核心功能 (804bbfd, 1bd1425, 948c5e8, 2898b09)
- help: 将
help
指令及其相关功能从 core 中移到了独立官方插件中 (9e5c747) - suggest: 将
session.suggest()
及其相关功能从 core 中移到了独立官方插件中 (1c462bd)
Features
- core: 新增了
maxPort
配置项,支持了端口递增尝试 (#675) (bc402b0) - client: 支持了
bitset
类型的表单操作 (6250239) - orm: 支持了
boolean
数据类型 (cordiverse/minato@b5700d0) - qqguild:
intents
配置项支持了输入字符串列表作为bitset
了 (b4a0f97) - schema: 支持了
bitset
类型 (shigma/schemastery#4) (shigma/schemastery@4a7bd46, shigma/schemastery@74cc9a7)
Bug Fixes
- chat: 修复了连续多条消息没有自动合并的问题 (b3c449e)
- cli: 修复了进程退出时发生错误会导致重启的问题 (#685) (5d0bfbc)
- core: 修复了
session.sendQueued()
没有返回值的问题 (6a4e96e) - infra: 修复了多次切换服务可能导致内存泄漏的问题 (cordiverse/cordis@9f5070f)
- rate-limit: 修复了 help 指令不能正确显示剩余次数和时间的问题 (1aac4df)
- sandbox: 修复了用户数据面板显示值与实际值不一致的问题 (#664) (39d4641)
- manager: 修复了将未加载的服务也显示为加载的问题 (#676) (3e11a5b)
Other Changes
- build: fix docker ci caused by the difference between podman and docker (#682) (47ebfcd)
- chore: bump plugin versions (de9cd1f)
- build: add milestoned issue backlogging (#674) (2fc58aa)
- docs: pretty twoslash error log (#686) (b38b481)
- test: fix unit tests (d5802cb)
- test: fix unit tests (56af3d6)
- chore: bump versions (98d6c4d)
Koishi 4.7.0
Notable Changes
- orm: 我们将 cosmotype 更名为 minato,对应组织更名为了 minatojs
Features
- cli: 配置项
logger.showTime
现在默认为 true 了 (6f5b959) - client: 部分代码独立到了 @satorijs/components (57ee376)
- chat: 初步引入了消息存储服务,后续将进一步优化 (#619) (a709f7e, 189f5a5)
- chat: 支持了查看不同频道和私聊的消息 (775989c)
Bug Fixes
- client: 修复了
createStorage()
中的数组会强行转换为对象的问题 (c81440f) - console: 修复了开发模式下由于 vue 安装多个不同版本导致的前端报错问题 (5cbfbf5)
- core: 修复了
session.cancelQueued()
的错误行为 (#630) (#665) (722366d) - core: 修复了 adapter 插件不支持热重载的问题 (#679) (007a6f3)
- qqguild: 修复了接收到 attachment 消息时会报错的问题 (#622) (#672) (6a19380)
- status: 移除了 systeminformation 依赖,修复了相关问题 (#670) (koishijs/koishi-desktop#25) (c5ed7dc)
Other Changes
- ci: restrict some workflows runs in main repo only (#669) (10a1af9)
- i18n: add traditional chinese (#666) (34a79e1)
- ci: update dockerfiles (#668) (7b0b4e0)
- docs: fix code in console guide, fix #678 (e694237)
- docs: add 4.5 release notes (22dbcd5)
- docs: add 4.6 release notes (0880eb8)
- chore: bump versions (7eb7912)
Koishi 4.6.3
Notable Changes
Features
- adapter: 支持了新 API
bot.kickGuildMember()
(b85397f) - manager: 支持了配置项
registry
,可手动设置插件市场使用的下载源 (#654) (#657) (2161507) - manager: 插件市场面板优化了的搜索关键词的显示效果 (3c8b458)
- manager: 依赖管理面板支持了显示标识版本范围的
~
和^
记号 (50187bd) - manager: 对于非工作区内的已加载依赖,当更新版本后将自动重启进程 (d794f7a)
Bug Fixes
- chat: 修复了新用户首次发言会触发报错的问题的 (#621) (a8456f9)
- discord: 修复了最新版 @ 的语法适配 (#660) (0e972d2)
- manager: 修复了插件报错会导致整个设置面板无法显示的问题 (de9b6cf)
- manager: 修复了 OneBot 插件会导致机器人面板无法显示的问题 (#649) (3509827)
- sandbox: 修复了写入数据时机器人自身
selfId
错误的问题 (#661) (cdfba22)
Other Changes
Koishi 4.6.2
Notable Changes
- 我们为 core, cli 和 helpers 三个包提供了完整的日语和法语支持,感谢 @MaikoTan @mooondark @ilharp (#643) (#644) (#646) (c994713, 404835a, 1152340)
- 为了更好的维护体验,我们将 eval, teach 和 github 插件从本仓库中移动到了组织内仓库,同时将官方 scope 移除 (000ed61, e7687d9, 8883c98, b32a9b3, 710a6c6, 47d06d5, 0a6d24f)
Features
- client: 优化了 markdown 组件内链接的样式 (40f1723)
- core: 现在支持在指令参数类型中抛出 i18n 路径了 (9d54783)
- echo: [MAJOR] 新增了 unescape 选项并调整了 escape 选项的行为 (#642) (4fdbafd)
- mongo: 新增了
virtualKey
配置项,允许使用 _id 存储主键以降低空间占用 (cordiverse/minato@adaccae, cordiverse/minato@cdd8a4a) - mysql: 现在启动时将自动增量创建 unique index 了 (cordiverse/minato@bc101b2)
- onebot: 新增了
bot.qqguildPlatform
配置项,用于自定义 QQ 频道的平台名 (fa57cdf)
Bug Fixes
- core: 修复了不配置
proxyAgent
会导致 WebSocket 连接失败的问题 (#639) (8954f85) - core: 修复了使用快捷方式时部分类型的参数不能正常解析的问题 (#614) (#648) (12ae094)
- core: 修复了使用
value
自定义值的选项不会显示在帮助中的问题 (#656) (230c658) - core: 修复了被重定向的多级指令没有正确解析的问题 (#540) (#652) (e5cb56b)
- orm: 修复了可能在建表完成前查询而导致报错的问题 (cordiverse/minato#1) (cordiverse/minato@67ac118)
- scripts: 修复了使用
-c
选项初始化控制台插件时模板错误的问题 (99f886b)