Description
maxed smoke --json has inconsistent JSON output between its own success paths.
The no-connectors path emits compact JSON directly:
The connectors path emits pretty-printed JSON directly:
Both paths bypass the shared _emit_json() helper and omit a top-level ok field, even though smoke already tracks connector failures and uses that state to decide the exit code.
Evidence
In src/maxed_cli/cli.py:
- no-connectors path uses typer.echo(json.dumps({"results": []}))
- connectors path uses typer.echo(json.dumps({"results": results}, indent=2))
- other wrapped command outputs generally use _emit_json(), which applies consistent indentation and sorted keys
Note: schema --json intentionally emits raw schema JSON and suite --json has its own wrapper shape, so this issue is specifically about making smoke --json internally consistent.
Impact
Machine consumers have to handle two formatting styles for smoke --json and they cannot read a top-level success flag. They must infer success from the exit code or inspect individual result entries.
Suggested Fix
Use _emit_json() consistently in both smoke --json success paths and include a top-level ok field:
_emit_json({"ok": True, "results": []})
_emit_json({"ok": failures == 0, "results": results})
Description
maxed smoke --jsonhas inconsistent JSON output between its own success paths.The no-connectors path emits compact JSON directly:
{"results":[]}The connectors path emits pretty-printed JSON directly:
{ "results": [...] }Both paths bypass the shared _emit_json() helper and omit a top-level ok field, even though smoke already tracks connector failures and uses that state to decide the exit code.
Evidence
In src/maxed_cli/cli.py:
Note: schema --json intentionally emits raw schema JSON and suite --json has its own wrapper shape, so this issue is specifically about making smoke --json internally consistent.
Impact
Machine consumers have to handle two formatting styles for smoke --json and they cannot read a top-level success flag. They must infer success from the exit code or inspect individual result entries.
Suggested Fix
Use _emit_json() consistently in both smoke --json success paths and include a top-level ok field: