fix(cli): audit-open crashes with ReferenceError: output is not defined (#2236) (#2238)

The audit-open case in gsd-tools.cjs called bare output() on both the --json
and text paths. output is never in scope at the call site — the entire core
module is imported as `const core`, so every other command uses core.output().

Two-part fix:
- Replace output(...) with core.output(...) on both branches
- Pass result (the raw object) on the --json path, not JSON.stringify(result)
  — core.output always calls JSON.stringify internally, so pre-serialising
  caused double-encoding and agents received a string instead of an object

Adds three CLI-level regression tests to milestone-audit.test.cjs that invoke
audit-open through runGsdTools (the same path the agent uses), so a recurrence
at the dispatch layer is caught even if lib-level tests continue to pass.

Closes #2236

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Tom Boucher
2026-04-15 14:59:12 -04:00
committed by GitHub
parent fa02cd2279
commit 7b85d9e689
2 changed files with 43 additions and 3 deletions

View File

@@ -781,9 +781,9 @@ async function runCommand(command, args, cwd, raw, defaultValue) {
const includeRaw = args.includes('--json');
const result = auditOpenArtifacts(cwd);
if (includeRaw) {
output(JSON.stringify(result, null, 2), raw);
core.output(result, raw);
} else {
output(formatAuditReport(result), raw);
core.output(formatAuditReport(result), raw);
}
break;
}