From bd056934e12de1b1b0c7d9c61826016355628257 Mon Sep 17 00:00:00 2001 From: Spicy_Marinara Date: Thu, 8 Jan 2026 18:27:16 +0100 Subject: [PATCH] v3.2.5: Always enable JSON cleaning regex with proper settings --- index.js | 23 +------- manifest.json | 2 +- settings.html | 2 +- src/systems/features/jsonCleaning.js | 82 ++++++++++++++++------------ 4 files changed, 52 insertions(+), 57 deletions(-) diff --git a/index.js b/index.js index e9ce379..9d6d119 100644 --- a/index.js +++ b/index.js @@ -313,18 +313,6 @@ async function initUI() { extensionSettings.generationMode = String($(this).val()); saveSettings(); updateGenerationModeUI(); - - // Add or remove JSON cleaning regex based on mode - // This ensures old messages in chat history are also cleaned - try { - if (extensionSettings.generationMode === 'together') { - await ensureJsonCleaningRegex(st_extension_settings, saveSettingsDebounced); - } else { - removeJsonCleaningRegex(st_extension_settings, saveSettingsDebounced); - } - } catch (error) { - console.error('[RPG Companion] JSON cleaning regex update failed:', error); - } }); $('#rpg-toggle-user-stats').on('change', function() { @@ -1000,17 +988,10 @@ jQuery(async () => { // Non-critical - continue without it } - // Import the JSON cleaning regex for Together mode if enabled + // Import the JSON cleaning regex to clean up JSON in messages // This cleans historical messages when displayed - // Note: We also clean directly in message handler for redundancy try { - // console.log('[RPG Companion] Checking JSON cleaning regex. Generation mode:', extensionSettings.generationMode); - if (extensionSettings.generationMode === 'together') { - await ensureJsonCleaningRegex(st_extension_settings, saveSettingsDebounced); - } else { - // Remove the regex if switching to separate mode - removeJsonCleaningRegex(st_extension_settings, saveSettingsDebounced); - } + await ensureJsonCleaningRegex(st_extension_settings, saveSettingsDebounced); } catch (error) { console.error('[RPG Companion] JSON cleaning regex setup failed:', error); // Non-critical - continue without it diff --git a/manifest.json b/manifest.json index a811032..319e980 100644 --- a/manifest.json +++ b/manifest.json @@ -6,6 +6,6 @@ "js": "index.js", "css": "style.css", "author": "Marinara", - "version": "3.2.4", + "version": "3.2.5", "homePage": "https://github.com/SpicyMarinara/rpg-companion-sillytavern" } diff --git a/settings.html b/settings.html index 1520da7..b86a6d4 100644 --- a/settings.html +++ b/settings.html @@ -48,7 +48,7 @@
- v3.2.4 + v3.2.5
diff --git a/src/systems/features/jsonCleaning.js b/src/systems/features/jsonCleaning.js index 1305b2b..64d6df7 100644 --- a/src/systems/features/jsonCleaning.js +++ b/src/systems/features/jsonCleaning.js @@ -35,40 +35,53 @@ export async function ensureJsonCleaningRegex(st_extension_settings, saveSetting // Update existing script with new regex pattern if it's different const newPattern = '/```json[\\s\\S]*?```/gim'; + // Always ensure these properties are set correctly + let needsSave = false; + if (existingScript.findRegex !== newPattern) { existingScript.findRegex = newPattern; - existingScript.placement = [2]; // 2 = AI Output - existingScript.disabled = false; // Ensure it's enabled - existingScript.runOnEdit = true; // Ensure it runs on edit - existingScript.displayOnly = true; // Alter Chat Display - existingScript.onlyFormatDisplay = true; // Ensure display formatting is enabled - - if (typeof saveSettingsDebounced === 'function') { - saveSettingsDebounced(); - } - console.log('[RPG Companion] Updated regex pattern and placement.'); - } else { - // Ensure it's enabled even if pattern matches - if (existingScript.disabled) { - existingScript.disabled = false; - if (typeof saveSettingsDebounced === 'function') { - saveSettingsDebounced(); - } - console.log('[RPG Companion] Re-enabled disabled regex.'); - } else { - // Also update placement if it's wrong - const expectedPlacement = [2]; // 2 = AI Output - if (JSON.stringify(existingScript.placement) !== JSON.stringify(expectedPlacement)) { - existingScript.placement = expectedPlacement; - if (typeof saveSettingsDebounced === 'function') { - saveSettingsDebounced(); - // Force immediate save after a short delay - setTimeout(() => saveSettingsDebounced(), 100); - } - console.log('[RPG Companion] Updated regex placement to [2].'); - } - } + needsSave = true; } + + if (JSON.stringify(existingScript.placement) !== JSON.stringify([2])) { + existingScript.placement = [2]; // 2 = AI Output + needsSave = true; + } + + if (existingScript.disabled !== false) { + existingScript.disabled = false; + needsSave = true; + } + + if (existingScript.runOnEdit !== true) { + existingScript.runOnEdit = true; + needsSave = true; + } + + if (existingScript.displayOnly !== true) { + existingScript.displayOnly = true; // Alter Chat Display + needsSave = true; + } + + if (existingScript.onlyFormatDisplay !== true) { + existingScript.onlyFormatDisplay = true; // Alter Chat Display + needsSave = true; + } + + if (existingScript.onlyFormatPrompt !== true) { + existingScript.onlyFormatPrompt = true; // Alter Outgoing Prompt + needsSave = true; + } + + if (existingScript.promptOnly !== true) { + existingScript.promptOnly = true; // Enable prompt processing + needsSave = true; + } + + if (existingScript.filterGaslighting !== true) { + existingScript.filterGaslighting = true; // Ephemerality + } + console.log('[RPG Companion] JSON Cleaning Regex is already downloaded and active.'); return; } @@ -97,10 +110,11 @@ export async function ensureJsonCleaningRegex(st_extension_settings, saveSetting placement: [2], // 2 = AI Output disabled: false, markdownOnly: false, - promptOnly: false, + promptOnly: true, // Enable prompt processing runOnEdit: true, - displayOnly: true, // Alter Chat Display - onlyFormatDisplay: true, // Ensure display formatting is enabled + onlyFormatDisplay: true, // Alter Chat Display (enabled) + onlyFormatPrompt: true, // Alter Outgoing Prompt (enabled) + filterGaslighting: true, // Ephemerality - makes it only affect display substituteRegex: 0, minDepth: null, maxDepth: null