fix(pi): settle delayed compact ownership
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { createServer, type IncomingMessage, type Server, type ServerResponse } from 'node:http';
|
||||
import { execFile } from 'node:child_process';
|
||||
import { mkdtemp, readFile, readdir, rm } from 'node:fs/promises';
|
||||
import { mkdtemp, readFile, readdir, rm, writeFile } from 'node:fs/promises';
|
||||
import { tmpdir } from 'node:os';
|
||||
import path from 'node:path';
|
||||
import { promisify } from 'node:util';
|
||||
@@ -26,6 +26,7 @@ import type { ConversationPatchEnvelope, PrepareConversationInput } from '../con
|
||||
import { PiManagedExtensionHost } from './extension-host';
|
||||
import { PiManagedInputRevisionCoordinator } from './managed-input-revision';
|
||||
import { runPiReleasePressureCleanup } from './release-proof-cleanup';
|
||||
import { ensurePiManagedPaths } from './resource-loader';
|
||||
import type { PiRpcEvent } from './rpc-client';
|
||||
import { createPiManagedWorkerOpener, PiConversationRuntime } from './runtime';
|
||||
import { PiSessionRegistry } from './session-registry';
|
||||
@@ -510,7 +511,9 @@ async function startLocalProofProvider(mode: ProofProviderMode): Promise<LocalPr
|
||||
return;
|
||||
}
|
||||
const toolNames = toolNamesFrom(body);
|
||||
const role: ProofWorkerRole = toolNames.includes('subagent') ? 'parent' : 'child';
|
||||
const role: ProofWorkerRole = mode === 'resilience' && delayedCompactionArmed
|
||||
? 'parent'
|
||||
: toolNames.includes('subagent') ? 'parent' : 'child';
|
||||
const toolResult = hasToolResult(body);
|
||||
const providerRequest: ProviderRequest = {
|
||||
role,
|
||||
@@ -552,7 +555,7 @@ async function startLocalProofProvider(mode: ProofProviderMode): Promise<LocalPr
|
||||
respondWithSubagentCall(response, model, 'coding');
|
||||
return;
|
||||
}
|
||||
if (role === 'parent' && delayedCompactionArmed) {
|
||||
if (delayedCompactionArmed) {
|
||||
delayedCompactionArmed = false;
|
||||
const entry = { role, response } satisfies HeldProviderResponse;
|
||||
held.add(entry);
|
||||
@@ -1743,6 +1746,7 @@ async function waitForResilienceStatus(
|
||||
export async function startFinalAsarResilienceProof(input: {
|
||||
composition: CodingProductComposition;
|
||||
projectPath: string;
|
||||
userDataDir: string;
|
||||
hostProxyBaseUrl: string;
|
||||
hostToken: string;
|
||||
}): Promise<{
|
||||
@@ -1766,6 +1770,13 @@ export async function startFinalAsarResilienceProof(input: {
|
||||
const providerService = getProviderService();
|
||||
await providerService.createAccount(proxyProviderAccount(input.hostProxyBaseUrl));
|
||||
await providerService.setDefaultAccount(PROOF_ACCOUNT_ID);
|
||||
const managedPaths = await ensurePiManagedPaths(input.userDataDir);
|
||||
await writeFile(path.join(managedPaths.configDir, 'settings.json'), JSON.stringify({
|
||||
compaction: {
|
||||
reserveTokens: 128,
|
||||
keepRecentTokens: 1,
|
||||
},
|
||||
}, null, 2), 'utf8');
|
||||
const project = await input.composition.projects.createProject({ projectPath: input.projectPath });
|
||||
projectId = project.project.id;
|
||||
await createCodingProjectAgent(input.projectPath, {
|
||||
|
||||
Reference in New Issue
Block a user