fix(evals): the docs observer accepts the spawned-prefixed gstack-skill-start --help read

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
This commit is contained in:
garrytanandcapy-ai[bot] committed 2026-10-17 02:12:31 +00:00
1 parent b40d8418f9
commit 32c3ddc7a5
2 files changed
+10

No files matched your search

+9
View File
@@ -36,6 +36,15 @@ test.each(['success', 'error', 'abort', 'unknown'])('same-session literal end ac
expect(docsToolFailures(result, fixture)).toEqual([]);
});
test('start --help is a read with or without the spawned prefix; anything else after the prefix still names document-release', () => {
const start = `${fixture.skills.split(path.sep).join('/')}/bin/gstack-skill-start`;
expect(docsCommandAllowed(`GSTACK_SESSION_KIND=spawned ${start} --help`, fixture)).toBe(true);
expect(docsCommandAllowed(`${start} --help`, fixture)).toBe(true);
expect(docsCommandAllowed(`GSTACK_SESSION_KIND=spawned ${start} --help --skill qa`, fixture)).toBe(false);
expect(docsCommandAllowed(`GSTACK_SESSION_KIND=spawned ${start} --skill qa --model claude`, fixture)).toBe(false);
expect(docsCommandAllowed(`GSTACK_SESSION_KIND=spawned /tmp/gstack-skill-start --help`, fixture)).toBe(false);
});
test('historical misplaced spawned prefix remains rejected while corrected preamble stays supported', () => {
const [original, spawned] = docsPreambleCommands(fixture);
// The pre-#2763 wrapper put a misplaced prefix on its _SS assignment.
+1
View File
@@ -281,6 +281,7 @@ function literalDocsCommandAllowed(text: string, fixture: ReturnType<typeof fixt
const start = path.join(fixture.skills, 'bin/gstack-skill-start').split(path.sep).join('/');
const end = path.join(fixture.skills, 'bin/gstack-skill-end').split(path.sep).join('/');
if ((commandName === start || commandName === end) && rest.length === 1 && rest[0] === '--help') return true;
if (commandName === marker && rest.length === 2 && rest[0] === start && rest[1] === '--help') return true;
return (commandName === marker && rest[0] === start || commandName === start || commandName === end) && args.includes('document-release');
}