From eaf89d3f122a546f738363150efa19352339fd57 Mon Sep 17 00:00:00 2001 From: SethBurkart123 Date: Wed, 19 Aug 2026 18:30:30 +1000 Subject: [PATCH] fix: prevent extension freezes and stale builds --- src/plugins/built-in/messageFolders/index.ts | 17 ++--------------- src/seqta/ui/sidebar/mountCustomSidebar.ts | 2 ++ vite.config.ts | 2 +- 3 files changed, 5 insertions(+), 16 deletions(-) diff --git a/src/plugins/built-in/messageFolders/index.ts b/src/plugins/built-in/messageFolders/index.ts index 4c6fa969..20bd99fd 100644 --- a/src/plugins/built-in/messageFolders/index.ts +++ b/src/plugins/built-in/messageFolders/index.ts @@ -858,26 +858,13 @@ const messageFoldersPlugin = { if (!messageList || messageList === observedMessageList) return; messageListObserver?.disconnect(); observedMessageList = messageList; - messageListObserver = new MutationObserver((mutations) => { - const messageRowsChanged = mutations.some((mutation) => - mutation.type === "childList" - ? mutation.target === messageList - : mutation.target instanceof Element && - mutation.target.parentElement === messageList && - mutation.target.matches("li[data-message]"), - ); - if (!messageRowsChanged) return; + messageListObserver = new MutationObserver(() => { applyBadges(); applyFolderFilter(); attachDragListeners(); attachContextMenuListeners(); }); - messageListObserver.observe(messageList, { - childList: true, - subtree: true, - attributes: true, - attributeFilter: ["class", "data-message"], - }); + messageListObserver.observe(messageList, { childList: true }); }; const attachContextMenuListeners = () => { diff --git a/src/seqta/ui/sidebar/mountCustomSidebar.ts b/src/seqta/ui/sidebar/mountCustomSidebar.ts index 442fcd26..9fbf31d5 100644 --- a/src/seqta/ui/sidebar/mountCustomSidebar.ts +++ b/src/seqta/ui/sidebar/mountCustomSidebar.ts @@ -56,6 +56,7 @@ function menuFingerprint(menu: HTMLElement): string { function syncFromMenu(force = false) { if (!menuEl) return; + getNativeMenuList(menuEl)?.setAttribute("aria-hidden", "true"); const next = menuFingerprint(menuEl); if (!force && next === lastMenuFingerprint) return; lastMenuFingerprint = next; @@ -368,6 +369,7 @@ export function unmountCustomSidebar() { document.getElementById(ROOT_ID)?.remove(); if (menuEl) { + getNativeMenuList(menuEl)?.removeAttribute("aria-hidden"); menuEl.classList.remove(MENU_CLASS, "bsplus-sidebar-edit-mode"); clearSidebarAppearance(menuEl); } diff --git a/vite.config.ts b/vite.config.ts index 5d16af89..2f49b5d0 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -138,7 +138,7 @@ export default defineConfig(({ command, mode: viteMode }) => { }, build: { outDir: resolve(__dirname, "dist", mode), - emptyOutDir: false, + emptyOutDir: true, minify: true, //sourcemap: sourcemap, chunkSizeWarningLimit: 4000,