Cancel debounced metadata save before clearing chat

This commit is contained in:
Cohee
2025-05-17 15:44:51 +03:00
parent e5677b620d
commit 9438b5c4aa
2 changed files with 11 additions and 4 deletions

View File

@ -183,7 +183,7 @@ import {
} from './scripts/utils.js'; } from './scripts/utils.js';
import { debounce_timeout, IGNORE_SYMBOL } from './scripts/constants.js'; import { debounce_timeout, IGNORE_SYMBOL } from './scripts/constants.js';
import { doDailyExtensionUpdatesCheck, extension_settings, initExtensions, loadExtensionSettings, runGenerationInterceptors, saveMetadataDebounced } from './scripts/extensions.js'; import { cancelDebouncedMetadataSave, doDailyExtensionUpdatesCheck, extension_settings, initExtensions, loadExtensionSettings, runGenerationInterceptors, saveMetadataDebounced } from './scripts/extensions.js';
import { COMMENT_NAME_DEFAULT, executeSlashCommandsOnChatInput, getSlashCommandsHelp, initDefaultSlashCommands, isExecutingCommandsFromChatInput, pauseScriptExecution, processChatSlashCommands, stopScriptExecution } from './scripts/slash-commands.js'; import { COMMENT_NAME_DEFAULT, executeSlashCommandsOnChatInput, getSlashCommandsHelp, initDefaultSlashCommands, isExecutingCommandsFromChatInput, pauseScriptExecution, processChatSlashCommands, stopScriptExecution } from './scripts/slash-commands.js';
import { import {
tag_map, tag_map,
@ -1992,6 +1992,7 @@ export function cancelDebouncedChatSave() {
export async function clearChat() { export async function clearChat() {
cancelDebouncedChatSave(); cancelDebouncedChatSave();
cancelDebouncedMetadataSave();
closeMessageEditor(); closeMessageEditor();
extension_prompts = {}; extension_prompts = {};
if (is_delete_mode) { if (is_delete_mode) {

View File

@ -58,14 +58,20 @@ let requiresReload = false;
let stateChanged = false; let stateChanged = false;
let saveMetadataTimeout = null; let saveMetadataTimeout = null;
export function cancelDebouncedMetadataSave() {
if (saveMetadataTimeout) {
console.debug('Debounced metadata save cancelled');
clearTimeout(saveMetadataTimeout);
saveMetadataTimeout = null;
}
}
export function saveMetadataDebounced() { export function saveMetadataDebounced() {
const context = getContext(); const context = getContext();
const groupId = context.groupId; const groupId = context.groupId;
const characterId = context.characterId; const characterId = context.characterId;
if (saveMetadataTimeout) { cancelDebouncedMetadataSave();
clearTimeout(saveMetadataTimeout);
}
saveMetadataTimeout = setTimeout(async () => { saveMetadataTimeout = setTimeout(async () => {
const newContext = getContext(); const newContext = getContext();