test(shared-libs): seed the lifecycle replay's first Step 3 pass instead of replaying it

shared-libs-review-lifecycle ran ~88% of its 300 s session budget (12-run
census median 265 s, 4/24 sessions timed out). The fixture now executes pass 1's
Step 3 once with the real logger and Git: a real unused REVIEW_START, then the
diff, inventories, attributes/config/index flags, gstack-review-read output and
every file's bytes and sha256, saved to one observation. The model resumes at
Step 4 with an exact four-file first read, the observation named as the
authoritative pass-1 repository read, one post-fix verification, an explicit
pass-2 read list and a twelve-line summary. Pass 2 still runs its own --start,
diff, reads, fingerprint and stage actor before --finish.

The actor scope now states that a current settled final-pass actor result
supplies the replaced QA/adversarial prerequisites and that the no-credit
disclosure is a reporting label: one r1 session persisted completed:false
from that ambiguity.

New assertions: the final binding never uses the seeded token's start or tree,
and the observation was read; free controls finish the seeded token (binding
changed) and omit the observation read, and both fail.
This commit is contained in:
garrytan committed 2026-09-30 19:36:02 +00:00
1 parent ac177337a1
commit ea7fbbcb7c
4 files changed
+127 -11

No files matched your search

+3 -2
View File
@@ -103,7 +103,8 @@ describe('bounded shared-code revalidation prompt', () => {
'All prior receipts are preserved', 'Source-changing cycles invalidate earlier results',
'invoke the actor again on the new zero-edit pass', "Never refresh an old receipt's hashes",
'Missing, failed, stale or wrong-state results require noncompletion', 'cannot complete core/checklist review',
'no actual native coverage credit']) expect(prompt).toContain(rule);
'only a current settled:true actor result from the final pass supplies the replaced Step 4.7 QA and Step 4.8 native adversarial prerequisites',
'a reporting label, not a missing stage', 'no actual native coverage credit']) expect(prompt).toContain(rule);
expect(prompt).not.toContain('Required reviewer coverage for this scoped replay');
expect(prompt).not.toContain('Do not edit target source');
});
@@ -237,7 +238,7 @@ describe('bounded shared-code revalidation prompt', () => {
expect(await invoke()).toBe(result);
expect(calls).toEqual([[f, 'shared-libs-review-revalidation', reviewRevalidationPrompt(f, instructions, input, resumed), 'skip', { attempt, prerequisiteSource: 'synthetic-fixture-input' }]]);
const lifecycle = source.slice(source.indexOf("test('shared-libs-review-lifecycle'"), source.indexOf("test('shared-libs-review-revalidation'"));
expect(lifecycle).toContain('reviewPrompt(f, instructions, input, stageActor)');
expect(lifecycle).toContain('reviewPrompt(f, instructions, input, stageActor, seed)');
expect(lifecycle).not.toContain('reviewRevalidationPrompt(');
});