From 1349072330b6239bf4d09d25d5b3b254c0ad646d Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 27 Mar 2026 02:05:10 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20unreveal=20losing=20case=20=E2=80=94=20'?= =?UTF-8?q?Ademo=20Demo'=20became=20'ademo=20demo'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sessionSubstitutions stored keys as toLowerCase() for lookup, but the lowercase key was also used as the substitute value when building reveal pairs. This caused unrevealText to replace "John Smith" with "ademo demo" instead of "Ademo Demo". Fixed by storing both the original-case substitute and the original real value in sessionSubstitutions. The lowercase key is still used for lookup, but the preserved-case value is used for reveal pairs. https://claude.ai/code/session_01SWSwDfMVij53bCTNSCLMwn --- src/content/content.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/content/content.js b/src/content/content.js index 7ea70b1..10fa4a7 100644 --- a/src/content/content.js +++ b/src/content/content.js @@ -661,7 +661,11 @@ // Record what was actually substituted so reveal knows for (const r of replacements) { if (r.replaced && r.original) { - sessionSubstitutions.set(r.replaced.toLowerCase(), r.original); + // Store with lowercase key for lookup, but preserve original case + sessionSubstitutions.set(r.replaced.toLowerCase(), { + original: r.original, + replaced: r.replaced, // preserve original case + }); } } @@ -1272,7 +1276,8 @@ // Helper: only add if this substitute was actually sent function addIfUsed(from, to, caseSensitive) { if (!from || !to) return; - if (sessionSubstitutions.has(from.toLowerCase())) { + const entry = sessionSubstitutions.get(from.toLowerCase()); + if (entry) { pairs.push({ from, to, caseSensitive }); } } @@ -1301,9 +1306,9 @@ } // Also add auto-detect and secret scanner substitutions from this session - for (const [replaced, original] of sessionSubstitutions) { - if (!pairs.some(p => p.from.toLowerCase() === replaced)) { - pairs.push({ from: replaced, to: original }); + for (const [key, entry] of sessionSubstitutions) { + if (!pairs.some(p => p.from.toLowerCase() === key)) { + pairs.push({ from: entry.replaced, to: entry.original }); } }