feat(qa-evidence): captures list the caller's declared-but-unrun required probes

GSTACK_QA_REQUIRED_PROBES (a JSON array of native child commands) makes every
capture print requiredRemaining; it never judges pass or fail. The functional
eval passes the webhook list from QA_WEBHOOK_REQUIRED_SCENARIOS, which the
verdict now reads too, so the nudge and the verdict share one source (agreed
with #3002's owner). CI webhook-report kept stopping with scenarios unrun.
This commit is contained in:
garrytan committed 2026-09-30 20:42:29 +00:00
1 parent a615303213
commit 90203acda3
4 files changed
+30 -4

No files matched your search

+9
View File
@@ -333,3 +333,12 @@ test('materialize refuses evidence whose declared input snapshot predates the la
f.json('annotations.json', { revision: 'fixture-revision', limits: ['Adverse coverage predates the input change.'], evidence: [{ ...rows[0], classification: 'superseded' }, rows[1]] });
expect(f.run('materialize', f.root, 'annotations.json').status).toBe(0);
});
test('captures list declared-but-unrun required probes without judging them', () => {
const f = fixture();
const required = [`${process.execPath} -e console.log(JSON.stringify({step:1}))`, 'bun run probe -- reject'];
const result = spawnSync(process.execPath, [CLI, 'capture', f.root, '001', '--timeout-ms', '4000', '--', process.execPath, '-e', 'console.log(JSON.stringify({step:1}))'],
{ cwd: f.root, encoding: 'utf8', timeout: 10_000, env: { ...process.env, GSTACK_QA_REQUIRED_PROBES: JSON.stringify(required) } });
expect(result.status, result.stderr).toBe(0);
expect(receipt(result.stdout).requiredRemaining).toEqual(['bun run probe -- reject']);
});