关于koishi控制台4.16.0的一些问题反馈——操作记录

为测试问题的复现条件,我们从双清koishi开始

在双清koishi后,我下载并安装了【koishi-desktop-win-x64-v0.11.2.msi】的程序

一切都是默认的

image

打开koishi后第一时间小火箭

似乎这里多了个server插件?

如果把【全局设置】下面的server插件关了的话,好像会——!

会出大事——,koishi就会变成这样,然后

再也打不开了,坏掉了

image

所以希望这个——不会被这么简单就关掉吧!求加个防痴呆设计!

想要安装几个插件,打开【插件市场】,我尝试安装【maxim】和【xiuxian】插件
安装插件,这两个插件都会出现【安装超时!】的错误

我们安装的这个插件是这样显示的,似乎——如装?

在【添加插件】这里也找不到刚刚想安装的插件——
(可以找的到,继续往下看)

日志是眼熟的——

完整日志如下


{"id":1,"type":"info","level":2,"name":"app","meta":{},"content":"\u001b[38;5;15;1mKoishi/4.16.0\u001b[0m","timestamp":1702369466119}
{"id":2,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"apply plugin \u001b[38;5;45mgroup:entry\u001b[0m","timestamp":1702369466129}
{"id":3,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"apply plugin \u001b[38;5;45mserver:3vunae\u001b[0m","timestamp":1702369466132}
{"id":4,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"apply plugin \u001b[38;5;45mgroup:basic\u001b[0m","timestamp":1702369466213}
{"id":5,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"apply plugin \u001b[38;5;45mcommands:4cmwnc\u001b[0m","timestamp":1702369466213}
{"id":6,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"apply plugin \u001b[38;5;45mhelp:5fq553\u001b[0m","timestamp":1702369466222}
{"id":7,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"apply plugin \u001b[38;5;45mlocales:0jagqp\u001b[0m","timestamp":1702369466225}
{"id":8,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"apply plugin \u001b[38;5;45mrate-limit:mtiava\u001b[0m","timestamp":1702369466233}
{"id":9,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"apply plugin \u001b[38;5;45mtelemetry:th12tp\u001b[0m","timestamp":1702369466238}
{"id":10,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"apply plugin \u001b[38;5;45mgroup:console\u001b[0m","timestamp":1702369466241}
{"id":11,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"apply plugin \u001b[38;5;45manalytics:q8dcdc\u001b[0m","timestamp":1702369466242}
{"id":12,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"apply plugin \u001b[38;5;45mconfig:8yflzd\u001b[0m","timestamp":1702369466249}
{"id":13,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"apply plugin \u001b[38;5;45mconsole:qt2oy2\u001b[0m","timestamp":1702369466298}
{"id":14,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"apply plugin \u001b[38;5;45mdataview:2zryut\u001b[0m","timestamp":1702369466305}
{"id":15,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"apply plugin \u001b[38;5;45mdesktop:kn18rc\u001b[0m","timestamp":1702369466309}
{"id":16,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"apply plugin \u001b[38;5;45mexplorer:0wogo4\u001b[0m","timestamp":1702369466312}
{"id":17,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"apply plugin \u001b[38;5;45mlogger:bfglsr\u001b[0m","timestamp":1702369466345}
{"id":18,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"apply plugin \u001b[38;5;45minsight:aarzlk\u001b[0m","timestamp":1702369466347}
{"id":19,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"apply plugin \u001b[38;5;45mmarket:2f2ohi\u001b[0m","timestamp":1702369466349}
{"id":20,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"apply plugin \u001b[38;5;45msandbox:etobq6\u001b[0m","timestamp":1702369466376}
{"id":21,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"apply plugin \u001b[38;5;45mstatus:mzmhxm\u001b[0m","timestamp":1702369466383}
{"id":22,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"apply plugin \u001b[38;5;45mtheme-vanilla:vo4q72\u001b[0m","timestamp":1702369466397}
{"id":23,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"apply plugin \u001b[38;5;45mgroup:storage\u001b[0m","timestamp":1702369466399}
{"id":24,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"apply plugin \u001b[38;5;45mdatabase-sqlite:k5jcwd\u001b[0m","timestamp":1702369466399}
{"id":25,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"apply plugin \u001b[38;5;45massets-local:31ravi\u001b[0m","timestamp":1702369466407}
{"id":26,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"apply plugin \u001b[38;5;45mgroup:adapter\u001b[0m","timestamp":1702369466411}
{"id":27,"type":"info","level":2,"name":"assets","meta":{"paths":["31ravi"]},"content":"missing config \"selfUrl\", fallback to \"file:\" scheme","timestamp":1702369466472}
{"id":28,"type":"info","level":2,"name":"server","meta":{"paths":["3vunae"]},"content":"server listening at \u001b[38;5;57mhttp://127.0.0.1:5140\u001b[0m","timestamp":1702369466542}
{"id":29,"type":"info","level":2,"name":"console","meta":{"paths":["qt2oy2"]},"content":"webui is available at \u001b[38;5;166mhttp://127.0.0.1:5140\u001b[0m","timestamp":1702369466543}
{"id":51,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"unload plugin \u001b[38;5;45manalytics:q8dcdc\u001b[0m","timestamp":1702369537190}
{"id":53,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"apply plugin \u001b[38;5;45manalytics:q8dcdc\u001b[0m","timestamp":1702369537653}
{"id":110,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"apply plugin \u001b[38;5;45mserver:3o7zwi\u001b[0m","timestamp":1702369540207}
{"id":112,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"unload plugin \u001b[38;5;45mserver:3o7zwi\u001b[0m","timestamp":1702369541206}
{"id":113,"type":"info","level":2,"name":"market","meta":{},"content":"\u001b[93m➤\u001b[39m \u001b]8;;https://yarnpkg.com/advanced/error-codes#yn0050---deprecated_cli_settings\u0007YN0050\u001b]8;;\u0007: The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file","timestamp":1702369553950}
{"id":114,"type":"info","level":2,"name":"market","meta":{},"content":"\u001b[94m➤\u001b[39m YN0000: · \u001b[1mYarn 4.0.1\u001b[22m","timestamp":1702369554007}
{"id":115,"type":"info","level":2,"name":"market","meta":{},"content":"\u001b[94m➤\u001b[39m \u001b[90mYN0000\u001b[39m: ┌ Resolution step","timestamp":1702369554017}
{"id":116,"type":"info","level":2,"name":"market","meta":{},"content":"\u001b[94m➤\u001b[39m \u001b]8;;https://yarnpkg.com/advanced/error-codes#yn0085---updated_resolution_record\u0007YN0085\u001b]8;;\u0007: │ \u001b[38;2;95;175;0m+\u001b[39m \u001b[38;2;215;135;95mkoishi-plugin-maxim\u001b[39m\u001b[38;2;135;175;255m@\u001b[39m\u001b[38;2;135;175;255mnpm:0.4.8\u001b[39m","timestamp":1702369554232}
{"id":117,"type":"info","level":2,"name":"market","meta":{},"content":"\u001b[94m➤\u001b[39m \u001b[90mYN0000\u001b[39m: └ Completed in 0s 221ms","timestamp":1702369554238}
{"id":118,"type":"info","level":2,"name":"market","meta":{},"content":"\u001b[94m➤\u001b[39m \u001b[90mYN0000\u001b[39m: ┌ Fetch step","timestamp":1702369554239}
{"id":119,"type":"info","level":2,"name":"market","meta":{},"content":"\u001b[94m➤\u001b[39m \u001b]8;;https://yarnpkg.com/advanced/error-codes#yn0013---fetch_not_cached\u0007YN0013\u001b]8;;\u0007: │ A package was added to the project (\u001b[38;2;255;49;49m+ 659.97 KiB\u001b[39m).","timestamp":1702369554940}
{"id":120,"type":"info","level":2,"name":"market","meta":{},"content":"\u001b[94m➤\u001b[39m \u001b[90mYN0000\u001b[39m: └ Completed in 0s 701ms","timestamp":1702369554940}
{"id":121,"type":"info","level":2,"name":"market","meta":{},"content":"\u001b[94m➤\u001b[39m \u001b[90mYN0000\u001b[39m: ┌ Link step","timestamp":1702369554952}
{"id":122,"type":"info","level":2,"name":"market","meta":{},"content":"\u001b[94m➤\u001b[39m \u001b[90mYN0000\u001b[39m: └ Completed","timestamp":1702369555102}
{"id":123,"type":"info","level":2,"name":"market","meta":{},"content":"\u001b[94m➤\u001b[39m YN0000: · Done in 1s 122ms","timestamp":1702369555130}
{"id":124,"type":"error","level":1,"name":"loader","meta":{},"content":"TypeError: Cannot read properties of undefined (reading 'ctx')\n    at Proxy.unload (C:\\Users\\86195\\AppData\\Roaming\\Koishi\\Desktop\\data\\instances\\default\\node_modules\\@koishijs\\plugin-config\\lib\\shared\\index.js:275:30)\n    at ctx.console.addListener.authority (C:\\Users\\86195\\AppData\\Roaming\\Koishi\\Desktop\\data\\instances\\default\\node_modules\\@koishijs\\plugin-config\\lib\\shared\\index.js:189:27)\n    at WebSocket.receive (C:\\Users\\86195\\AppData\\Roaming\\Koishi\\Desktop\\data\\instances\\default\\node_modules\\@koishijs\\console\\lib\\index.js:127:45)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)","timestamp":1702369555415}
{"id":126,"type":"info","level":2,"name":"market","meta":{},"content":"\u001b[93m➤\u001b[39m \u001b]8;;https://yarnpkg.com/advanced/error-codes#yn0050---deprecated_cli_settings\u0007YN0050\u001b]8;;\u0007: The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file","timestamp":1702369567085}
{"id":127,"type":"info","level":2,"name":"market","meta":{},"content":"\u001b[94m➤\u001b[39m YN0000: · \u001b[1mYarn 4.0.1\u001b[22m","timestamp":1702369567146}
{"id":128,"type":"info","level":2,"name":"market","meta":{},"content":"\u001b[94m➤\u001b[39m \u001b[90mYN0000\u001b[39m: ┌ Resolution step","timestamp":1702369567155}
{"id":129,"type":"info","level":2,"name":"market","meta":{},"content":"\u001b[94m➤\u001b[39m \u001b]8;;https://yarnpkg.com/advanced/error-codes#yn0085---updated_resolution_record\u0007YN0085\u001b]8;;\u0007: │ \u001b[38;2;95;175;0m+\u001b[39m \u001b[38;2;215;135;95mkoishi-plugin-xiuxian\u001b[39m\u001b[38;2;135;175;255m@\u001b[39m\u001b[38;2;135;175;255mnpm:1.5.3\u001b[39m","timestamp":1702369567382}
{"id":130,"type":"info","level":2,"name":"market","meta":{},"content":"\u001b[94m➤\u001b[39m \u001b[90mYN0000\u001b[39m: └ Completed in 0s 234ms","timestamp":1702369567389}
{"id":131,"type":"info","level":2,"name":"market","meta":{},"content":"\u001b[94m➤\u001b[39m \u001b[90mYN0000\u001b[39m: ┌ Fetch step","timestamp":1702369567389}
{"id":132,"type":"info","level":2,"name":"market","meta":{},"content":"\u001b[94m➤\u001b[39m \u001b]8;;https://yarnpkg.com/advanced/error-codes#yn0013---fetch_not_cached\u0007YN0013\u001b]8;;\u0007: │ A package was added to the project (\u001b[38;2;255;49;49m+ 24.1 KiB\u001b[39m).","timestamp":1702369568059}
{"id":133,"type":"info","level":2,"name":"market","meta":{},"content":"\u001b[94m➤\u001b[39m \u001b[90mYN0000\u001b[39m: └ Completed in 0s 670ms","timestamp":1702369568059}
{"id":134,"type":"info","level":2,"name":"market","meta":{},"content":"\u001b[94m➤\u001b[39m \u001b[90mYN0000\u001b[39m: ┌ Link step","timestamp":1702369568071}
{"id":135,"type":"info","level":2,"name":"market","meta":{},"content":"\u001b[94m➤\u001b[39m \u001b[90mYN0000\u001b[39m: └ Completed","timestamp":1702369568220}
{"id":136,"type":"info","level":2,"name":"market","meta":{},"content":"\u001b[94m➤\u001b[39m YN0000: · Done in 1s 103ms","timestamp":1702369568249}
{"id":137,"type":"error","level":1,"name":"loader","meta":{},"content":"TypeError: Cannot read properties of undefined (reading 'ctx')\n    at Proxy.unload (C:\\Users\\86195\\AppData\\Roaming\\Koishi\\Desktop\\data\\instances\\default\\node_modules\\@koishijs\\plugin-config\\lib\\shared\\index.js:275:30)\n    at ctx.console.addListener.authority (C:\\Users\\86195\\AppData\\Roaming\\Koishi\\Desktop\\data\\instances\\default\\node_modules\\@koishijs\\plugin-config\\lib\\shared\\index.js:189:27)\n    at WebSocket.receive (C:\\Users\\86195\\AppData\\Roaming\\Koishi\\Desktop\\data\\instances\\default\\node_modules\\@koishijs\\console\\lib\\index.js:127:45)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)","timestamp":1702369568563}
{"id":139,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"apply plugin \u001b[38;5;45mgroup:uttnsm\u001b[0m","timestamp":1702369674855}
{"id":140,"type":"info","level":2,"name":"loader","meta":{"paths":[]},"content":"unload plugin \u001b[38;5;45mgroup:uttnsm\u001b[0m","timestamp":1702369680240}


