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