This commit is contained in:
Episkey 2026-01-29 11:17:08 +08:00 committed by GitHub
commit a6392b6b6c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 19 additions and 10 deletions

View File

@ -73,6 +73,7 @@ Status: beta.
- **BREAKING:** Gateway auth mode "none" is removed; gateway now requires token/password (Tailscale Serve identity still allowed). - **BREAKING:** Gateway auth mode "none" is removed; gateway now requires token/password (Tailscale Serve identity still allowed).
### Fixes ### Fixes
- Agents: add error handling to orphaned message cleanup to prevent message processing queue from blocking. (#2262)
- Discord: restore username directory lookup in target resolution. (#3131) Thanks @bonald. - Discord: restore username directory lookup in target resolution. (#3131) Thanks @bonald.
- Agents: align MiniMax base URL test expectation with default provider config. (#3131) Thanks @bonald. - Agents: align MiniMax base URL test expectation with default provider config. (#3131) Thanks @bonald.
- Agents: prevent retries on oversized image errors and surface size limits. (#2871) Thanks @Suksham-sharma. - Agents: prevent retries on oversized image errors and surface size limits. (#2871) Thanks @Suksham-sharma.

View File

@ -717,18 +717,26 @@ export async function runEmbeddedAttempt(
}); });
// Repair orphaned trailing user messages so new prompts don't violate role ordering. // Repair orphaned trailing user messages so new prompts don't violate role ordering.
const leafEntry = sessionManager.getLeafEntry(); try {
if (leafEntry?.type === "message" && leafEntry.message.role === "user") { const leafEntry = sessionManager.getLeafEntry();
if (leafEntry.parentId) { if (leafEntry?.type === "message" && leafEntry.message.role === "user") {
sessionManager.branch(leafEntry.parentId); if (leafEntry.parentId) {
} else { sessionManager.branch(leafEntry.parentId);
sessionManager.resetLeaf(); } else {
sessionManager.resetLeaf();
}
const sessionContext = sessionManager.buildSessionContext();
activeSession.agent.replaceMessages(sessionContext.messages);
log.warn(
`Removed orphaned user message to prevent consecutive user turns. ` +
`runId=${params.runId} sessionId=${params.sessionId}`,
);
} }
const sessionContext = sessionManager.buildSessionContext(); } catch (err) {
activeSession.agent.replaceMessages(sessionContext.messages); log.error(
log.warn( `Failed to repair orphaned user message, continuing anyway. ` +
`Removed orphaned user message to prevent consecutive user turns. ` +
`runId=${params.runId} sessionId=${params.sessionId}`, `runId=${params.runId} sessionId=${params.sessionId}`,
{ error: err instanceof Error ? err.message : String(err) },
); );
} }