From 6326019390da8851b57b65956a02cc491ef3257e Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Sat, 2 May 2026 18:47:36 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix=EF=BC=9A=E9=85=8D=E7=BD=AE=E5=90=8D?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/chat/utils/utils.py | 2 +- src/maisaka/runtime.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/chat/utils/utils.py b/src/chat/utils/utils.py index 5ac2d256..2d5f3f3a 100644 --- a/src/chat/utils/utils.py +++ b/src/chat/utils/utils.py @@ -223,7 +223,7 @@ def is_mentioned_bot_in_message(message: SessionMessage) -> tuple[bool, bool, fl break # 7) 概率设置 - if is_at and getattr(global_config.chat, "at_bot_inevitable_reply", 1): + if is_at and getattr(global_config.chat, "inevitable_at_reply", 1): reply_probability = 1.0 logger.debug("被@,回复概率设置为100%") elif is_mentioned and getattr(global_config.chat, "mentioned_bot_reply", 1): diff --git a/src/maisaka/runtime.py b/src/maisaka/runtime.py index e3ccf739..88c6e4a0 100644 --- a/src/maisaka/runtime.py +++ b/src/maisaka/runtime.py @@ -481,7 +481,7 @@ class MaisakaHeartFlowChatting: should_force_reply = ( reply_probability_boost >= 1.0 - or (message.is_at and global_config.chat.at_bot_inevitable_reply) + or (message.is_at and global_config.chat.inevitable_at_reply) or (message.is_mentioned and global_config.chat.mentioned_bot_reply) ) if not should_force_reply or (not message.is_at and not message.is_mentioned): From 8090c2873cae78a7d295240d0dae29fcc0caf41c Mon Sep 17 00:00:00 2001 From: DrSmoothl <1787882683@qq.com> Date: Sat, 2 May 2026 18:47:36 +0800 Subject: [PATCH 2/4] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=8F=B7=E8=87=B31.0.2=EF=BC=8C=E5=B9=B6=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E9=80=82=E9=85=8D=E5=99=A8=E9=85=8D=E7=BD=AE=E7=A6=81?= =?UTF-8?q?=E7=94=A8=E9=A1=B5=EF=BC=8C=E6=8C=87=E5=BC=95=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=89=8D=E5=BE=80=E6=8F=92=E4=BB=B6=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dashboard/package.json | 2 +- dashboard/src/lib/version.ts | 2 +- dashboard/src/router.tsx | 4 +- .../src/routes/config/adapter-disabled.tsx | 60 +++++++++++++++++++ 4 files changed, 64 insertions(+), 4 deletions(-) create mode 100644 dashboard/src/routes/config/adapter-disabled.tsx diff --git a/dashboard/package.json b/dashboard/package.json index 593113c1..c2338c25 100644 --- a/dashboard/package.json +++ b/dashboard/package.json @@ -1,7 +1,7 @@ { "name": "maibot-dashboard", "private": true, - "version": "1.0.1", + "version": "1.0.2", "type": "module", "main": "./out/main/index.js", "scripts": { diff --git a/dashboard/src/lib/version.ts b/dashboard/src/lib/version.ts index a6be3db1..8a261cfd 100644 --- a/dashboard/src/lib/version.ts +++ b/dashboard/src/lib/version.ts @@ -5,7 +5,7 @@ * 修改此处的版本号后,所有展示版本的地方都会自动更新 */ -export const APP_VERSION = '1.0.1' +export const APP_VERSION = '1.0.2' export const APP_NAME = 'MaiBot Dashboard' export const APP_FULL_NAME = `${APP_NAME} v${APP_VERSION}` diff --git a/dashboard/src/router.tsx b/dashboard/src/router.tsx index f2c684d8..ef480e6a 100644 --- a/dashboard/src/router.tsx +++ b/dashboard/src/router.tsx @@ -85,11 +85,11 @@ const modelConfigRoute = createRoute({ component: lazyRouteComponent(() => import('./routes/config/model'), 'ModelConfigPage'), }) -// 配置路由 - 麦麦适配器配置 +// 配置路由 - 麦麦适配器配置(已停用,引导跳转到插件配置;旧实现保留在 ./routes/config/adapter) const adapterConfigRoute = createRoute({ getParentRoute: () => protectedRoute, path: '/config/adapter', - component: lazyRouteComponent(() => import('./routes/config/adapter'), 'AdapterConfigPage'), + component: lazyRouteComponent(() => import('./routes/config/adapter-disabled'), 'AdapterConfigPage'), }) // 资源管理路由 - 表情包管理 diff --git a/dashboard/src/routes/config/adapter-disabled.tsx b/dashboard/src/routes/config/adapter-disabled.tsx new file mode 100644 index 00000000..a084ba66 --- /dev/null +++ b/dashboard/src/routes/config/adapter-disabled.tsx @@ -0,0 +1,60 @@ +import { Link } from '@tanstack/react-router' +import { ArrowRight, Info } from 'lucide-react' + +import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert' +import { Button } from '@/components/ui/button' +import { + Card, + CardContent, + CardDescription, + CardHeader, + CardTitle, +} from '@/components/ui/card' +import { ScrollArea } from '@/components/ui/scroll-area' + +/** + * 麦麦适配器配置 —— 禁用页 + * + * 原页面({@link import('./adapter').AdapterConfigPage})的能力已迁移至 + * 「插件配置」中的对应适配器插件。这里保留路由占位并引导用户跳转, + * 避免误用旧的 TOML 直接编辑路径。 + */ +export function AdapterConfigPage() { + return ( + +
+
+

麦麦适配器配置

+

+ 该界面已停用 +

+
+ + + + 该配置入口已迁移 + + 适配器现已作为插件管理。请前往「插件配置」找到对应适配器插件(如 Napcat 适配器)进行配置。 + + + + + + 请前往插件配置 + + 在插件配置页面中,选择目标适配器插件即可修改其配置项。原适配器 TOML 直接编辑入口已停用,但相关代码与历史配置文件未被删除,可在需要时由开发者手动恢复。 + + + + + + +
+
+ ) +} From 23ca574a8196809f1157e4a75b6a9a1c89b1eaba Mon Sep 17 00:00:00 2001 From: DrSmoothl <1787882683@qq.com> Date: Sat, 2 May 2026 19:08:24 +0800 Subject: [PATCH 3/4] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E4=B8=8D=E5=85=BC=E5=AE=B9=E5=8E=9F=E5=9B=A0=E7=9A=84?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=8C=E4=BC=98=E5=8C=96=E6=8F=92=E4=BB=B6?= =?UTF-8?q?=E5=85=BC=E5=AE=B9=E6=80=A7=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dashboard/src/routes/plugins/InstalledTab.tsx | 3 + .../src/routes/plugins/MarketplaceTab.tsx | 3 + dashboard/src/routes/plugins/PluginCard.tsx | 14 ++++- dashboard/src/routes/plugins/index.tsx | 57 +++++++++++++++++-- 4 files changed, 69 insertions(+), 8 deletions(-) diff --git a/dashboard/src/routes/plugins/InstalledTab.tsx b/dashboard/src/routes/plugins/InstalledTab.tsx index a2ffe04d..3447f949 100644 --- a/dashboard/src/routes/plugins/InstalledTab.tsx +++ b/dashboard/src/routes/plugins/InstalledTab.tsx @@ -16,6 +16,7 @@ interface InstalledTabProps { checkPluginCompatibility: (plugin: PluginInfo) => boolean needsUpdate: (plugin: PluginInfo) => boolean getStatusBadge: (plugin: PluginInfo) => React.JSX.Element | null + getIncompatibleReason: (plugin: PluginInfo) => string | null } export function InstalledTab({ @@ -33,6 +34,7 @@ export function InstalledTab({ checkPluginCompatibility, needsUpdate, getStatusBadge, + getIncompatibleReason, }: InstalledTabProps) { // 过滤已安装插件 const filteredPlugins = plugins.filter(plugin => { @@ -80,6 +82,7 @@ export function InstalledTab({ checkPluginCompatibility={checkPluginCompatibility} needsUpdate={needsUpdate} getStatusBadge={getStatusBadge} + getIncompatibleReason={getIncompatibleReason} /> ))} diff --git a/dashboard/src/routes/plugins/MarketplaceTab.tsx b/dashboard/src/routes/plugins/MarketplaceTab.tsx index bcd4b8c2..e623530c 100644 --- a/dashboard/src/routes/plugins/MarketplaceTab.tsx +++ b/dashboard/src/routes/plugins/MarketplaceTab.tsx @@ -16,6 +16,7 @@ interface MarketplaceTabProps { checkPluginCompatibility: (plugin: PluginInfo) => boolean needsUpdate: (plugin: PluginInfo) => boolean getStatusBadge: (plugin: PluginInfo) => React.JSX.Element | null + getIncompatibleReason: (plugin: PluginInfo) => string | null } export function MarketplaceTab({ @@ -33,6 +34,7 @@ export function MarketplaceTab({ checkPluginCompatibility, needsUpdate, getStatusBadge, + getIncompatibleReason, }: MarketplaceTabProps) { // 过滤插件 const filteredPlugins = plugins.filter(plugin => { @@ -76,6 +78,7 @@ export function MarketplaceTab({ checkPluginCompatibility={checkPluginCompatibility} needsUpdate={needsUpdate} getStatusBadge={getStatusBadge} + getIncompatibleReason={getIncompatibleReason} /> ))} diff --git a/dashboard/src/routes/plugins/PluginCard.tsx b/dashboard/src/routes/plugins/PluginCard.tsx index ad6d3f1e..93a0fdb1 100644 --- a/dashboard/src/routes/plugins/PluginCard.tsx +++ b/dashboard/src/routes/plugins/PluginCard.tsx @@ -20,6 +20,7 @@ interface PluginCardProps { checkPluginCompatibility: (plugin: PluginInfo) => boolean needsUpdate: (plugin: PluginInfo) => boolean getStatusBadge: (plugin: PluginInfo) => React.JSX.Element | null + getIncompatibleReason: (plugin: PluginInfo) => string | null } export function PluginCard({ @@ -34,6 +35,7 @@ export function PluginCard({ checkPluginCompatibility, needsUpdate, getStatusBadge, + getIncompatibleReason, }: PluginCardProps) { const navigate = useNavigate() @@ -114,8 +116,14 @@ export function PluginCard({ needsUpdate(plugin) ? (