Merge pull request #27 from outis1one/claude/read-repo-wA3y1
fix: reveal mode broken + missing await + select rendering — v2.0.10
This commit is contained in:
+16
-2
@@ -784,11 +784,25 @@
|
||||
// Record what was actually substituted so reveal knows
|
||||
for (const r of replacements) {
|
||||
if (r.replaced && r.original) {
|
||||
// Store with lowercase key for lookup, but preserve original case
|
||||
// Store full replacement with lowercase key for lookup
|
||||
sessionSubstitutions.set(r.replaced.toLowerCase(), {
|
||||
original: r.original,
|
||||
replaced: r.replaced, // preserve original case
|
||||
replaced: r.replaced,
|
||||
});
|
||||
// Also store individual words so reveal pairs match identity entries
|
||||
// e.g. "Ademo Demo" → store "ademo" and "demo" separately
|
||||
const replacedWords = r.replaced.split(/\s+/);
|
||||
const originalWords = r.original.split(/\s+/);
|
||||
if (replacedWords.length > 1) {
|
||||
for (let i = 0; i < replacedWords.length; i++) {
|
||||
if (replacedWords[i] && originalWords[i]) {
|
||||
sessionSubstitutions.set(replacedWords[i].toLowerCase(), {
|
||||
original: originalWords[i],
|
||||
replaced: replacedWords[i],
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -476,7 +476,7 @@ const SilentSendSync = {
|
||||
if (!keyInfo) return { data: null, decrypted: false, needsAuth: true };
|
||||
try {
|
||||
const decrypted = await SilentSendCrypto.decryptWithKey(data.payload, keyInfo.key);
|
||||
return this._handleDecryptedMeta(decrypted);
|
||||
return await this._handleDecryptedMeta(decrypted);
|
||||
} catch {
|
||||
return { data: null, decrypted: false, needsAuth: true };
|
||||
}
|
||||
@@ -488,7 +488,7 @@ const SilentSendSync = {
|
||||
if (tempKeyStore) {
|
||||
try {
|
||||
const decrypted = await SilentSendCrypto.decryptWithKey(data.payload, tempKeyStore.key);
|
||||
return this._handleDecryptedMeta(decrypted);
|
||||
return await this._handleDecryptedMeta(decrypted);
|
||||
} catch { /* wrong key, fall through to prompt */ }
|
||||
}
|
||||
|
||||
|
||||
@@ -591,7 +591,7 @@
|
||||
</section>
|
||||
|
||||
<footer>
|
||||
<p>Silent Send v2.0.9</p>
|
||||
<p>Silent Send v2.0.10</p>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
|
||||
+11
-5
@@ -338,11 +338,17 @@ async function showLockedUI() {
|
||||
// --- Profiles ---
|
||||
function renderProfileSelector() {
|
||||
const select = $('#profileSelect');
|
||||
safeHTML(select, profiles.map(p =>
|
||||
`<option value="${p.id}" ${p.id === currentProfileId ? 'selected' : ''}>` +
|
||||
`${escapeHtml(p.name)}${p.active ? '' : ' (off)'}` +
|
||||
`</option>`
|
||||
).join(''));
|
||||
// Build options via DOM API — safeHTML + DOMParser mangles <option> elements
|
||||
select.replaceChildren();
|
||||
for (const p of profiles) {
|
||||
const opt = new Option(
|
||||
`${p.name}${p.active ? '' : ' (off)'}`,
|
||||
p.id,
|
||||
false,
|
||||
p.id === currentProfileId
|
||||
);
|
||||
select.appendChild(opt);
|
||||
}
|
||||
|
||||
const profile = profiles.find(p => p.id === currentProfileId);
|
||||
$('#profileActive').checked = profile?.active ?? true;
|
||||
|
||||
Reference in New Issue
Block a user