diff --git a/panel.js b/panel.js
index 5ea8f37..8f9eef8 100644
--- a/panel.js
+++ b/panel.js
@@ -794,6 +794,32 @@ function _switchConfigSection(sectionId) {
_syncConfigSectionState();
}
+function _ensureMobileTraceConfigNavButton() {
+ if (!panelEl) return;
+
+ const mobileNav = panelEl.querySelector(".bme-config-nav-mobile");
+ if (!mobileNav) return;
+ if (mobileNav.querySelector('[data-config-section="trace"]')) return;
+
+ const appearanceButton = mobileNav.querySelector(
+ '[data-config-section="appearance"]',
+ );
+ const traceButton = document.createElement("button");
+ traceButton.className = "bme-config-nav-btn";
+ traceButton.dataset.configSection = "trace";
+ traceButton.type = "button";
+ traceButton.innerHTML = `
+
+ 消息追踪
+ `;
+
+ if (appearanceButton?.parentNode === mobileNav) {
+ mobileNav.insertBefore(traceButton, appearanceButton);
+ } else {
+ mobileNav.appendChild(traceButton);
+ }
+}
+
function _syncConfigSectionState() {
if (!panelEl) return;
panelEl.querySelectorAll(".bme-config-nav-btn").forEach((btn) => {
@@ -1858,6 +1884,8 @@ function _refreshConfigTab() {
function _bindConfigControls() {
if (!panelEl || panelEl.dataset.bmeConfigBound === "true") return;
+ _ensureMobileTraceConfigNavButton();
+
panelEl.querySelectorAll(".bme-config-nav-btn").forEach((btn) => {
if (btn.dataset.bmeBound === "true") return;
btn.addEventListener("click", () => {