feat(settings): move IM bot to top-level menu

Remove the legacy Plugins-tab registrations, keep the channel-logo navigation, and harden upgrade/package verification.
This commit is contained in:
xmanrui 2026-08-25 22:42:41 +08:00
parent 892e18db77
commit 1ce8126edb
30 changed files with 815 additions and 842 deletions

View file

@ -993,7 +993,7 @@ test('bridge tells users to grant im:message:readonly when Feishu rejects image
assert.match(sent[0], /im:message:readonly/);
assert.match(sent[0], /\/repair/);
assert.match(sent[0], /发布新版本/);
assert.match(sent[0], /插件页面/);
assert.match(sent[0], /「IM机器人」设置页/);
assert.match(sent[0], /补全权限/);
assert.doesNotMatch(sent[0], /99991672|HTTP 400|secret-shaped|private\/path/);
});

View file

@ -184,7 +184,7 @@ test('Feishu image loading maps the missing message scope to an actionable error
assert.equal(error.code, 'feishu-image-permission-required');
assert.match(error.userMessage, /im:message:readonly/);
assert.match(error.userMessage, /\/repair/);
assert.match(error.userMessage, /插件页面/);
assert.match(error.userMessage, /「IM机器人」设置页/);
assert.match(error.userMessage, /补全权限/);
assert.match(error.userMessage, /发布新版本/);
assert.equal(error.cause, providerError);

View file

@ -791,7 +791,7 @@ test('connection test uses the selected bot runtime and shared message copy', as
await fx.controller.initialize();
assert.deepEqual(await fx.controller.sendConnectionTest(healthy.id), { sent: true });
assert.deepEqual(fx.runtimes.get(healthy.id)[0].sentTests, [
'✅ DeepSeek Harness 连接测试成功\n这条消息由插件页面中的“机器人 healthy(cli_heal••••7890)”机器人卡片发出。',
'✅ DeepSeek Harness 连接测试成功\n这条消息由「IM机器人」设置页中的“机器人 healthy(cli_heal••••7890)”机器人卡片发出。',
]);
await fx.controller.close();
});