Cancel debounced metadata save before clearing chat
| @@ -183,7 +183,7 @@ import { | ||
| 183 | 183 | } from './scripts/utils.js'; |
| 184 | 184 | import { debounce_timeout, IGNORE_SYMBOL } from './scripts/constants.js'; |
| 185 | 185 | |
| 186 | 186 | import { cancelDebouncedMetadataSave, doDailyExtensionUpdatesCheck, extension_settings, initExtensions, loadExtensionSettings, runGenerationInterceptors, saveMetadataDebounced } from './scripts/extensions.js'; |
| 187 | 187 | import { COMMENT_NAME_DEFAULT, executeSlashCommandsOnChatInput, getSlashCommandsHelp, initDefaultSlashCommands, isExecutingCommandsFromChatInput, pauseScriptExecution, processChatSlashCommands, stopScriptExecution } from './scripts/slash-commands.js'; |
| 188 | 188 | import { |
| 189 | 189 | tag_map, |
| @@ -1992,6 +1992,7 @@ export function cancelDebouncedChatSave() { | ||
| 1992 | 1992 | |
| 1993 | 1993 | export async function clearChat() { |
| 1994 | 1994 | cancelDebouncedChatSave(); |
| 1995 | + cancelDebouncedMetadataSave(); | |
| 1995 | 1996 | closeMessageEditor(); |
| 1996 | 1997 | extension_prompts = {}; |
| 1997 | 1998 | if (is_delete_mode) { |
| @@ -58,14 +58,20 @@ let requiresReload = false; | ||
| 58 | 58 | let stateChanged = false; |
| 59 | 59 | let saveMetadataTimeout = null; |
| 60 | 60 | |
| 61 | +export function cancelDebouncedMetadataSave() { | |
| 62 | + if (saveMetadataTimeout) { | |
| 63 | + console.debug('Debounced metadata save cancelled'); | |
| 64 | + clearTimeout(saveMetadataTimeout); | |
| 65 | + saveMetadataTimeout = null; | |
| 66 | + } | |
| 67 | +} | |
| 68 | + | |
| 61 | 69 | export function saveMetadataDebounced() { |
| 62 | 70 | const context = getContext(); |
| 63 | 71 | const groupId = context.groupId; |
| 64 | 72 | const characterId = context.characterId; |
| 65 | 73 | |
| 66 | - if (saveMetadataTimeout) { | |
| 74 | + cancelDebouncedMetadataSave(); | |
| 67 | - clearTimeout(saveMetadataTimeout); | |
| 68 | - } | |
| 69 | 75 | |
| 70 | 76 | saveMetadataTimeout = setTimeout(async () => { |
| 71 | 77 | const newContext = getContext(); |