System:
OS: Windows 11 10.0.22621
CPU: (16) x64 12th Gen Intel(R) Core™ i5-12500H

Binaries:
Node: 20.9.0
Yarn: 4.0.1

Koishi:
Core: 4.16.0
Console: 5.20.0
Koishi Desktop: 0.11.2

但是过了几分钟后,又能找到了【maxim】插件(【xiuxian】插件还是没找到)
(在此期间我刷新了一下页面)

这个插件需要puppeteer的服务,所以就直接在这里点击puppeteer来配置吧

但是点这个【你尚未配置此插件,点击立即配置】的话,会跳转到【全局设置】这个页面,不会【立即配置】呢——

所以去插件市场搜puppeteer并安装
但是这里也是这样的——

点这个【你尚未配置此插件,点击立即配置】的话,会跳转到【全局设置】这个页面,不会【立即配置】呢——

所以就把puppeteer插件【移除】了,重新安装
啊——安装超时




然后我就多刷新了几次,发现,【【xiuxian】插件还是没找到】现在可以找到了
puppeteer也可以找到了

插件就——可以正常使用了

看来要多刷新呢!

最后经过测试发现所有插件都是这样的
1.插件市场安装,显示【安装超时】
2.右键,刷新,多刷新几次
3.去全局设置右上角【添加插件】搜索你刚刚要安装的插件
4.正常使用

