fix: handle prompt-too-long by resetting session and continuing inline directives

This commit is contained in:
Peter Steinberger
2025-12-05 23:01:37 +00:00
parent 3241d81ce5
commit 36b0796976
3 changed files with 76 additions and 11 deletions

View File

@@ -701,6 +701,26 @@ export async function getReplyFromConfig(
});
const payloadArray = runResult.payloads ?? [];
const meta = runResult.meta;
const promptTooLong =
meta.agentMeta &&
typeof meta.agentMeta.extra === "object" &&
(meta.agentMeta.extra as { promptTooLong?: boolean }).promptTooLong;
if (promptTooLong && sessionCfg && sessionStore && sessionKey) {
// Rotate to a new session to avoid hitting context limits again.
const newId = crypto.randomUUID();
sessionEntry = {
sessionId: newId,
updatedAt: Date.now(),
systemSent,
abortedLastRun: false,
};
sessionStore[sessionKey] = sessionEntry;
await saveSessionStore(storePath, sessionStore);
sessionId = newId;
isNewSession = true;
}
let finalPayloads = payloadArray;
if (!finalPayloads || finalPayloads.length === 0) {
return undefined;