Releases: koishijs/koishi
Koishi 4.17.7
Notable Changes
- satori: 支持了
login.features
,用于判断平台支持哪些 API (satorijs/satori@31cb578) - satori: 支持了
login.proxyUrls
和/v1/proxy/
路由 (satorijs/satori@31cb578, satorijs/satori@f72ad6c) - satori: 支持了
bot.createUpload()
相关 API,用于上传文件 (satorijs/satori@4ae699b, satorijs/satori@fbfa005, satorijs/satori@8a9c6d3) - satori: Satori 服务器现在暴露为
ctx.satori.server
服务了 (satorijs/satori@7f795ab)
Features
- discord: 支持了以用户而非机器人身份登录 (satorijs/satori@325956a)
- discord: 支持了媒体元素的宽高等元信息 (satorijs/satori@c248b89)
- dumble: 针对
bin
中的导出自动生成 hashbang (cordiverse/dumble@9085ced) - http: 调用
ctx.http.ws()
时自动将http
协议转换为ws
协议 (cordiverse/http@42be858) - http:
ctx.http.file()
返回值中使用type
取代mime
(cordiverse/http@c2c6f96, satorijs/satori@9d22205) - http: 支持了
http/file
事件,允许下游支持更多协议的文件下载 (cordiverse/http@b6b3833) - minato: 初步支持了关系表 (cordiverse/minato#90) (cordiverse/minato@aade306)
- minato: 支持了在查询中使用对象嵌套表示 (cordiverse/minato#97) (cordiverse/minato@08e9c25)
Bug Fixes
- discord: 对于指令选项
required
永远为false
(satorijs/satori#272) (satorijs/satori@48bdc78) - kook: 修复了 WebSocket 关闭错误地使用了 1000 以外的错误码的问题 (satorijs/satori@d1bf75d)
- satori: 修复了 Bot API 请求的返回值没有转换字段的问题 (satorijs/satori@a6a8d8b)
Next Updates
以下变更属于开发中的 Cordis 生态,并不会影响 Koishi 的行为,但会在未来版本为 Koishi 提供更多功能。
-
Cordis 核心功能
- cordis: 只在加载插件的时候检测格式,修复了 HMR 会导致报错的问题 (cordiverse/cordis@d84c56c)
- loader: 修复了 ESM 导入 CJS 模块时出现双重
default
导致插件无法加载的问题 (cordiverse/cordis@f6f6b88) - loader: 重构了插件组的逻辑,初步支持了多配置文件功能 (cordiverse/cordis@92df648, cordiverse/cordis@94bd84d, cordiverse/cordis@348800c, cordiverse/cordis@0d3195f, cordiverse/cordis@c7eeecb, cordiverse/cordis@5f8cbb5, cordiverse/cordis@f94752d, cordiverse/webui@99eadfc)
-
Cordis WebUI
- client: 优化了部分 API 的类型签名 (cordiverse/webui@ac0598d)
- manager: 支持了插件配置更新与移动功能 (cordiverse/webui@af8a19a)
- notifier: 初步支持了
Notifier
服务 (cordiverse/webui@566e078, cordiverse/webui@bd477e5) - webui: 修复了 RPC 和 WebSocket 通信的边界情况 (cordiverse/webui@06b153d)
- webui: 修复了生产环境 CSS 没有正常加载的问题 (cordiverse/webui@e045a98)
- webui: 使用
CLIENT_CONFIG
代替KOISHI_CONFIG
(cordiverse/webui@72dbe80) - webui: 支持了基于 es-module-lexer 的安全模块导入变换 (cordiverse/webui@2c61921)
-
Satori WebUI
- 使用独立的仓库维护 Satori WebUI 相关插件 (satorijs/satori@9507f90, satorijs/webui@fd8c224, satorijs/webui@8debcd1, satorijs/webui@6dc04f3, satorijs/webui@5ef2d18)
- chat: 初步支持了聊天界面的基本功能 (satorijs/webui@357c73a, satorijs/webui@57e0497, satorijs/webui@be0a514, satorijs/webui@0da570e, satorijs/webui@bfb2c1d, satorijs/webui@0ea73a5, satorijs/webui@0647a49)
- database: 支持了
bot.getMessageList()
参数的默认值 (satorijs/webui@5e47911) - database: 初步建立了缓存数据的关系表 (satorijs/satori@a233ae4, satorijs/satori@2a44313, satorijs/webui@94bad05)
- 基于 Satori Protocol 1.1 实现了客户端侧的资源代理 (cordiverse/server@8ce351e, satorijs/webui@29b759b, satorijs/webui@9065dfc)
-
基础设施
- create: 支持通过
yarn create
创建 Cordis 或 Satori 项目 (cordiverse/cordis@223887b, satorijs/satori@a299a43) - create: 使用
readFile
而非require
读取package.json
(cordiverse/cordis@9ebab6f) - market: 初步实现了插件市场相关组件 (cordiverse/webui@e63d15a, cordiverse/webui@7d34483)
- registry: 初步实现了
RemoteScanner
,用于构建插件市场 (cordiverse/webui@2178f5c, cordiverse/webui@88bfaea)
- create: 支持通过
Other Changes
- chore: bump versions (e496ddb)
- refa: rename config to manager (cordiverse/webui@298df91)
- refa: migrate server-proxy to cordis (satorijs/satori@8c67cca)
- chore: bump versions (cordiverse/webui@413c0fe)
- chore: bump versions (cordiverse/cordis@d783997)
- refa: use cordis context for satori (satorijs/satori@dbd2c3d)
- refa: use Binary from cosmokit (satorijs/satori@bbfb578)
- chore: bump versions (cordiverse/dumble@ff9dfb3)
- chore: bump versions (cordiverse/cordis@24441f8)
- chore: bump versions (cordiverse/webui@d171d81)
- chore: bump versions (satorijs/satori@fb6955e)
- chore: bump versions (satorijs/webui@ebd4265)
- refa: refactor server-related plugins (koishijs/upstream@ea93aa3)
- chore: bump versions (koishijs/upstream@5d475ea)
Koishi 4.17.6
Features
- http: 支持了
ctx.http.isError
(用于取代HTTP.Error.is
) (cordiverse/http@f2d8908) - http: 将 HTTP 内置服务单独作为预装插件发布 (更新时将自动迁移) (4e2f9b7)
- koishi: 支持了
,
和_
作为大数的分隔符 (#1386) (be8bcb2) - minato: 支持了两表的左连接语义 (cordiverse/minato#89) (cordiverse/minato@06d6562)
- minato: 优化了部分 API 的类型签名 (cordiverse/minato@728b4d8)
- minato: 优化了
$.object()
,修复了 SQLite 对于 JSON 处理的一些边界情况 (cordiverse/minato#94) (cordiverse/minato@72ea137) - minato: 支持了完整的位运算操作符 (cordiverse/minato#93) (cordiverse/minato@4ad01c0)
- satori: 通过 Associate API 支持下游生态扩展 Bot API (satorijs/satori@3de44dc)
- yakumo: 适配了最新 Cordis Loader (cordiverse/yakumo@80985be)
Bug Fixes
- commands: 修复了添加的指令别名在配置文件中保存为
null
并且实际失效的问题 (koishijs/webui@b82f45b) - http: 修复了使用 ESM 时,WebSocket 的
proxyAgent
可能无法工作的问题 (cordiverse/http@19da9b9) - logger: 修复启动时产生大量日志可能导致崩溃的问题 (koishijs/webui#326) (koishijs/webui@02bc617)
- minato: 修复了请求长度为 0 的列表失败的问题 (cordiverse/minato#92) (cordiverse/minato@538b748)
- minato: 修复了 join-where-order 结构下的 SQL 异常问题 (cordiverse/minato#95) (cordiverse/minato@2673719)
- sqlite: 修复了对 BigInt 支持异常的问题 (cordiverse/minato#96) (cordiverse/minato@7f5926a)
- sqlite: 修复了启动时会修改
config
对象导致后续异常重载的问题 (cordiverse/minato@2c43c43)
Next Updates
以下变更属于开发中的 Cordis 生态,并不会影响 Koishi 的行为,但会在未来版本为 Koishi 提供更多功能。
-
loader: 重新设计并实现了 Loader API,具备完整的配置文件管理能力:
- 实现了
create
,update
,remove
操作 (cordiverse/cordis@e67ea4a) - 实现了完整的隔离域算法,包括隔离域更新机制、副作用回收、插件跨隔离域迁移等功能 (cordiverse/cordis@ea310e9, cordiverse/cordis@b9d4778, cordiverse/cordis@db9530a, cordiverse/cordis@d37e598, cordiverse/cordis@25e595f, cordiverse/cordis@b5b92f4, cordiverse/cordis@7ac5457, cordiverse/cordis@177ea0d)
- 支持了
entry.inject
,用于管理不同生态层级中的插件 (cordiverse/cordis@79c564a) - 支持了基于
--expose-internal
的插件导入,理论上支持了所有包管理器的依赖解析语义 (cordiverse/cordis@0fb99bd) - hmr: 修复了若干导致 HMR 失效的边界情况 (cordiverse/cordis@dc605cb)
- hmr: 仅在 HMR 成功时触发相关事件 (cordiverse/cordis@8fa2175)
- 实现了
-
webui: 初步实现了 Cordis WebUI,在 Koishi 的基础上有以下变化:
- 重构为纯 ESM (cordiverse/webui@a9980c7, cordiverse/webui@d04845d, cordiverse/webui@547caf0)
- 废弃了
DataService
并重新设计了数据推送机制 (cordiverse/webui@0fe9ace, cordiverse/webui@627b7fb) - 将现有的客户端事件机制改为通过 HTTP 通信,以便在更多场景下使用 (cordiverse/webui@30b9a42)
- 支持了客户端入口级别的 HMR,并解决了部分情况下 HMR 报错的问题 (cordiverse/webui@0da5434, cordiverse/webui@37fd46a)
- 支持了 UnoCSS 自动导入 (cordiverse/webui@c80a278)
- 提供了标准化的配置管理 HTTP API (cordiverse/webui@c453740, cordiverse/webui@e50b923)
- 配置管理支持了增量式更新,加载页面更迅速 (cordiverse/webui@23ee289)
-
registry: 实现了 @cordisjs/registry,在 Koishi 的基础上有以下变化:
- 支持了
manifest.exports
,允许在一个包中发布多个插件 (cordiverse/webui@ccf6cfb, cordiverse/webui@ae18578) - 支持了
manifest.ecosystem
,允许插件建立多级生态 (cordiverse/webui@a85dcc9)
- 支持了
-
database: 初步实现了 @satorijs/plugin-database,它为 Satori 提供了数据库能力,用于改善聊天应用的体验:
- 实现了
ctx.satori.database
服务 (satorijs/satori@4d0b4d1) - 通过
Span
算法实现了增量式、可靠、高并发的消息数据库 (satorijs/satori@4e90bab, satorijs/satori@0a199ab, satorijs/satori@e27ee3a, satorijs/satori@3654016, satorijs/satori@766f660, satorijs/satori@062bded, satorijs/satori@69ac82c, satorijs/satori@2abeded, satorijs/satori@152ff1e, satorijs/satori@05086e8, satorijs/satori@9600ef7, satorijs/satori@a3a6fd0)
- 实现了
Other Changes
- chore: fix missing dependency, fix #1393 (809e6da)
- chore: release v0.1 (cordiverse/webui@0990f20)
- chore: bump versions (cordiverse/yakumo@f3de46d)
- refa: migrate framework API (satorijs/satori@5172e2e)
- i18n: use esm import instead of require (cordiverse/minato@895f2bc)
- chore: bump versions (cordiverse/http@90e1608)
- chore: bump versions (cordiverse/cordis@6648355)
- chore: bump versions (cordiverse/minato@f178a94)
- refa: migrate to satori core and bot association (61e4248)
- test: use mock from node:test instead of jest mock (4d49bcc)
- chore: bump versions (satorijs/satori@28d8629)
- chore: bump versions (e496ddb)
Koishi 4.17.5
Notable Changes
- koishi: 使用 Associate API 重构了部分内部服务的实现 (satorijs/satori@8f16bf5) (cordiverse/cordis@d43f175) (cordiverse/server@7c61fb2) (cordiverse/minato@b11d596) (koishijs/webui@c1a839a) (6c0eaa0)
- minato: 支持了多数据库对接,这将允许未来将不同插件的数据存放在不同的数据库中 (cordiverse/minato#82) (cordiverse/minato#84) (cordiverse/minato@2f1f990)
Features
- cordis:
ctx.mixin()
支持用对象表示键映射了 (cordiverse/cordis@1ee7e8a) - discord: 支持了发送
<audio>
元素 (satorijs/satori#264) (satorijs/satori@df3ba5a) - minato: 支持使用 bigint 来表示 int64 数据类型 (cordiverse/minato#83) (cordiverse/minato#86) (cordiverse/minato@eb26c8e) (cordiverse/minato@38e2134)
- minato: 支持了
set
中的子查询 (cordiverse/minato#87) (cordiverse/minato@76316a2) - satori: 初步设计了一些与持久化数据相关的 API (satorijs/satori@e5829d1)
- server: 针对 80 和 443 端口优化了
server.selfUrl
(cordiverse/server@7984e91) - telegram: 支持了 media group,优化了消息解析 (satorijs/satori#261) (satorijs/satori#266) (satorijs/satori@46cc98d) (satorijs/satori@0a1bdc6)
Bug Fixes
- commands: 修复了若干可能会导致无法显示或数据异常的边界情况 koishijs/webui#323 (koishijs/webui@5e4def0)
- components: 修复了在输入框粘贴资源元素时无法正常显示的问题 (koishijs/webui#324) (koishijs/webui@95bbc19)
- element: 修复了带有插值的消息元素的解析行为 (satorijs/satori#270) (satorijs/satori@fc7b6a4)
- http: 请求参数中的空值应当被忽略而不是编码为
undefined
(satorijs/satori#262) (cordiverse/http@e8a216a) - koishi: 优化了
Database
的类型,修复了若干类型问题 (cordiverse/minato@40b5647) - loader: 修复了频繁调用
loader.writeConfig()
可能导致配置文件清空的问题 (174ac2b) - minato: 支持了在
extend()
,project()
等方法中使用.
的路径表示 (cordiverse/minato#81) (cordiverse/minato@9fe00a0) - mysql: 修复了 JSON 数据中的字段没有如预期初始化的问题 (cordiverse/minato#80) (cordiverse/minato@2e80446)
- mysql: 修复了
$.number()
作用于Date
时的时区问题 (cordiverse/minato#85) (cordiverse/minato@6a65bfc) - postgres: 修复了
DELETE
未对表名进行转义的问题 (cordiverse/minato#91) (cordiverse/minato@71ec8d7) - qq: 修复了缺失
session.event.message.content
的问题 (satorijs/satori#263) (satorijs/satori#267) (satorijs/satori@1c1716e) - satori: 修复了连接过程中的网络失败无法被捕获的问题 (satorijs/satori@8737af9)
- schema: 修复了对
object
/dict
类型进行simplify
操作时可能丢失属性的问题 (koishijs/webui#323) (shigma/schemastery@1416b55)
Next Updates
以下变更属于开发中的 Cordis 生态,并不会影响 Koishi 的行为,但会在未来版本替换 Koishi 的相关实现。
- webui: implement core (cordiverse/webui@01d3988)
- webui: setup webui server (cordiverse/webui@583de0f)
- client: add components package (cordiverse/webui@3aa55b2)
- client: add client package (cordiverse/webui@516673a)
- client: fix connection (cordiverse/webui@1849af7)
- insight: add plugin insight (cordiverse/webui@682dcc1)
- registry: basic implementation (cordiverse/webui@22ff8fd)
- loader: support experimental write api (cordiverse/cordis@16ae5e5)
- loader: debounced write config (cordiverse/cordis@3093808)
- config: setup config plugin (cordiverse/webui@0f8048b)
Other Changes
- chore: setup project (cordiverse/webui@1ed5930)
- chore: bump versions (50e4e0c)
- chore: fix lint (satorijs/satori@2e12d9e)
- chore: fix tsconfig types (cordiverse/minato#88) (cordiverse/minato@dd32785)
- chore: fix lint (satorijs/satori@ba98f5c)
- refa: move chat components to satori (koishijs/webui@e834f6e)
- tests: migrate back to mocha (cordiverse/cordis@a3b73d1)
- chore: enhance global messages (koishijs/webui@22b4848)
- refa: merge file into core (cordiverse/http@6ca21e9)
- chore: bump versions (cordiverse/server@1dd0847)
- chore: bump versions (cordiverse/cordis@815ee89)
- chore: bump versions (cordiverse/minato@fe8c717)
- chore: bump versions (satorijs/satori@f89d6c3)
- chore: bump versions (368ab67)
- chore: bump versions (koishijs/upstream@9a3b75d)
- chore: fix missing dependency (#1393) (809e6da)
Koishi 4.17.4
Notable Changes
- 支持了带有运行时类型的表达能力,具体而言会包含以下特性:
- 实验性地支持了
database.define()
用于创建自定义类型,自定义类型可以控制到内置类型的编码和解码过程 - 对于对象和数组类型,可以深入到内部字段进行类型定义
- 内置支持了
binary
,bigint
等类型 - 相关的 PR 和 commit:(cordiverse/minato#74) (cordiverse/minato#78) (cordiverse/minato#79) (cordiverse/minato@2e85244, cordiverse/minato@7f7a000, cordiverse/minato@037cd6a, cordiverse/minato@a90bbfe)
- 实验性地支持了
Features
- cosmokit: 支持了更多与
ArrayBuffer
相关的工具函数 (shigma/cosmokit@a41d4ad, shigma/cosmokit@2da9c0c) - lark: 支持了完整内部接口 (satorijs/satori#249) (satorijs/satori@82ccacb)
- market: 优化了关于插件市场搜索源的提示信息 (koishijs/webui@558fd2e)
- qq: 支持了
bot.deleteMessage
(satorijs/satori#252) (satorijs/satori@92e5626)
Bug Fixes
- dingtalk: 修复了内部接口实现错误的问题 (satorijs/satori#253) (satorijs/satori@350472a)
- file: 修复了
http.file()
返回值与预期类型不符的问题 (cordiverse/http#5) (cordiverse/http@59db019) - lark: 修复了资源文件反向代理无法正常访问的问题 (satorijs/satori#258) (satorijs/satori@1453fc9)
- minato: 修复了部分情况下嵌套的对象结构无法正确推断类型的问题 (cordiverse/minato@048b64c)
- qq: 修复了部分情况下语音发送失败的问题 (satorijs/satori#254) (satorijs/satori@57e1617)
- satori: 修复了内部接口 API 的实现问题 (satorijs/satori#259) (satorijs/satori@ac6d163)
- utils: 修复了
merge
方法的安全性问题 (985ca8e)
Other Changes
- chore: bump versions (e83e6bd)
- chore: bump versions (cordiverse/minato@8897e22)
- chore: bump versions (koishijs/upstream@b4e4ee1)
- feat: add server-temp (cordiverse/server@93536a0)
- chore: migrate server-temp to cordis (satorijs/satori@bea15f6)
- chore: bump versions (satorijs/satori@a99d844)
- chore: bump versions (50e4e0c)
Koishi 4.17.3
Features
- cordis:
ctx.effect()
支持带参数的回调函数 (cordiverse/cordis@136b5f9) - minato: 优化了
database.join()
的类型签名 (cordiverse/minato@73c1cb1) - qq: 支持了不依赖
server.temp
服务的发图 (satorijs/satori#250) (satorijs/satori@64d25a4) - qq: 支持了非 silk 格式的音频发送 (需要另外安装服务) (satorijs/satori#243) (satorijs/satori@c464f59)
- satori: 支持了
before-send
和send
事件 (satorijs/satori@d300ccc) - schema: 优化了数组长度检验,并在配置界面中也支持了相关功能 (shigma/schemastery@0de846e)
- undios: 支持了
ETIMEDOUT
,用于更好地兼容 Axios 代码 (cordiverse/http@213e6c8) - undios: 支持了
config.signal
(cordiverse/http@3247ea2)
Bug Fixes
- satori: 修复了
READY
信令缺少status
字段的问题 (#1367) (satorijs/satori#241) (satorijs/satori#242) (satorijs/satori@94d40c5) - satori: 修复了消息事件的接收和发送部分细节与协议规范不一致的问题 (satorijs/satori@8321ff6)
- satori: 修复了发送的 API 请求缺少请求头的问题 (satorijs/satori#247) (satorijs/satori@321b8e3)
- schema: 修复了使用
simplify
时dict
属性可能丢失的问题 (koishijs/webui#306) (shigma/schemastery@e53aeff) - schema: 修复了
array
类型添加项目无反应的问题 (#1381) (shigma/schemastery@f61fafd) - sqlite: 修复了 cjs / esm 混用导致的不支持问题 (cordiverse/minato@1db63a4)
- undios: 修复了
AbortController
阻止了流读出的问题 (cordiverse/http#4) (cordiverse/http@02e260f) - yakumo: 请求不到包时将输出警告,而不是直接报错退出 (cordiverse/yakumo@c22456e)
- yakumo: 修复了使用别名或输入重复包名时会导致执行重复的问题 (cordiverse/yakumo@81bd683)
Next Changes
以下变更属于开发中的 Cordis 生态,并不会影响 Koishi 的行为,但会在未来版本替换 Koishi 的相关实现。
- loader: 修复了缺少
id
时插件无法正常加载的问题 (cordiverse/cordis@b811e66)
Other Changes
- chore: bump versions (10047fb)
- chore: bump versions (cordiverse/yakumo@6811721)
- chore: link to the correct issue (koishijs/webui#321) (koishijs/webui@4855bb6)
- chore: bump versions (cordiverse/minato@1a01bb3)
- chore: bump versions (cordiverse/cordis@1a3f50a)
- chore: bump versions (satorijs/satori@214b4f6)
- chore: bump versions (e83e6bd)
Koishi 4.17.2
Notable Changes
- cordis: 实验性地引入了
ctx.set()
,能够资源安全地设置一个服务 (cordiverse/cordis@cfb2718) (cordiverse/cordis@6deca56)
Features
- satori: 优化了 WebSocket 错误的日志输出 (satorijs/satori@6d916e5)
- undios: 支持了
validateStatus
(cordiverse/http@3ca4816) - yakumo: 支持了通过
intercept
来设置exclude
和alias
(cordiverse/yakumo#15) (cordiverse/yakumo#17) (cordiverse/yakumo@27240d1) - yakumo: 将插件导出为独立的入口文件 (cordiverse/yakumo@1623516)
Bug Fixes
- inspect: 修复了引用回复时部分数据显示为 undefined 的问题 (#1374) (37885ab)
- proxy-agent: 修复了 HTTP 代理无法代理 HTTPS 请求的问题 (cordiverse/http#3) (cordiverse/http@0087bf1)
Next Changes
以下变更属于开发中的 Cordis 生态,并不会影响 Koishi 的行为,但会在未来版本替换 Koishi 的相关实现。
- loader: 支持了不存在配置文件时自动创建 (cordiverse/cordis@0d75c0b)
Other Changes
- chore: bump versions (f875413)
- refa: migrate to cordis latest (koishijs/webui@0b3f91b)
- chore: bump versions (koishijs/webui@d8d4845)
- chore: bump versions (koishijs/upstream@699c4f4)
- refa: rename trace to origin (cordiverse/cordis@29dc0df)
- chore: bump versions (cordiverse/cordis@a3e9a7d)
- chore: bump versions (cordiverse/cordis@581115c)
- chore: bump versions (satorijs/satori@f65dfac)
- chore: bump versions (10047fb)
- chore: bump versions (cordiverse/yakumo@6811721)
Koishi 4.17.0
此版本前有若干个预发布版本。要了解此版本的全部特性,可以进一步查看预发布版本的更新日志。
- https://github.com/koishijs/koishi/releases/tag/4.17.0-alpha.0
- https://github.com/koishijs/koishi/releases/tag/4.17.0-beta.0
Features
- cordis: 支持了
Service.extend
方法,以原型链派生的方式创建新的服务实例 (cordiverse/cordis@64f19b9) - cordis: 重新调整了若干 symbol 的命名,并将所有 symbol 统一导出为
symbols
(cordiverse/cordis@8144a8d) (cordiverse/cordis@7e9e378) - cordis: 优化了
Service
基类的构造函数,使之支持更接近框架的调用方法 (cordiverse/cordis@238a5fd) (cordiverse/cordis@b3bf879) - discord: 支持了斜线指令中选项和参数的
required
的同步 (satorijs/satori@4dbb629) - koishi: 实验性地支持了
config.prefixMode
(#1364) (ff53b75) - undios: 实验性的支持了
http.decoder()
,可动态扩展responseType
(cordiverse/http@306e721) - yakumo: 支持了
upgrade --next
,即升级全部依赖到最新版本 (cordiverse/yakumo@5fc9660) - yakumo: 支持了
version -P, --stable
,用于去除预发布后缀 (cordiverse/yakumo@dc2c94f)
Bug Fixes
- element: 修复了缺少
children
属性导致 JSX 类型报错的问题 (satorijs/satori@e476344) - postgres: 修复了上次升级导致的语法错误的问题 (cordiverse/minato#73) (cordiverse/minato@35ff516)
- qq: 修复了对 trace-id 功能的日志输出 (satorijs/satori#237) (satorijs/satori@6b50991)
- undios: 修复了
data
和keepAlive
不生效的问题 cordiverse/http#2 (cordiverse/http@6dd109e) - undios: 修复了对请求体的编码问题,现在能够自动识别多种类型了 (cordiverse/http@4ccbd3e)
- undios: 修复了
ws()
没有同步返回的问题 (cordiverse/http@f94a7fb)
Changes on Cordis Next
以下变更属于开发中的 Cordis 生态,并不会影响 Koishi 的行为,但会在未来版本替换 Koishi 的相关实现。
- loader: 支持了插件组的细粒度更新 (cordiverse/cordis@c8181db)
- loader: 将
Loader
类实现为服务 (cordiverse/cordis@f77fb13) - loader: 将
fullReload()
重命名为exit()
(cordiverse/cordis@d280231) - loader: 支持了当插件更新自身配置时写回配置文件 (cordiverse/cordis@7617fd4)
- loader: 支持了当插件停用自身时写回配置文件 (cordiverse/cordis@e54e8f3)
- loader: 支持了基于
options.intercept
的服务拦截 (cordiverse/cordis@0041327) - loader: 初步支持了基于
options.isolate
的服务隔离 (cordiverse/cordis@a763e1c) (cordiverse/cordis@cf65001)
Other Changes
- chore: bump versions (781125e)
- refa: use dumble under the hood (cordiverse/yakumo@280f967)
- refa: migrate form-data (satorijs/satori@f60ca8c)
- refa: migrate undios http response type (satorijs/satori@3ca9245)
- docs: entry points (cordiverse/dumble@37962bf)
- refa: migrate Header and Error.is (satorijs/satori@3224f5d)
- docs: add more options (cordiverse/dumble@53adae0)
- test: dropAll for mongo migration tests (cordiverse/minato@5833775)
- docs: add basic usage (cordiverse/http@72cc88d)
- docs: config and response (cordiverse/http@4d42ae9)
- chore: bump versions (cordiverse/cordis@6327f6f)
- chore: bump versions (satorijs/satori@b9db5b6)
- chore: bump versions (cordiverse/minato@6196cad)
- chore: bump versions (f875413)
- refa: migrate to cordis latest (koishijs/webui@0b3f91b)
Koishi 4.17.0-beta.0
这是一个预发布版本,主要涉及底层架构调整,并未包含新功能。建议升级前备份整个目录,并确保同时升级所有依赖。
Notable Changes
-
cordis: 支持了函数式服务,只需实现
Context.invoke
方法,即可支持将服务以方法的形式暴露在上下文对象上 (cordiverse/cordis@b6197dd, cordiverse/cordis@f692eb8, cordiverse/cordis@4fbf8bf, cordiverse/cordis@cab9ce1) -
undios: 使用
fetch
API 重构了http
服务,并以 undios 命名发布为插件 (#1181) (cordiverse/http@ce0d4b3, cordiverse/http@565250f, cordiverse/http@6f0776b, cordiverse/http@a0dc5f8, cordiverse/http@c2ff28a, cordiverse/http@67850ce, cordiverse/http@1e74c3c, cordiverse/http@1e2d09f, cordiverse/http@e918da6, satorijs/satori@cf899ea, satorijs/satori@5841dbd)- 与代理相关的功能被迁移到了 undios-proxy-agent 包中,目前内置于整合包中 (cordiverse/http@fea2f99, cordiverse/http@45a1438, cordiverse/http@94a4248, cordiverse/http@e6dc7e3, cordiverse/http@d89a750, ac33e97)
- 与文件相关的 API 被迁移到了 undios-file 包中,目前内置于 Satori 中 (cordiverse/http@f0a3dd1, cordiverse/http@c07af16)
-
dumble: 发布了一个名为 dumble 的工具,该工具用于零配置构建 TypeScript 项目,现已内置于模板项目工作区中,作为
build
命令的一部分 (cordiverse/dumble@f053f90, cordiverse/dumble@bd68eef)- 支持了打包
devDependencies
(cordiverse/dumble@97e886c) - 对源文件目录中的
.d.ts
文件进行复制而非编译 (cordiverse/dumble@8d52904) - 优化了路径解析的性能和行为 (cordiverse/dumble@d541bab, cordiverse/dumble@c65721a)
- 输出文件中的文件名现在将基于当前项目的路径而非工作区根路径 (cordiverse/dumble@f73f282)
- 支持了打包
Features
- core: 实验性地支持了
ctx.intercept()
相关功能 (cordiverse/cordis@baea8d7) - logger: 基于函数式服务特性,支持了
ctx.logger.info()
等 API (cordiverse/cordis@9d11895)
Changes on Cordis Next
以下变更属于开发中的 Cordis 生态,并不会影响 Koishi 的行为,但会在未来版本替换 Koishi 的相关实现。
- hmr: 支持了配置项国际化 (cordiverse/cordis@69e5dd6)
Other Changes
- chore: bump versions (3e79a4f)
- refa: separate builder class (cordiverse/minato@3a356d2)
- chore: migrate to core monorepo, rename to http (cordiverse/http@4885102)
- chore: initial commit (cordiverse/dumble@179e1c2)
- chore: setup project (cordiverse/dumble@744f949)
- test: add example node-classic (cordiverse/dumble@5ec633f)
- test: add example node-next (cordiverse/dumble@b8fb407)
- test: add example node-hybrid (cordiverse/dumble@6f4c67a)
- test: add example cross-platform (cordiverse/dumble@06952a1)
- test: add tsc output (cordiverse/dumble@88a8577)
- test: add example wildcard (cordiverse/dumble@6486547)
- refa: rename package folders (cordiverse/http@1af22fe)
- chore: add readme (cordiverse/http@06ef47a)
- test: setup test workspace (cordiverse/dumble@a94bdd6)
- chore: setup eslint (cordiverse/dumble@8c581c0)
- chore: setup codecov (cordiverse/dumble@688855d)
- docs: add setup (cordiverse/dumble@b0a91f8)
- docs: add credits (cordiverse/dumble@838607d)
- chore: bump versions (cordiverse/cordis@1ea5ddc)
Koishi 4.17.0-alpha.0
这是一个预发布版本,主要涉及底层架构调整,并未包含新功能。
Notable Changes
- cordis: 引入了与 Koishi 类似的 Loader / HMR 等功能,现已实装于 Yakumo 等框架中,并将在未来替换 Koishi 的底层实现 (cordiverse/cordis@413a999, cordiverse/cordis@fd408a4, cordiverse/cordis@f58cb36)
- cordis: 将核心功能发布到 @cordisjs/core,而 cordis 将自带 Timer 和 Logger 服务 (cordiverse/cordis@94b114a, cordiverse/cordis@1efd00b, cordiverse/cordis@061043b, cordiverse/cordis@2a7a947, satorijs/satori@3ff856a, satorijs/satori@8f96625)
- minato: 现在 Minato 也将作为 Cordis 生态的一部分,可以直接作为 Cordis 插件使用 (cordiverse/minato@aef9dba, cordiverse/minato@d889604, cordiverse/minato@228fff5, cordiverse/minato@cdf8309)
- minato: 为 Minato 侧的数据库插件添加了配置约束,同时移除了一些与 Koishi 耦合的默认值;这些默认值将在新版本 Koishi 启动时自动写入配置文件,以保证向下兼容性 (cordiverse/minato@25ed14e, cordiverse/minato@99b2baf, 61c7d2c)
Features
- cordis: 简化了 Cordis 的类型,修复了过度使用泛型导致派生框架类型报错的问题 (cordiverse/cordis@e34e9cf) (cordiverse/cordis@c1ac7b0)
- cordis: 支持了
Service
类不传入一参数ctx
的情况,此时将自动创建一个根上下文 (cordiverse/cordis@e0d96b4) - cordis: 新增了
internal/info
事件 (cordiverse/cordis@159742e) - minato: 新增
driver.dropAll()
方法,用于对应实现database.dropAll()
(cordiverse/minato@fb984b3) - qq: 引入了更多输出日志 (satorijs/satori#236) (satorijs/satori@b0f6d63)
- tsc: 生成的
.dts
文件将根据exports
决定 (cordiverse/yakumo@f0c742a)
Bug Fixes
- cordis: 修复了使用
ctx.effect()
创建的副作用不会自动回收的问题 (cordiverse/cordis#8) (cordiverse/cordis@957e74d) - discord: 修复了
bot.getMessage()
多次或递归触发会导致 429 的问题 (satorijs/satori@e5825f1)
Other Changes
- chore: bump versions (6cc2f9b)
- chore: refactor to monorepo (cordiverse/cordis@21a86a3)
- chore: patch tsx to fix CI error (cordiverse/cordis@502e63f)
- chore: remove redundant dependencies (cordiverse/cordis@d3eec26)
- chore: bump versions (cordiverse/yakumo@970ea6d)
- refa: temporarily allow importing ts extensions (cordiverse/cordis@bdd36a0)
- types: use
Options
instead ofConfig
if it is not actual config (satorijs/satori@979f2da) - chore: bump versions (satorijs/satori@27822a0)
- chore: add database-* plugins (koishijs/upstream@9a69ef8)
- chore: bump versions (koishijs/upstream@b2850a5)
- chore: migrate database-* plugins to upstream (64e13d0)
Koishi 4.16.8
Notable Changes
- minato: 完整支持了子查询的所有情况 (#595) (cordiverse/minato#41) (cordiverse/minato@dcbdf81)
Features
- axios: 支持了
request.keepAlive
配置项 (satorijs/satori#235) (satorijs/satori@5df1a6f) - client: 组件内的
useConfig()
将遵守由ctx.settings()
设置的默认值 (koishijs/webui@4c8378c) - cordis: 当内部错误信息事件未被监听时将通过
console
发送错误信息 (cordiverse/cordis@68faf23) - cordis: 支持了
ctx.effect()
内的回调函数返回带有dispose
方法的对象了 (cordiverse/cordis@86e0b80) - cordis: 当在上下文中访问带有
$
或_
前缀的属性时将不进行注入检查 (cordiverse/cordis@0edd83e) - koishi: 当调用
ctx.broadcast()
时传入的频道不存在时,将会显示警告 (cba935f) - esbuild: handle
.cjs
and.mjs
extensions (cordiverse/yakumo@c1f67b2) - notifier: 支持通过
notifier.message()
在控制台弹出消息 (koishijs/webui@42de242) - qq:
<passive>
组件支持了message-id
和event-id
(satorijs/satori#234) (satorijs/satori@1bd24ac) - market: 支持了在客户端设置批量操作模式、移除配置确认等行为 (koishijs/webui@bc0d11f)
- market: 支持了在客户端设置插件市场中作者头像的镜像站 (koishijs/webui@8ad80b9)
- market: 支持了从 Yarn 安装日志中分离不同等级的日志信息 (koishijs/webui#294) (koishijs/webui@3a5d055) (koishijs/webui@03a38e2)
- minato: 支持了
$.regex
,优化了 MongoDB 对于特定正则查询的兼容性和速度 (cordiverse/minato#71) (cordiverse/minato@70109f6) - tsc: 构建完成时将自动列出生成的文件 (cordiverse/yakumo#14) (cordiverse/yakumo@3916c33)
Bug Fixes
- client: 修复了部分错误信息未能显示的问题 (koishijs/webui@feb2a45)
- client: 修复了部分页面的右键菜单会改变顶部菜单行为的问题 (koishijs/webui#260) (koishijs/webui@eafc280)
- client: 修复了多个页面中注册的快捷键会互相冲突的问题 (koishijs/webui#255) (koishijs/webui@498e486)
- console: 修复了
fs.strict
导致克隆 WebUI 仓库的开发环境无法顺利访问控制台的问题 (koishijs/webui#301) (koishijs/webui@250a969) - console: 修复了部分模块导入报错的问题 (koishijs/webui@fdaf99e)
- market: 修复了在确认移除配置窗口操作后,安装窗口不会自动关闭的问题 (koishijs/webui#300) (koishijs/webui@9061bf8)
- market: 修复了使用 npmmirror 作为搜索源时,部分内容无法显示的问题 (koishijs/webui#304) (koishijs/webui@1d27d5d)
- minato: 修复了与嵌套属性相关的部分类型错误 (cordiverse/minato#56) (cordiverse/minato#72) (cordiverse/minato@6621d2c)
- mocha: 修复了低版本 Node.js 无法使用
import.meta.resolve
的问题 (cordiverse/yakumo@bd2e921) - protocol: 修复了 Satori 适配器无法顺利接收和发送消息的问题 (satorijs/satori#177) (satorijs/satori@ff233e1)
- satori: 修复了
server
服务注入检查报错的问题 (satorijs/satori@5c0b8d6) - yakumo: 修复了对
--import
选项的支持 (cordiverse/yakumo@062dfe2)
Other Changes
- chore: bump versions (57429dd)
- chore: bump versions (satorijs/satori@8217e1f)
- refa: fix server exports for cjs (a82c25f)
- refa: move dev server logic to client (koishijs/webui@3abb736)
- chore: remove unnecessary tsconfig.json (#1352) (eb42c4d)
- refa: support tsconfig path for client lib (koishijs/webui@c8b506f)
- chore: bump versions (koishijs/webui@90bf879)
- refa: refactor client into plugins (koishijs/webui@1451c26)
- refa: refactor client into plugins (koishijs/webui#305) (koishijs/webui@275d7c8)
- chore: add esm exports (cordiverse/cordis@205ff60)
- chore: bump versions (cordiverse/minato@be01069)
- chore: bump versions (satorijs/satori@572979c)
- chore: bump versions (koishijs/webui@7ae9ac8)
- chore: bump versions (6cc2f9b)