fix(prompt-gate): scope reservation releases
This commit is contained in:
@@ -197,7 +197,9 @@ export function createRalphLoopEventHandler(
|
||||
const props = event.properties as Record<string, unknown> | undefined
|
||||
const runtimeRetryActivitySessionID = getRuntimeRetryActivitySessionID(event.type, props)
|
||||
if (runtimeRetryActivitySessionID) {
|
||||
releasePromptAsyncReservation(runtimeRetryActivitySessionID, "ralph-loop:activity")
|
||||
releasePromptAsyncReservation(runtimeRetryActivitySessionID, "ralph-loop:activity", {
|
||||
reservedBy: HOOK_NAME,
|
||||
})
|
||||
runtimeErrorRetriedSessions.delete(runtimeRetryActivitySessionID)
|
||||
recentHandledSyntheticIdleAt.delete(runtimeRetryActivitySessionID)
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ import type { PluginInput } from "@opencode-ai/plugin"
|
||||
import type { RalphLoopOptions, RalphLoopState } from "./types"
|
||||
import { getTranscriptPath as getDefaultTranscriptPath } from "../claude-code-hooks/transcript"
|
||||
import { releasePromptAsyncReservation } from "../shared/prompt-async-gate"
|
||||
import { HOOK_NAME } from "./constants"
|
||||
import { createLoopStateController } from "./loop-state-controller"
|
||||
import { createRalphLoopEventHandler } from "./ralph-loop-event-handler"
|
||||
|
||||
@@ -71,7 +72,9 @@ export function createRalphLoopHook(
|
||||
startLoop: (sessionID, prompt, loopOptions): boolean => {
|
||||
const startSuccess = loopState.startLoop(sessionID, prompt, loopOptions)
|
||||
if (startSuccess) {
|
||||
releasePromptAsyncReservation(sessionID, "ralph-loop:start-loop")
|
||||
releasePromptAsyncReservation(sessionID, "ralph-loop:start-loop", {
|
||||
reservedBy: HOOK_NAME,
|
||||
})
|
||||
}
|
||||
if (!startSuccess || typeof loopOptions?.messageCountAtStart === "number") {
|
||||
return startSuccess
|
||||
|
||||
@@ -90,7 +90,9 @@ export async function handleFailedVerification(
|
||||
}
|
||||
|
||||
try {
|
||||
releasePromptAsyncReservation(parentSessionID, "ralph-loop:verification-failed")
|
||||
releasePromptAsyncReservation(parentSessionID, "ralph-loop:verification-failed", {
|
||||
reservedBy: HOOK_NAME,
|
||||
})
|
||||
const promptResult = await injectContinuationPrompt(ctx, {
|
||||
sessionID: parentSessionID,
|
||||
prompt: buildVerificationFailurePrompt(previewState),
|
||||
|
||||
Reference in New Issue
Block a user