fix(review-pass): write an unavailable outside voice's failure text to its own file so verify keeps the earlier output (GST-1104)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
This commit is contained in:
garrytanandcapy-ai[bot] committed 2026-11-03 00:41:25 +00:00
1 parent 275df49b1a
commit b0a8abd55d
2 files changed
+3 -1

No files matched your search

+1 -1
View File
@@ -128,7 +128,7 @@ const familyStop = (readers) => {
const safe = (s) => s.replace(/[^a-zA-Z0-9._-]/g, '_');
const UNAVAILABLE = 'unavailable: ';
const recordUnavailable = async (m, r, why) => {
const file = m.out + '/out/' + safe(r.reader) + '.txt';
const file = m.out + '/out/' + safe(r.reader) + '.unavailable.txt';
await tools.capy.write({ path: file, content: 'outside voice (' + modelOf(r).model_id + ') ' + why + '\n' });
const c = await sh(bin + ' collect --ledger ' + q(m.ledger) + roleArgs(r) + ' --output ' + q(file) + ' --merged ' + q(m.merged) + ' --manifest ' + q(mf) + ' --unavailable ' + q(why));
if (c.code !== 0) return stop('collect --unavailable ' + r.reader + ' exited ' + c.code + ': ' + c.out.slice(-500));
+2
View File
@@ -528,6 +528,7 @@ describe('Capy pass program (fake host, real bins)', () => {
expect(h.stops).toEqual('hang' in o ? [ov[0]] : []);
const v = bin(dir, env, ['verify', '--ledger', path.join(out, 'review-ledger.jsonl')]);
expect(v.stdout).toMatch(/^BRIEF outside-voice UNAVAILABLE/m);
expect(v.stdout).not.toContain('MISMATCH');
expect(v.stdout).toContain('unavailable=1');
}
}, 600_000);
@@ -572,6 +573,7 @@ describe('Capy pass program (fake host, real bins)', () => {
expect(res).toContain('NEXT: judge the voices');
const v = bin(dir, env, ['verify', '--ledger', path.join(out, 'review-ledger.jsonl')]);
expect(v.stdout).toMatch(/^BRIEF outside-voice UNAVAILABLE/m);
expect(v.stdout).not.toContain('MISMATCH');
}, 300_000);
test('an audit reader marked first settles before any specialist starts; its output is returned, never merged', async () => {