3 个赞

目前 config 就是关不掉的,未来给 server 也加上就行了

2 个赞

插件实际已安装成功,重启 Koishi 即可使用。

2 个赞

此处如果为某个插件在被其他插件所依赖时,该插件的暂停按钮显示为灰色更好?
也许这只是一个按钮的显示问题。

3 个赞

这肯定不行的,不能不让人换依赖服务啊

2 个赞

那就是做一个服务数量的判断,在等于一个且在被依赖的时候则显示为灰色

3 个赞

也不可能的,因为现在也不应该在一个作用域内开两个服务

现在要更换服务需要停掉所有服务后再启用你想要的服务,这就会导致服务在切换的时间内空缺,这就是设计上的行为

2 个赞

好的,那的确无法从按钮上限制了

3 个赞

一样。

3 个赞
4 个赞

最新版本应该已修复上述问题。

4 个赞

1 个赞

我就知道你要发过来

1 个赞

好的,在闲聊区找了很久没找到,原来在这里 :smiling_face_with_tear:

2 个赞

那么我们可以换一种思路,在插件页面上加一个lock按钮,如果在lock按下时,则无法直接点击 “停用插件” 按钮,这样可以减少点错按钮的问题。
如果是在原有的 “停用插件” 上做一个二次确认的话,会显得麻烦和累赘。

3 个赞

我觉得这样不够安全,因为用户可能点完 lock 以后一不小心滑到了停止按钮上。

我觉得我们应该在左上角和右下角放两个 lock 按钮,用户必须以正确的顺序点击两个按钮以后才能操作。

2 个赞

为什么不放个人机验证 :smiling_face_with_three_hearts:

2 个赞

人机验证和这里应该没有关系,这里说的是误操作问题,而不是安全性问题

2 个赞

这个好

2 个赞