v3 更新日志
 Notable Changes
- orm: 大幅优化了 query 语法,支持了表达式和操作符机制
 
 Features
 Bug Fixes
- cli: 修复了 koishi start 不自动支持 koishi.config.yml 的问题 (#306) (
bac8a01) - eval: 修复了同时使用 
useSpread 和 useBuiltIns 导致的冲突 (#316) (ad05b4e) - mongo: 不手动传入默认的 27017 端口以避免 
MongoParseError (#312) (11bbad7) - teach: 修复了当使用正则表达式时存储了错误的转义表达式的问题 (#309) (
ce19057) 
 Features
 Bug Fixes
 Features
 Bug Fixes
- adventure: 修复了 
Event.gain() 未修改 session._gains 的问题 (58a290f) - adventure: 修复了部分情况下 use 指令可以在无法使用物品状态下调用的问题 (
eb11cc1) - adventure: 修复了剧情存在状态时 items 回调函数报错的问题 (
26621aa) - common: 优化了 bind 指令的文本提示 (
c654d66) 
 Features
- adventure: 新增了 adventure/gain 和 adventure/before-timer 事件 (
126832a) - adventure: 优化了 
Event.gain() 操作的行为 (1981c0c, 4b01056) - adventure: 支持了 
phase.prepare 属性,用于在阶段初期初始化状态 (b6c0527) - adventure: 新增了若干 
Action.choose() 的配置项 (b22612c) - adventure: add-item 指令支持了 -p 选项,用于控制物品添加行为是否触发相关事件 (
bd54c86) - discord: 新增了 
bot.$setGroupName(), bot.$setGroupCard() 方法 (#283) (83cfa2a) - discord: 优化了图片类消息段的发送行为 (#280) (#282) (
12207bd) - onebot: 支持了最新的 go-cqhttp API (
90d9dc8) - test-utils: 
MockedApp 默认情况下将不使用数据库缓存 (782d33f) 
 Bug Fixes
- adventure: 优化了结局列表的输出 (
b527e0e) - adventure: 剧情锁将定时解除,以防止内存泄漏 (
af73653) - chat: 修复了 debug 输出时报错的问题 (
5f34a0e) - common: 修复了 assign 和 authorize 指令的异常行为 (#292) (
c342ce0) - core: 针对贪婪匹配的参数支持了自定义类型 (
2087b7c) - core: 针对快捷调用支持了自定义类型 (
a055b26) - utils: 当插值中出现 ReferenceError 时使用空串替代 (
0426a86) 
 Notable Changes
- 新增了工具库 koishi-dev-utils,支持了使用装饰器开发插件
 
 Features
 Bug Fixes
- adventure: 修复了用户数据中存有未知结局时会产生报错的问题 (
72d8ae7) - chat: 修复了与其他适配器共同使用时的类型错误 (
a5af832) - core: 修复了 koa-bodyparser 的类型错误 (
5fd2228) - eval: 修复了少量平台中 SyntaxError 不附带位置信息的问题 (
ac7e67b) - puppeteer: 修复了 selector 参数被错误转义的问题 (
03507fa) - webui: 修复了未安装数据库时 status 指令报错的问题 (
27717c9) 
 Features
- cli: 加入了模块缓存以获得更快的加载速度 (
5f1860c) - core: 支持了在无数据库情况下使用 
ctx.broadcast() (cfca079) - dice: 支持了经典的 rxdy 掷骰语法 (
8a5f915) - kaiheila: 支持了 markdown 消息段 (
f7d9dca) 
 Bug Fixes
 Notable Changes
- koishi-plugin-webui 新增了插件市场视图
 
 Features
 Bug Fixes
- adventure: 修复了重复计算结局达成次数的问题 (
dfd683c) - adventure: 修复了 ending 指令查看剧情线失效的问题 (
4d77b86) - adventure: 修复了 show 指令直接调用时参数丢失的问题 (
e87ac4d) - cli: 修复了成功启动前 SIGINT/SIGTERM 无效的问题 (
632dc61) - core: 修复了由于 esbuild 导致的插件不一致问题 (
398ad5b) 
 Notable Changes
- koishi-test-utils@6.0.0 正式发布
 - koishi 配置文件新增了 deamon 配置项,用于定制监控进程的行为
 
 Features
 Bug Fixes
 Features
- chat: 优化了 at 消息段的处理 (
d80af91) - common: assign 指令支持了 -T 选项,用于取消频道代理者 (
40afea0) - core: 支持了函数类型的 
app.options.prefix (5780080) - discord: 为 at, sharp 消息段添加了 name 属性 (
43a23ca) - kaiheila: 导出了 
KaiheilaBot 构造函数 (#258) (8fb118e) - puppeteer: 使用 inline-block 布局以获得更好的截图区域 (
8f3c98d) - webui: 将自动删除距今过于遥远的统计数据 (
767853e) - webui: 新增了指令调用频率的统计图表 (#252) (
4d5d87a) 
 Bug Fixes
 Features
- cli: 优化了 koishi init 时可供选择的插件列表 (
a9b7000) - kaiheila: 新增了 
kaiheila.attachMode 配置项 (7bc5999) - github: 新增了 github.issue 和 github.star 指令 (
104841c) - webui: 将「机器人」页面合并入「仪表盘」页面 (
d70fdcf) 
 Bug Fixes
- cli: 修复了插件热重载功能将小概率触发调用爆栈的问题 (
4569000) - discord: 修复了不符合规范的 
user.avatar (14c92ca) - discord: 修复了 
bot.getMessage() 返回值缺少 groupId 的问题 (c5a0124) - image-search: 修复了消息段错误导致在部分平台上无法发送的问题 (
ff82bd6) - webui: 修复了配合 MySQL 使用时小概率上传数据失败的问题 (#248) (
2a0bbfb) 
 Notable Changes
- 全部文档已经合并到了主仓库,并补充了许多内容,也更便于接收 Pull Request
 
 Features
 Bug Fixes
 Notable Changes
- koishi-plugin-eval + koishi-plugin-puppeteer 组合支持了 JSX 渲染的功能
 
 Features
- chat: 移除了上下文相关配置,请直接使用上下文选择器 (
2060ed5) - chat: 新增了 
maxMessages 配置项,可用于控制最大保存的消息数量 (8b91a7b) - core: 支持了 
app._command.resolve(),可用于查找可能的指令 (#241) (48598db) - eval: 对 esbuild, typescript, coffeescript 支持了 JSX 语法 (
5425e52, ef71dd2) - puppeteer: 为 koishi-plugin-eval 提供了渲染 JSX 并输出的功能 (
fc00ff6) - puppeteer: 新增了 
ctx.puppeteer 接口,可用于 koishi-plugin-chess 等插件 (7a82544, 49f50c7) - utils: 支持了 
segment.transformAsync() 方法 (861c322) - webui: 加入了插件状态徽章,部分插件将被标记为“副作用”“网页扩展” (
69a6920) - webui: 加入了 npm 版本显示,可用于查看非本地依赖是否是最新版本 (
2827a5c) 
 Bug Fixes
 Features
 Bug Fixes
 Notable Changes
- koishi-plugin-eval@3.0.0 正式发布
 - koishi 支持了文件级别的插件热重载和重载缓冲机制,能够更好地应对复杂项目中的热重载
 
 Features
- cli: 支持了 
config.logDiff 配置项,将应用于 Logger.showDiff (c07692b) - cli: 支持了文件级别的插件热重载 (
753c560) - cli: 支持了 yaml 格式的配置文件的生成和读取 (
33ca25e) - eval: 支持了 
moduleLoaders 配置项,可用于配置 addons 中使用的语言解析器 (5931316) - eval: 支持了在 addons 中直接引入 yaml 文件作为模块 (
a3b5297) - webui: 支持了 WebSocket 断线重连 (
b0df6d8) - webui: 
<k-numeric> 组件将自动适配数据大小所适合的单位 (4ee40b7) 
 Bug Fixes
 Notable Changes
- koishi start 加入了针对 koishi.config.js 等文件变动的重载支持
 - koishi-plugin-eval 支持了多语言接口(目前官方仅支持 typescript)
 
 Features
 Bug Fixes
- chat: 修复了 windows 客户端发消息产生的 \r 导致控制台信息异常的问题 (
7e19539) - discord: 修复了 #212 带来的报错问题 (
3a7e6b2) - onebot: 修改了 http, ws-reverse 协议中的默认路径为 
/onebot (f4ab9c1) - webui: 使用 
ref 代替 ctx.$el,修复了生产环境报错问题 (#221) (312356c) - webui: 修复了 body 无法滚动的问题 (#220) (
e3b6894) - webui: 修复了 #215 带来的沙箱页面样式失效问题 (
3f48974) - webui: 修复了 MySQL 支持未能正确实现 ORM 导致 webui 加载报错的问题 (#224) (
211bd99) 
 Features
