From e983f76e0941c6912f896209d86d68c941f58bd1 Mon Sep 17 00:00:00 2001 From: Eugen Istoc Date: Sun, 22 Mar 2026 09:26:35 -0400 Subject: [PATCH] fix: prevent live folder dismissed tabs from reappearing --- .../ZenLiveFoldersManager.sys.mjs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/zen/live-folders/ZenLiveFoldersManager.sys.mjs b/src/zen/live-folders/ZenLiveFoldersManager.sys.mjs index cb27529898..8049ca4e62 100644 --- a/src/zen/live-folders/ZenLiveFoldersManager.sys.mjs +++ b/src/zen/live-folders/ZenLiveFoldersManager.sys.mjs @@ -384,13 +384,18 @@ class nsZenLiveFoldersManager { animate: !folder.collapsed, }); - // Remove the dismissed items that are no longer in the given list - for (const dismissedItemId of this.dismissedItems) { - if ( - dismissedItemId.startsWith(`${liveFolder.id}:`) && - !itemIds.has(dismissedItemId) - ) { - this.dismissedItems.delete(dismissedItemId); + // Remove the dismissed items that are no longer in the given list. + // Only do this when the fetch returned results — an empty list may + // indicate a transient failure (e.g. auth expired, HTML changed) + // and we must not wipe all dismissals in that case. + if (itemIds.size > 0) { + for (const dismissedItemId of this.dismissedItems) { + if ( + dismissedItemId.startsWith(`${liveFolder.id}:`) && + !itemIds.has(dismissedItemId) + ) { + this.dismissedItems.delete(dismissedItemId); + } } }