This commit is contained in:
Tim Baek
2026-02-05 10:24:12 +04:00
parent 62750b8980
commit d3f2cf7474
2 changed files with 42 additions and 15 deletions
+21 -15
View File
@@ -1653,21 +1653,27 @@
// Check if there are pending tasks (more reliable than lastMessage.done) // Check if there are pending tasks (more reliable than lastMessage.done)
if (taskIds !== null && taskIds.length > 0) { if (taskIds !== null && taskIds.length > 0) {
// Tasks pending - queue the message instead of blocking if ($settings?.enableMessageQueue ?? true) {
const _files = JSON.parse(JSON.stringify(files)); // Queue the message
messageQueue = [ const _files = JSON.parse(JSON.stringify(files));
...messageQueue, messageQueue = [
{ ...messageQueue,
id: uuidv4(), {
prompt: userPrompt, id: uuidv4(),
files: _files prompt: userPrompt,
} files: _files
]; }
// Clear input ];
messageInput?.setText(''); // Clear input
prompt = ''; messageInput?.setText('');
files = []; prompt = '';
return; files = [];
return;
} else {
// Interrupt: stop current generation and proceed
await stopResponse();
await tick();
}
} }
if (history?.currentId) { if (history?.currentId) {
@@ -58,6 +58,7 @@
let insertFollowUpPrompt = false; let insertFollowUpPrompt = false;
let regenerateMenu = true; let regenerateMenu = true;
let enableMessageQueue = true;
let landingPageMode = ''; let landingPageMode = '';
let chatBubble = true; let chatBubble = true;
@@ -224,6 +225,7 @@
insertFollowUpPrompt = $settings?.insertFollowUpPrompt ?? false; insertFollowUpPrompt = $settings?.insertFollowUpPrompt ?? false;
regenerateMenu = $settings?.regenerateMenu ?? true; regenerateMenu = $settings?.regenerateMenu ?? true;
enableMessageQueue = $settings?.enableMessageQueue ?? true;
largeTextAsFile = $settings?.largeTextAsFile ?? false; largeTextAsFile = $settings?.largeTextAsFile ?? false;
copyFormatted = $settings?.copyFormatted ?? false; copyFormatted = $settings?.copyFormatted ?? false;
@@ -584,6 +586,25 @@
<div class=" my-2 text-sm font-medium">{$i18n.t('Chat')}</div> <div class=" my-2 text-sm font-medium">{$i18n.t('Chat')}</div>
<div>
<div class=" py-0.5 flex w-full justify-between">
<div id="enable-message-queue-label" class=" self-center text-xs">
{$i18n.t('Enable Message Queue')}
</div>
<div class="flex items-center gap-2 p-1">
<Switch
ariaLabelledbyId="enable-message-queue-label"
tooltip={true}
bind:state={enableMessageQueue}
on:change={() => {
saveSettings({ enableMessageQueue });
}}
/>
</div>
</div>
</div>
<div> <div>
<div class=" py-0.5 flex w-full justify-between"> <div class=" py-0.5 flex w-full justify-between">
<div id="chat-direction-label" class=" self-center text-xs"> <div id="chat-direction-label" class=" self-center text-xs">