- discord: 优化了消息类会话的附属字段 (#212) (
a280e52) - eval: 现在可以在上下文中直接访问 
ctx.worker 了 (1e23160) - eval: 实验性地支持了 
worker.addSetupFile() (c5f3079) - utils: 
segment.from() 新增了第二个参数 options (6c59d86) - webui: 支持了虚拟消息列表,解决了大量消息同屏渲染的性能问题 (#215) (
3a72c99) - webui: 图片查看器支持了快捷键(包括方向键,esc 和回车) (
91247e1) 
 Bug Fixes
 Features
 Bug Fixes
 Notable Changes
- 提供了 
ctx.with() 方法,能够妥善处理插件之间的依赖关系 
 Features
 Bug Fixes
- discord: 修复了发送本地文件失败的问题 (#201) (#202) (
e0576e5) - teach: 修复了未使用 Assets API 时前端显示 NaN 的问题 (
a45811d) - utils: 修复了 
segment.parse() 未返回转义前文本节点的问题 (2cad312) - webui: 修复了未使用 Assets API 时服务端报错的问题 (
4c84f33) - webui: 修复了鼠标悬浮到小时图表的时候报错的问题 (
22988d5) - webui: 修复了登录和登出时页面切换异常的问题 (
7237377) - webui: 修复了使用扩展路由时,初始访问无法显示页面的问题 (
5b5a21c) 
 Features
