fix(prompt): treat post-dispatch failures as accepted

This commit is contained in:
YeonGyu-Kim
2026-05-20 11:42:32 +09:00
parent f540249838
commit d3e218f912
31 changed files with 503 additions and 76 deletions
@@ -18,6 +18,7 @@ import {
findNearestMessageWithFieldsFromSDK,
} from "../../features/hook-message-injector"
import { dispatchInternalPrompt, isInternalPromptDispatchAccepted } from "../shared/prompt-async-gate"
import { isAmbiguousPostDispatchPromptFailure } from "../../shared/prompt-failure-classifier"
export async function runAggressiveTruncationStrategy(params: {
sessionID: string
@@ -108,6 +109,13 @@ export async function runAggressiveTruncationStrategy(params: {
} as never,
})
if (!isInternalPromptDispatchAccepted(promptResult)) {
if (promptResult.status === "failed" && isAmbiguousPostDispatchPromptFailure(promptResult)) {
log("[auto-compact] delayed auto prompt may have been accepted before ambiguous failure", {
sessionID: params.sessionID,
error: String(promptResult.error),
})
return
}
log("[auto-compact] delayed auto prompt skipped by promptAsync gate", {
sessionID: params.sessionID,
status: promptResult.status,