Merge capy/audit-fix-wave (#2994) into the harness branch

#2994 deletes the plan-*-finding-count evals, ceo-payment-findings.ts and
design-count-review.ts. Drop the CEO throw diagnostics and Design boundary
work with them, and drop the structured completion predicate, stopReason,
review-log binding and plan/review-log evidence copy: no surviving
runPlanSkillCounting caller passes expectedPlanPath, so they would be dead
code. Keep idleFor in timeout summaries (every counting caller can time
out), asserted in the existing timeout test. W7 and W8 are unchanged.
This commit is contained in:
garrytan committed 2026-09-29 15:14:06 +00:00
commit 2e1dff825d
739 files changed
+31212 -108184

No files matched your search

+6 -2
View File
@@ -7,7 +7,7 @@ import { pathToFileURL } from 'node:url';
import { execFileSync } from 'node:child_process';
const ROOT = path.resolve(import.meta.dir, '..');
type Event = { event: string; at: number; invocation: number; pid?: number; start?: string; cwd?: string; data?: string; elapsed?: number; outcome?: string; fixtureGone?: boolean };
type Event = { event: string; at: number; invocation: number; pid?: number; start?: string; cwd?: string; data?: string; elapsed?: number; outcome?: string; summary?: string; fixtureGone?: boolean };
function ownedFake(event: Event, fake: string): boolean {
if (!event.pid) return false;
@@ -55,7 +55,7 @@ test('owned counting timeout', async () => {
reviewCountCeiling:8, timeoutMs:8000, startupReadyMarker:'COUNT_TIMEOUT_FIXTURE_READY',
env:{TIMEOUT_INVOCATION:String(invocation),TIMEOUT_EVENTS:process.env.TIMEOUT_EVENTS}});
const ready = fs.readFileSync(process.env.TIMEOUT_EVENTS,'utf8').trim().split('\n').map(line=>JSON.parse(line)).find(e=>e.event==='ready'&&e.invocation===invocation);
log('returned', invocation, {elapsed:Date.now()-start,outcome:observation.outcome,fixtureGone:!fs.existsSync(ready.cwd)});
log('returned', invocation, {elapsed:Date.now()-start,outcome:observation.outcome,summary:observation.summary,fixtureGone:!fs.existsSync(ready.cwd)});
throw new Error('HELPER_TIMEOUT_'+invocation);
} finally { log('finally', invocation); }
}, 8000);
@@ -90,6 +90,10 @@ test('owned counting timeout', async () => {
expect(finished[0]!.at).toBeLessThanOrEqual(starts[1]!.at);
for (const event of returned) {
expect(event.outcome).toBe('timeout');
// The silent fixture stops writing after its ready marker: the summary names that idle time.
const idle = /; idleFor=(\d+)ms$/.exec(event.summary ?? '');
expect(idle, event.summary).not.toBeNull();
expect(Number(idle![1])).toBeGreaterThanOrEqual(1000);
expect(event.elapsed).toBeLessThan(8000);
expect(event.fixtureGone).toBe(true);
}