- assets: 支持了 base64 协议 (
95adc17) - assets: 优化了配置项默认值的推导 (
8ec40d7) - core: 支持了函数类型的 
optionConfig.hidden (c72f607) - common: recall 指令每次撤回后将按照 
delay.broadcast 延迟一段时间 (dfede39) - github: github 指令选项添加了权限限制和上下文检查 (#182) (
a4264e9) - webui: 在沙箱中支持了 clear 指令,用于清除历史记录 (
d23c170) - webui: 在沙箱中支持了发送和接收图片,并提供了统一的 chat-panel 组件 (
7c1724a, 0f95246) 
 Bug Fixes
- cli: 修复了触发热重载时会删除部分 node_modules 中的文件缓存的问题 (
ee7bf3d) - core: 修复了在指令回调中 
return session.execute() 会导致产生两个输出的问题 (a2993f7) - core: 修复了指令调用以插值结尾时,会产生错误输出的问题 (#190) (
ed1e2d0) - discord: 修复了 
axiosConfig 配置对发送 embed 消息无效的问题 (#198) (679e8e0) - eval: 修复了当会话不处于生命周期时,调用 eval 会导致报错的问题 (#197) (
6634298) - kaiheila: 修复了网络异常时可能导致程序崩溃的问题 (
bc18170) - mongo: 修复了 
db.update() 不产生效果的问题 (#188) (d5c707f) 
 Notable Changes
- koishi-plugin-status 更名为 koishi-plugin-webui 并发布,支持了由插件扩展页面的功能
 - koishi-plugin-common 支持了 recall 指令,同时丰富了 echo 指令的语法
 
 Features
 Bug Fixes
- onebot: 修复了错误的 
bot.$sendGroupNotice 实现 (#191) (dc7d832) - puppeteer: 修复了 tex 指令输入没有被转义的问题 (
d8b0f75) 
- koishi-plugin-status@4.0.0 正式发布
 - 新增了 
ctx.transformAssets() 方法,结合同时发布的新官方插件 koishi-plugin-assets,可用于实现图片等资源文件的在线转存 (#186) 
 Features
- assets: 支持了使用 koa 构建的图片转存服务 (
990748e) - assets: 支持了 sm.ms 的图片转存服务 (
95ad71e) - cli: koishi init 现在支持初始化 discord 机器人了 (
cc8f609) - core: 新增了 
ctx.assets 接口和 ctx.transformAssets() 方法 (fa9331f) - github: 支持了资源转存机制,以避免链接失效的问题 (
f6875a1) - mysql: 利用 ORM 机制,现在不需要手动指定 index 了 (
f15df3b) - status: 优化了 
Profile 的获取机制和类型标注 (f8f8d6e) - status: 新增了「教学」页面,将显示 koishi-plugin-teach 相关信息 (
29f2d8a) - teach: 使用 ORM API 重构并简化了部分数据库代码 (#185) (
cca4ded) - teach: 支持了资源转存机制,以避免链接失效的问题 (
b009502) - utils: 新增了 
segment.transform() 方法 (a78f407) 
 Bug Fixes
- core: 修复了使用 WebSocket 在运行时长时间离线导致的报错问题 (#180) (
ff470d5) - github: 修复了 GitHub 相关功能不支持带 
. 的仓库名的问题 (#183) (a090814) - github: 修复了 GitHub 相关数据库使用 MySQL 的初始化问题 (#184) (
eb9ada5) - github: 修复了快速回复机制失效的问题 (
8b6f0a4) - kaiheila: 修复了 WebSocket 重连失败的问题 (#187) (
2b99b08) - kaiheila: 修复了 WebSocket 启动时未能获取机器人信息的问题 (
6a47e39) 
 Notable Changes
- koishi-plugin-github@3.0.0 正式发布,将支持众多新特性 (#174)
 - 支持了 ORM API (#178),整合了多个插件的重复代码,有效降低了数据库实现的难度
 
 Features
- core: 支持了 ORM API (#179) (
f2e5535, 256a040) - core: 新增了配置项 
selfUrl,将被 telegram, github 等功能共用 (967d3f5) - github: 支持了 github.repos 指令,用于安全地添加 webhooks (
9e962dc, c67ffee) - github: 优化了 github 指令,用于在任意频道内订阅已添加的仓库 (
6ef52a5) - github: 优化了指令的提示信息,将 github 和 github.repos 指令整合使用 (
53f4e8f) - utils: 
clone() 方法支持了 RegExp 和 Date 类型的数据 (f2e5535) - utils: 使用内置模板函数来格式化输出的时间以实现不同地区输出的统一 (
f2e5535) 
 Bug Fixes
- core: 修复了当含有插值调用的时候,有小概率不会获取内层指令所需字段的问题 (
f2e5535) - utils: 修复了 
clone() 方法无法处理 undefined 和 null 的问题 (f2e5535) - github: 修复了一个 typo (#181) (
5378134) - github: 修复了大小写混用带来的无法识别问题 (
7804663) 
 Notable Changes
- koishi-plugin-rss@2.0.0 正式发布
 
 Features
- github: 优化了 markdown 处理,现在能够推送图片信息了 (
16c7059) - status: 默认情况下将使用相对路径作为 endpoint (
acfbdc0) - status: 支持了配置项 
config.handleSignals (#158, #163) (5690996) - status: 支持了配置项 
config.title (57e5eba) - telegram: 优化了消息段处理 (#167) (
19f253e) 
 Bug Fixes
 Notable Changes
- 下一代 status 插件支持了生产模式
 - 新增 command patch 功能:通过 patch 创建的指令如果不存在,将不会发生变化;如果已存在,将按照后续的链式调用进行修改
 
 Features
 Bug Fixes
 Notable Changes
- 下一代 status 插件支持了沙箱和登录功能,并提供了 mongo 数据库支持
 
 Features
- database: 支持了自定义表,允许不同数据库对统一功能提供不同实现 (
875f75b) - status: 加入了路由,导航栏和侧边栏,优化了页面样式 (
89583a3, c8df0fa, 86043a4, 1cf52be, 42381c5, 5ff956f, bd33be6) - status: 实现了沙箱和登录功能,增加了 token 机制 (
bf99513, c50ba31, 064810c, bbfac8a, 2e03e5d) - status: 优化了数据传输接口,并支持显示数据库大小 (
d17428e, dfdba08) - status: 提供了 mongo 数据库支持 (#160) (
6956c81) - utils: 新增了 
remove() 帮助函数 (e500178) 
 Bug Fixes
- core: 将 disable 设置为指令所需字段,修复了定时指令报错的问题 (#155) (
97d8732) - status: 修复了仪表盘中图表溢出界面问题,在沙箱中提供了自动滚动至底部的功能 (#157) (
a976035) - discord: 回退了上个版本更新的 embed segment,采用会话属性的方式重新实现 (
7da0784) - core: 修复了快捷调用不会受到上下文限制的问题 (#159) (
49c2c39) 
 Notable Changes
- koishi-plugin-chess@3.0.0 正式发布
 - 发布了下一代 status 插件的第一个 alpha 版本,新版本将包含一个网页 UI,整合了丰富的数据统计功能,包括消息数量统计、指令调用统计和问答文字云等等
 
 Features
- core: 优化了 
ctx.dispose() 发生错误时的处理逻辑 (bf18011) - core: 支持了非 apply 形式的 Database 成员 (
e90bf73) - adventure: 支持了 disposable 协议 (
1e91ae5) - common: 优化了 switch 指令的提示文本 (
389341f) - discord: 在消息中添加了 embed segment (
22dc774) - image-search: 优化了错误处理 (
14a2aee) - status: 支持了网页端和数据统计功能 (
9dcdd69, 10e9bf6, 964390b, 1f8b1ad, 2c91f87, fbd767a, 66a46a6, b3b4711, b3d8b70, 00f9c46, cbe38c3, 5ddf07b, c539454, ee112cf, db6f808, 593f3e9, 0a83138) - tools: 新增了百度百科支持 (#153) (
ae3f004) 
 Bug Fixes
 Notable Changes
- koishi-plugin-mongo@2.0.0 正式发布
 - koishi-plugin-mysql@3.0.0 正式发布
 - koishi-plugin-teach@2.0.0 正式发布
 
 Features
 Bug Fixes
 Notable Changes
- koishi-plugin-image-search@3.0.0 正式发布
 - koishi-plugin-tools@2.0.0 正式发布
 - 新增了 switch 功能,允许运行时在特定的频道禁用某指令
 
 Features
- core: 指令定义中的展开语法现在也有正确的代码提示了 (
c689385) - core: 优化了 Domain 的错误提示,新增了 date, posint 等内置类型 (
e2bc856, c4d84b3) - core: 新增了 
bot.avatar, bot.discriminator 属性 (a6ec223) - common: 新增了 switch 功能,允许运行时在特定的频道禁用某指令 (
7b5948d, 1620482) - common: 加入了更多模板,进一步提高了可扩展性 (
f5e018f) - discord: 消息处理优化和更好的 embed 支持 (
c517bf0, 29ee7d1, dfcb7da, 3aa2b94, 07dbd66, 7c9706f, 963d4a6) - image-search: 支持了 iqdb 搜索 (#143) (
9cd9abb) - tools: 新增了 bilibili 链接解析功能 (
9a37afe) 
 Bug Fixes
 Notable Changes
- koishi-plugin-common@4.0.0 正式发布
 - koishi-plugin-puppeteer@2.0.0 正式发布
 - koishi-plugin-schedule@3.0.0 正式发布
 
 Features
 Bug Fixes
- schedule: 修复了热重载时可能发生内存泄漏的问题 (
1483031) - test-utils: 修复了错误的 
MemoryDatabase 实现 (e71590d)