test(pi): arm delayed prompt proof explicitly
This commit is contained in:
@@ -74,6 +74,7 @@ type LocalProofProvider = {
|
||||
releaseChildren(): void;
|
||||
releaseParents(): void;
|
||||
releaseAll(): void;
|
||||
armDelayedPrompt(): void;
|
||||
armDelayedCompaction(): void;
|
||||
close(): Promise<void>;
|
||||
};
|
||||
@@ -486,6 +487,7 @@ async function startLocalProofProvider(mode: ProofProviderMode): Promise<LocalPr
|
||||
const held = new Set<HeldProviderResponse>();
|
||||
let closed = false;
|
||||
let closeFlight: Promise<void> | null = null;
|
||||
let delayedPromptArmed = false;
|
||||
let delayedCompactionArmed = false;
|
||||
const server: Server = createServer(async (request, response) => {
|
||||
response.once('error', () => undefined);
|
||||
@@ -560,7 +562,8 @@ async function startLocalProofProvider(mode: ProofProviderMode): Promise<LocalPr
|
||||
respondWithText(response, model, 'RESILIENCE_COMPACTION_SUMMARY');
|
||||
return;
|
||||
}
|
||||
if (role === 'parent' && latestUserMessageContains(body, 'BACKGROUND_ACTIVE')) {
|
||||
if (role === 'parent' && delayedPromptArmed) {
|
||||
delayedPromptArmed = false;
|
||||
const entry = { role, response } satisfies HeldProviderResponse;
|
||||
held.add(entry);
|
||||
response.once('close', () => held.delete(entry));
|
||||
@@ -659,6 +662,7 @@ async function startLocalProofProvider(mode: ProofProviderMode): Promise<LocalPr
|
||||
releaseChildren: () => release('child'),
|
||||
releaseParents: () => release('parent'),
|
||||
releaseAll: () => release(),
|
||||
armDelayedPrompt: () => { delayedPromptArmed = true; },
|
||||
armDelayedCompaction: () => { delayedCompactionArmed = true; },
|
||||
close: async () => {
|
||||
if (closed) return;
|
||||
@@ -1897,6 +1901,13 @@ export function armFinalAsarResilienceCompactDelay(): { delayMs: number } {
|
||||
return { delayMs: PROOF_MUTATION_CONFIRMATION_DELAY_MS };
|
||||
}
|
||||
|
||||
export function armFinalAsarResiliencePromptDelay(): { delayMs: number } {
|
||||
const run = resilienceCompositionRun;
|
||||
if (!run) throw new Error('PI resilience proof is not running');
|
||||
run.provider.armDelayedPrompt();
|
||||
return { delayMs: PROOF_MUTATION_CONFIRMATION_DELAY_MS };
|
||||
}
|
||||
|
||||
export async function restartFinalAsarResilienceOther(): Promise<PiReleaseResilienceStatus> {
|
||||
const run = resilienceCompositionRun;
|
||||
if (!run) throw new Error('PI resilience proof is not running');
|
||||
|
||||
Reference in New Issue
Block a user