What changed in the runner
- Preflight now emits one compact machine-readable line at the end of the run:
PREFLIGHT_SUMMARY_JSON={...}
Outcome (verification run)
- PREFLIGHT=BLOCKED_PRIMARY (guarded check succeeded; access remediation required)
- OAuth/token health: OK (Google Ads API reachable)
- Non-manager customers (non-protected): none visible
- Non-LSA metric-capable Search client available: NO
Guardrails
- Protected LSA customer IDs (skipped / not touched): 1581498091, 3050138639
- Live changes made: NO
Artifacts (local)
- C:\Users\SAguiar\Documents\Codex\google-ads\2026-05-10_153420_347084-preflight\preflight.json
- C:\Users\SAguiar\Documents\Codex\google-ads\2026-05-10_153420_347084-preflight\closeout.md
- C:\Users\SAguiar\Documents\Codex\google-ads\preflight_console_2026-05-10_153420.log
Example console line
PREFLIGHT_SUMMARY_JSON={"event":"gads_preflight_summary",...}