Releases: koishijs/koishi
Releases · koishijs/koishi
Koishi 4.17.12
Features
- cordis: 当
scope.update()
传入非法配置时,插件会停止运行而非抛出错误 (cordiverse/cordis@5589bca) - koishi: 修复了带有
args
的指令别名不正常工作的问题 (#1437) (29e8470) - koishi: 将指令名称中的
_
统一替换为-
并支持模糊匹配 (6ef132b) - manager: 插件管理页面新增了「介绍」视图,用于显示 README 文件 (cordiverse/webui@79d2b8b)
- minato: 支持了完整的索引 API (cordiverse/minato#102) (cordiverse/minato@424d8f2)
- server: 实验性地支持了 WebHook API (satorijs/satori@8b8bbfb)
- yakumo: 支持了
run
指令,用于批量运行scripts
下的脚本 (cordiverse/yakumo@80ef61d) - yakumo: 支持了后缀为
*
的别名 (cordiverse/yakumo@5bd357d) - yakumo: 实验性支持了指令的
before:
和after:
钩子 (cordiverse/yakumo#23) (cordiverse/yakumo@6fe266b)
Bug Fixes
- cli: 修复了少见情况下配置文件清空的问题 (#1443) (bd69a04) (cordiverse/cordis@2b007fe)
- cordis: 修复了可追踪对象上
.toString()
行为不一致的问题 (cordiverse/cordis#14) (cordiverse/cordis@f58c078) - cordis: 修复了服务的
in
判断和不可变对象报错的问题 (cordiverse/cordis@aa4f973) - create: 修复了创建模板项目时文件移动错误的问题 (cordiverse/cordis@db83b69)
- discord: 修复了
THREAD_CREATED
类型消息事件解析报错的问题 (satorijs/satori#306) (satorijs/satori@a6bbf1a) - koishi: 修复了手动调用
session.execute()
也会捕获引用回复内容的问题 (#1441) (1f41c20) - satori: 修复了
prepare
失败不会触发重连的问题 (satorijs/satori#307) (satorijs/satori@345a9c6) - satori: 修复了对
Bot
先后调用.stop()
和.start()
会出现多重连接的问题 (satorijs/satori#308) (satorijs/satori@b4843eb) - sqlite: 优化了
path
父级目录不存在时的报错信息 (cordiverse/minato#104) (cordiverse/minato@399e84d) - telegram: 修复了带有 at 的斜线指令无法触发的问题 (#1439) (satorijs/satori@91414cc)
- telegram: 修复了不合法的指令名 (例如含有中文) 导致所有斜线指令全部无法注册的问题 #1433 (satorijs/satori@7c603ae)
- telegram: 修复了
mention
和text_mention
内容的解析 (satorijs/satori@bb02f1d) - tsc: 不再错误地根据
peerDependencies
排序工作区 (cordiverse/yakumo@b917f17)
Other Changes
- chore: bump versions (2e7e3e5)
- refa: refactor import config (cordiverse/cordis@81e98a7)
- chore: remove .npmignore (cordiverse/minato@3acd880)
- refa: fix regression in last refactor (cordiverse/cordis@50d097b)
- chore: update outdated urls (cordiverse/minato@6aac3f1)
- chore: bump versions (cordiverse/cordis@9bdbc8b)
- chore: bump versions (cordiverse/minato@ac9b6f5)
- chore: bump versions (satorijs/satori@8ef03a7)
- chore: bump versions (d06e1e9)
Koishi 4.17.11
Features
- cordis: 增加了
cordis/loader
导出 (cordiverse/cordis@fa78ba8) - cordis: 在不支持 HMR 的 Node.js 版本下仍然正常启动 (cordiverse/cordis@821d7b4)
- cordis: 优化了服务访问报错信息的堆栈 (cordiverse/cordis@b785eff)
- http: 支持了向
responseType
传入函数 (cordiverse/http@b2da31b) - koishi: 实验性地支持了
captureQuote
属性,运行特定指令避免捕获引用内容 (#1432) (4dd30f2) - koishi: 将
session.execute()
的返回值转化为Element[]
(#1409) (d69e934) - protocol: 废弃了协议中使用
selfId
的部分,建议使用Login
相关字段 (satorijs/satori@22d57a7) - qq: 将内部日志等级统一切换为 debug (satorijs/satori#300) (satorijs/satori@5b258de)
- sandbox: 支持了
guild-member-*
系列事件 (koishijs/webui@f63322a) - sandbox: 支持了通过本地服务器实现本地文件发送功能 (koishijs/webui@a4fb464)
- server: 支持了
/admin/login.list
API (satorijs/satori@ef7160b) - webui: 支持向
webui.addEntry()
接收的回调函数传入Client
参数 (cordiverse/webui@3702e06)
Bug Fixes
- koishi: 修复了
cmd.parse()
时fallback
设置会覆盖alias
设置的问题 (#1437) (62332c3) - qq: 修复了重连失败的问题 (satorijs/satori#297) (satorijs/satori@1d931b4)
- qq: 修复了私聊场景无法发送媒体文件的问题 (satorijs/satori#299) (satorijs/satori@d7c681d)
- qq: 修复了 QQ 服务端总是返回异常数据导致报错的问题 (satorijs/satori#301) (satorijs/satori@09a931c)
- qq: 修复了群聊场景部分情况下发送文件失败的问题 (satorijs/satori#302) (satorijs/satori@d9f87d9)
- qq: 修复了不支持新版 audit 数据格式的问题 (satorijs/satori#303) (satorijs/satori@83742e6)
- satori: 修复了桥接 Satori 缺失
session.quote
的问题 (#1395) (satorijs/satori@5854fed)
Other Changes
- chore: bump versions (7c9d21d)
- chore: bump versions (cordiverse/webui@501ebfd)
- chore: add missing devDep and fix tsconfig (satorijs/satori@f1a1c28)
- chore: update deps, fix peerDep mismatch (cordiverse/webui@49225f1)
- chore: remove .npmignore (2020a38)
- chore: use @minatojs/driver-memory directly (3bb19f4)
- chore: add exports and devDeps (cordiverse/cordis@b01cec0)
- chore: bump versions (cordiverse/cordis@f53d475)
- chore: bump versions (satorijs/satori@d42ba28)
- chore: bump versions (2e7e3e5)
Koishi 4.17.10
Features
- cordis: 支持了
ctx.mixin()
的副作用回收 (cordiverse/cordis@773a762) - create: 初始化项目时将写入
packageManager
(cordiverse/cordis@2bdbf0c) - discord: 支持使用
global_name
属性作为user.nick
(satorijs/satori#285) (satorijs/satori@4a1f487) - discord: 实验性地支持了
<sticker>
元素 (未来将会统一为标准元素) (satorijs/satori#284) (satorijs/satori@8d1a614) - qq: 更新了官方 API 的鉴权方式和事件回复 (satorijs/satori#290) (satorijs/satori@4c68dc2)
- qq: 支持了获取群成员头像 (satorijs/satori#293) (satorijs/satori@eebde78)
Bug Fixes
- cordis: 修复了打包器环境下的
process.cwd()
调用失败的问题 (cordiverse/cordis@6d7cfe6) - cordis: 适配了 Node 20.13 以上版本的模块内部 API (cordiverse/cordis@624d27f)
- inspect: 修复了引用回复消息
messageId
缺失的问题 (#1417) (e4fe81b) - koishi: 解析指令参数时支持提取内部资源元素 (#1400) (eb7714a)
- koishi: 指令选项别名支持使用 CJK 字符了 (#1424) (605b1b7)
- koishi: 修复了
ctx.broadcast()
永远报错失败的问题 (#1418) (10e359a) - qq: 修复了部分情况下
<audio>
的发送 (satorijs/satori#289) (satorijs/satori@3bba22c) - qq: 修复了格式更改后
session.timestamp
的解析 (satorijs/satori#296) (satorijs/satori@1080073) - schema: 适配了新版 element-plus 的样式变动 (shigma/schemastery@69fe8ef)
Other Changes
- chore: bump versions (b246289)
- refa: refactor cordis api (cordiverse/http@d9725b1)
- chore: bump versions (cordiverse/http@83bbf8c)
- chore: re-order mixed decl, fix koishijs/webui#331 (koishijs/webui@14ec1b6)
- refa: use message encoder for mock bots (e97a631)
- chore: bump versions (cordiverse/cordis@2d4a1f6)
- chore: bump versions (shigma/schemastery@35d8ef9)
- chore: fix import and config (cordiverse/webui@01e05a0)
- chore: bump versions (satorijs/satori@57047bc)
- chore: bump versions (7c9d21d)
Koishi 4.17.9
Notable Changes
- 实验性地支持了上下文追踪机制,允许服务直接使用
this.ctx
访问来源上下文;同时调整了inject
检测机制,服务中访问其他服务应遵循服务自身的上下文而非请求者上下文;新增了ctx.reflect
内置服务;支持了服务混入中使用 getter / setter (cordiverse/cordis@0a0da4b, cordiverse/cordis@c9be0aa, cordiverse/cordis@90257b2, cordiverse/cordis@e06b3f3, cordiverse/cordis@1eba29f, cordiverse/cordis@cb0d85d, cordiverse/cordis@9909463, cordiverse/cordis@f904dc4, cordiverse/cordis@0956cb2, cordiverse/cordis@49f0cf8, cordiverse/cordis@d373e08, satorijs/satori@b61c1e0, f57e86d, cordiverse/webui@1ff66d1, cordiverse/minato@bb8e2e9, cordiverse/cordis@b005e94, koishijs/webui@53b7dea)
Features
- cordis: 支持了更通用的
Inject
字典结构 (cordiverse/cordis@acffbd3) - discord: 支持了更多的 Koishi 指令参数类型 (satorijs/satori#280) (satorijs/satori@58a0064)
- discord: 支持了
<code-block>
元素 (satorijs/satori#279) (satorijs/satori@f63c7d1) - koishi: 支持了 bigint 参数类型 (#1410) (5f1610e)
- logger: 支持了
logger.meta
,并允许扩展类型 (shigma/reggol@b32dfdd, cordiverse/cordis@ebaeded) - minato: 修复了关系 API 设计和实现的一些问题 (cordiverse/minato#99) (cordiverse/minato#101) (cordiverse/minato@308229e, cordiverse/minato@60e474f)
- qq: 为
interaction/button
事件增加了data
字段 (satorijs/satori#281) (satorijs/satori@e5a70df)
Bug Fixes
- cordis: 修复了部分内部事件缺少
this
参数的问题 (cordiverse/cordis@a2ea5b1) - discord: 支持了子指令的斜杠交互 (satorijs/satori#271) (satorijs/satori@6802853)
- explorer: 临时停用了 watcher 以修复
EMFILE
报错 (koishijs/webui#328) (koishijs/webui@232567c) - http: 修复了
data:
URL 的正则匹配 (cordiverse/http@f6138b5) - mongo: 修复了事务执行错误 (cordiverse/minato#100) (cordiverse/minato@08540c0)
- protocol: 修复了
channel.type
实现与标准不符的问题 (satorijs/satori@58cb423) - qq: 修复了
data:
URL 的正则匹配 (satorijs/satori@bbe05fe)
Next Updates
以下变更属于开发中的 Cordis 生态,并不会影响 Koishi 的行为,但会在未来版本为 Koishi 提供更多功能。
- client: 支持了响应式的
ctx[service]
(cordiverse/webui@01c939a, cordiverse/webui@258d854) - database: 基于关系 API 实现了群组、频道等结构的缓存逻辑 (satorijs/webui@7fada5b, satorijs/webui@163cf5b)
- logger: 初步实现了 Logger 插件 (cordiverse/webui@2e21623)
- logger: 支持了触顶无限滚动 (不固定位置) (cordiverse/webui@3dbe46a)
- logger: 支持了关键词搜索 (cordiverse/webui@561026f)
- manager: 新增了「服务管理」子页面,支持了手动配置服务注入与服务隔离 (cordiverse/webui@ac2b8c6, cordiverse/webui@e2e970b)
- manager: 为每个支持了
intercept
的服务提供了子页面 (cordiverse/webui@107374f) - manager: 调整了子路由的顺序,支持了
usage
国际化 (cordiverse/webui@db96a8c) - status: 修复了注入
manager
服务失败的问题 (satorijs/webui@341bbab)
Other Changes
- chore: bump versions (d985a51)
- chore: bump versions (koishijs/webui@e5d3dec)
- chore: bump versions (satorijs/satori@ab78834)
- test: check every explicit warnings (cordiverse/cordis@e0a0eed)
- chore: bump versions (satorijs/webui@a8a31b0)
- refa: revert edbeaec (0082b6e)
- refa: revert 0badd5ecdbaddbe928339975e935d34e0144b80c (cordiverse/webui@2c9d267)
- chore: bump versions (shigma/reggol@f3285f7)
- chore: bump versions (cordiverse/webui@5f55653)
- chore: bump versions (cordiverse/minato@04b03c0)
- chore: bump versions (satorijs/satori@5e34920)
- chore: bump versions (koishijs/webui@48689b5)
- chore: bump versions (b246289)
Koishi 4.17.8
Notable Changes
- 新增内置服务
schema
,重构了部分基于此服务的逻辑 (cordiverse/cordis@ab63f5f, cordiverse/http@d033173, edbeaec) - 将 HTTP 插件的配置项
proxyAgent
迁移至 proxy-agent 插件中 (会在启动时自动迁移,无需手动修改) (68d2001) - 修复了
package.json
中types
的使用与规范不同的问题,此改动可能导致开发者本地的 TypeScript 编译错误,如果发现此问题,请按照下图修改你的tsconfig.json
:
{
"compilerOptions": {
- "module": "commonjs",
+ "module": "esnext",
"declaration": true,
+ "emitDeclarationOnly": true,
- "moduleResolution": "node",
+ "moduleResolution": "bundler",
},
}
Features
- cordis: 支持了注册事件监听器时配置
options.global
,优化了内部事件的数量 (cordiverse/cordis@717b11d) - market: 添加了社区镜像 itzdrli (koishijs/webui@81d0d3c)
- minato: 支持了在查询和运算中使用正则表达式的 flags (cordiverse/minato#98) (cordiverse/minato@60ac0eb)
- telegram: 支持了以
<blockquote>
形式展示的quote
消息元素 (satorijs/satori#276) (satorijs/satori@27d7fa9)
Bug Fixes
- explorer: 修复了不支持对象形式的文件过滤器的问题 (koishijs/webui@a3d9ac0)
- sandbox: 修复了使用部分功能时会出现服务注入警告的问题 (koishijs/webui@1db209f)
- server: 迁移到 koa-body,修复了
rawBody
的使用 (satorijs/satori@ac6d150) - telegram: 修复了启用
files.local
时加载文件路径错误的问题 (satorijs/satori#278) (satorijs/satori@1835b5e)
Next Updates
以下变更属于开发中的 Cordis 生态,并不会影响 Koishi 的行为,但会在未来版本为 Koishi 提供更多功能。
- client: 优化了部分客户端 API 的类型标注 (cordiverse/webui@e81545e)
- cordis: 支持了定义在配置文件中的
inject
(cordiverse/cordis@b78fd8e) - create: 支持从 @yarnpkg/cli-dist 下载 yarn.js 并在本地缓存 (cordiverse/cordis@528717e)
- loader: 支持了 CJS-ESM 去重功能,该功能将允许 ESM 生态中使用 CJS 插件且不出现多例 (cordiverse/cordis@28c5bfc, cordiverse/cordis@531ef2b)
- loader: 支持了
EntryTree
,该功能允许创建独立的加载域,例如支持从其他文件读取配置和插件 (cordiverse/cordis@9c95eb0, cordiverse/cordis@619213a, cordiverse/cordis@b49bbe6, cordiverse/cordis@643f4b1, cordiverse/cordis@8bb0b0f, cordiverse/cordis@16b1a89, cordiverse/cordis@f970d3c, cordiverse/webui@d771a32) - loader: 初步实现了
!!js
语法 (cordiverse/cordis@6688d23) - loader: 为插件组提供了特殊加载行为,将允许禁用插件组时不回收插件组的副作用,以便展示插件组内含的插件 (cordiverse/cordis@1641e2e)
- loader: 支持了
entry.ctx
,解耦了部分 Loader 核心功能为独立插件 (cordiverse/cordis@c9c6b3a, cordiverse/cordis@8601195, cordiverse/cordis@d377564) - manager: 支持从依赖服务的插件页跳转到提供服务的插件 (cordiverse/webui@8394b55)
- manager: 重构了插件管理,初步实现了插件的多个子页面,包括概览和配置 (cordiverse/webui@9491ac7, cordiverse/webui@aaaa366, cordiverse/webui@756b474, cordiverse/webui@89a15b8, cordiverse/webui@0ee56de, cordiverse/webui@d68ce0e)
- manager: 支持在左侧栏顶部呼出菜单添加插件,并支持插件的短名显示 (cordiverse/webui@af45b8e, cordiverse/webui@b92577f)
- registry: 支持了 Yarn PnP 包管理模式 (cordiverse/webui@76f4329, cordiverse/webui@6cea89e, cordiverse/webui@6d4366b)
- registry: 支持了加载通过
exports
导出的插件 (cordiverse/webui@94d415a)
Other Changes
- chore: bump versions (090aa31)
- refa: declare events for cordis (satorijs/satori@37aa596)
- refa: use ctx.schema.component for schema extensions (cordiverse/webui@0badd5e)
- refa: use ctx.schema.component for schema extensions (koishijs/webui@6ffd2b7)
- chore: bump versions (cordiverse/webui@7bdf3cf)
- chore: bump versions (cordiverse/cordis@4511e3d)
- chore: bump versions (cordiverse/minato@df47d9f)
- chore: bump versions (d985a51)
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)