Cancel debounced metadata save before clearing chat

9438b5c4aaadbb2bf6594d2631df1c62c3c7dfbd

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

2 files changed, +11 -4Ignore whitespace
public/script.js+2 -1
@@ -183,7 +183,7 @@ import {
183183} from './scripts/utils.js';
184184import { debounce_timeout, IGNORE_SYMBOL } from './scripts/constants.js';
185185
186186import { cancelDebouncedMetadataSave, doDailyExtensionUpdatesCheck, extension_settings, initExtensions, loadExtensionSettings, runGenerationInterceptors, saveMetadataDebounced } from './scripts/extensions.js';
187187import { COMMENT_NAME_DEFAULT, executeSlashCommandsOnChatInput, getSlashCommandsHelp, initDefaultSlashCommands, isExecutingCommandsFromChatInput, pauseScriptExecution, processChatSlashCommands, stopScriptExecution } from './scripts/slash-commands.js';
188188import {
189189 tag_map,
@@ -1992,6 +1992,7 @@ export function cancelDebouncedChatSave() {
19921992
19931993export async function clearChat() {
19941994 cancelDebouncedChatSave();
1995+ cancelDebouncedMetadataSave();
19951996 closeMessageEditor();
19961997 extension_prompts = {};
19971998 if (is_delete_mode) {
public/scripts/extensions.js+9 -3
@@ -58,14 +58,20 @@ let requiresReload = false;
5858let stateChanged = false;
5959let saveMetadataTimeout = null;
6060
61+export function cancelDebouncedMetadataSave() {
62+ if (saveMetadataTimeout) {
63+ console.debug('Debounced metadata save cancelled');
64+ clearTimeout(saveMetadataTimeout);
65+ saveMetadataTimeout = null;
66+ }
67+}
68+
6169export function saveMetadataDebounced() {
6270 const context = getContext();
6371 const groupId = context.groupId;
6472 const characterId = context.characterId;
6573
66- if (saveMetadataTimeout) {
74+ cancelDebouncedMetadataSave();
67- clearTimeout(saveMetadataTimeout);
68- }
6975
7076 saveMetadataTimeout = setTimeout(async () => {
7177 const newContext = getContext();