add JSDoc comments because yes
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
/**
|
||||
* @file Koordiniert Chat-Antworten, Modellkontext, Websuche, Anhänge, Antwortvarianten und Gesprächsverzweigungen.
|
||||
*/
|
||||
import {
|
||||
buildPersonaPrompt,
|
||||
buildRoleplayDirectionPrompt,
|
||||
@@ -95,15 +98,18 @@ export function createChatService(repositories, modelService, config, webSearchP
|
||||
|
||||
const withChatGenerationLock = (chatId, operation) => {
|
||||
const previous = chatGenerationQueues.get(chatId) || Promise.resolve();
|
||||
// Ein fehlgeschlagener Vorgänger darf die Warteschlange dieses Chats nicht blockieren.
|
||||
const current = previous.catch(() => undefined).then(operation);
|
||||
chatGenerationQueues.set(chatId, current);
|
||||
return current.finally(() => {
|
||||
// Nur den eigenen Eintrag entfernen: Inzwischen könnte bereits ein Folgeauftrag warten.
|
||||
if (chatGenerationQueues.get(chatId) === current) chatGenerationQueues.delete(chatId);
|
||||
});
|
||||
};
|
||||
|
||||
const withActiveGeneration = async (chatId, externalSignal, operation) => {
|
||||
const controller = new AbortController();
|
||||
// Verbindungsabbruch und manuelles Stoppen wirken auf denselben Generierungsauftrag.
|
||||
const abortFromCaller = () => controller.abort(externalSignal?.reason);
|
||||
if (externalSignal?.aborted) abortFromCaller();
|
||||
else externalSignal?.addEventListener("abort", abortFromCaller, { once: true });
|
||||
@@ -157,6 +163,7 @@ export function createChatService(repositories, modelService, config, webSearchP
|
||||
const allMessages = repositories.listActiveBranchMessages(chatId)
|
||||
.filter((message) => !message.delivery_status || message.delivery_status === "complete");
|
||||
const keepRecent = Math.max(0, config.chatHistoryLimit);
|
||||
// Die neuesten Nachrichten bleiben vollständig im Kontext; nur ältere werden zusammengefasst.
|
||||
const cutoffIndex = allMessages.length - keepRecent - 1;
|
||||
if (cutoffIndex < 0) return;
|
||||
const cutoffMessage = allMessages[cutoffIndex];
|
||||
|
||||
Reference in New Issue
Block a user