Loop 3 times before discarding response length override on save

0773a8692248f8f399e3345293583cd5a9714736

Cohee <18619528+Cohee1207@users.noreply.github.com>

1 files changed, +9 -3Ignore whitespace
public/script.js+9 -3
@@ -574,7 +574,7 @@ export const DEFAULT_SAVE_EDIT_TIMEOUT = debounce_timeout.relaxed;
574574/** @type {debounce_timeout} The debounce timeout used for printing. debounce_timeout.quick: 100 ms */
575575export const DEFAULT_PRINT_TIMEOUT = debounce_timeout.quick;
576576
577577export const saveSettingsDebounced = debounce((loopCounter = 0) => saveSettings(loopCounter), DEFAULT_SAVE_EDIT_TIMEOUT);
578578export const saveCharacterDebounced = debounce(() => $('#create_button').trigger('click'), DEFAULT_SAVE_EDIT_TIMEOUT);
579579
580580/**
@@ -6934,14 +6934,20 @@ function selectKoboldGuiPreset() {
69346934 .trigger('change');
69356935}
69366936
69376937export async function saveSettings(typeloopCounter = 0) {
69386938 if (!settingsReady) {
69396939 console.warn('Settings not ready, aborting save');
69406940 return;
69416941 }
69426942
6943+ const MAX_RETRIES = 3;
69436944 if (TempResponseLength.isCustomized()) {
6944- console.warn('Response length is currently being overridden. Restoring previous value before saving.');
6945+ if (loopCounter < MAX_RETRIES) {
6946+ console.warn('Response length is currently being overridden, scheduling another save');
6947+ saveSettingsDebounced(++loopCounter);
6948+ return;
6949+ }
6950+ console.error('Response length is currently being overridden, but the save loop has reached the maximum number of retries');
69456951 TempResponseLength.restore(null);
69466952 }
69476953