From 66de422ca6c9fdab2cf31a238af5be35342c53dc Mon Sep 17 00:00:00 2001 From: momo-OwO-qwq Date: Sat, 12 Sep 2026 23:01:37 +0800 Subject: [PATCH 1/2] fix(dashboard): invert remaining monochrome icons in dark mode Some monochrome icons still rendered black on dark surfaces: * microsoft (Edge TTS), fishaudio (FishAudio TTS), vllm (vLLM Rerank), huggingface (TEI Rerank), coze and deerflow were missing from the monochrome icon list. * The Mattermost and Matrix platform logos are pure black SVGs. They are now imported with ?no-inline so the dark theme CSS can match the emitted asset URL instead of an inlined data URI. * The new platform logo selectors are anchored to a path segment, otherwise img[src*="matrix"] would also match inline SVG data URIs that contain gradientTransform="matrix(...)". --- dashboard/src/scss/_override.scss | 8 ++++++++ dashboard/src/utils/platformUtils.js | 8 ++++++-- dashboard/src/utils/providerUtils.js | 8 +++++++- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/dashboard/src/scss/_override.scss b/dashboard/src/scss/_override.scss index 4d031fa819..99033e59e5 100644 --- a/dashboard/src/scss/_override.scss +++ b/dashboard/src/scss/_override.scss @@ -139,3 +139,11 @@ pre, code, .markdown pre, .markdown code, .release-notes pre, .release-notes cod .v-theme--PurpleThemeDark img[src*="/mirarouter"] { filter: invert(1); } + +// Invert the black Mattermost and Matrix logos on dark surfaces. +// The leading slash keeps these selectors from matching inline SVG data URIs, +// where words like "matrix" also appear in transform functions. +.v-theme--PurpleThemeDark img[src*="/mattermost"], +.v-theme--PurpleThemeDark img[src*="/matrix"] { + filter: brightness(0) invert(1); +} diff --git a/dashboard/src/utils/platformUtils.js b/dashboard/src/utils/platformUtils.js index 299c4149bf..e34cd22d4d 100644 --- a/dashboard/src/utils/platformUtils.js +++ b/dashboard/src/utils/platformUtils.js @@ -1,3 +1,7 @@ +// ?no-inline keeps the asset URL matchable by the dark mode CSS rules. +import matrixIcon from '@/assets/images/platform_logos/matrix.svg?no-inline'; +import mattermostIcon from '@/assets/images/platform_logos/mattermost.svg?no-inline'; + /** * 平台相关工具函数 */ @@ -41,9 +45,9 @@ export function getPlatformIcon(name) { } else if (name === 'line') { return new URL('@/assets/images/platform_logos/line.png', import.meta.url).href } else if (name === 'matrix') { - return new URL('@/assets/images/platform_logos/matrix.svg', import.meta.url).href + return matrixIcon } else if (name === 'mattermost') { - return new URL('@/assets/images/platform_logos/mattermost.svg', import.meta.url).href + return mattermostIcon } } diff --git a/dashboard/src/utils/providerUtils.js b/dashboard/src/utils/providerUtils.js index 31406973da..8d7cf51025 100644 --- a/dashboard/src/utils/providerUtils.js +++ b/dashboard/src/utils/providerUtils.js @@ -88,7 +88,13 @@ export function isMonochromeProviderIcon(type) { 'xiaomi', 'xiaomi-token-plan', 'openrouter', - 'groq' + 'groq', + 'microsoft', + 'fishaudio', + 'vllm', + 'huggingface', + 'coze', + 'deerflow' ].includes(type); } From a8b307d7ba6e1f69335c7da50e067e538f5584c3 Mon Sep 17 00:00:00 2001 From: momo-OwO-qwq Date: Sat, 12 Sep 2026 23:20:51 +0800 Subject: [PATCH 2/2] fix(dashboard): group message platform templates by product line The WeChat adapters were split apart by Lark and DingTalk in the create bot platform selector. Reorder the CONFIG_METADATA_2 platform templates so adapters of the same product line stay together, keeping the remaining order unchanged. * place weixin_official_account right after weixin_oc --- astrbot/core/config/default.py | 48 +++++++++++++++++----------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/astrbot/core/config/default.py b/astrbot/core/config/default.py index 7ce41cb136..a89debc618 100644 --- a/astrbot/core/config/default.py +++ b/astrbot/core/config/default.py @@ -360,17 +360,20 @@ "weixin_oc_long_poll_timeout_ms": 35_000, "weixin_oc_api_timeout_ms": 120_000, }, - "飞书(Lark)": { - "id": "lark", - "type": "lark", + "微信公众平台": { + "id": "weixin_official_account", + "type": "weixin_official_account", "enable": True, - "app_id": "", - "app_secret": "", - "domain": "https://open.feishu.cn", - "lark_connection_mode": "socket", # webhook, socket + "appid": "", + "secret": "", + "token": "", + "encoding_aes_key": "", + "api_base_url": "https://api.weixin.qq.com/cgi-bin/", + "unified_webhook_mode": True, "webhook_uuid": "", - "lark_encrypt_key": "", - "lark_verification_token": "", + "callback_server_host": "0.0.0.0", + "port": 6194, + "active_send_mode": False, }, "企业微信 (智能机器人)": { "id": "wecom_ai_bot", @@ -409,6 +412,18 @@ "callback_server_host": "0.0.0.0", "port": 6195, }, + "飞书(Lark)": { + "id": "lark", + "type": "lark", + "enable": True, + "app_id": "", + "app_secret": "", + "domain": "https://open.feishu.cn", + "lark_connection_mode": "socket", # webhook, socket + "webhook_uuid": "", + "lark_encrypt_key": "", + "lark_verification_token": "", + }, "钉钉(DingTalk)": { "id": "dingtalk", "type": "dingtalk", @@ -417,21 +432,6 @@ "client_secret": "", "card_template_id": "", }, - "微信公众平台": { - "id": "weixin_official_account", - "type": "weixin_official_account", - "enable": True, - "appid": "", - "secret": "", - "token": "", - "encoding_aes_key": "", - "api_base_url": "https://api.weixin.qq.com/cgi-bin/", - "unified_webhook_mode": True, - "webhook_uuid": "", - "callback_server_host": "0.0.0.0", - "port": 6194, - "active_send_mode": False, - }, "Telegram": { "id": "telegram", "type": "telegram",