Description
gh aw compile has no recover() boundary around compiling an individual workflow in the native CLI path (only cmd/gh-aw-wasm/compile_recovery.go has one, for WASM). Several production panic() calls sit on the per-workflow compile path (e.g. mustGetAllowedDomainsForEngineWithModel in pkg/workflow/domains.go:691, called from universal_llm_consumer_engine.go:295, pi_engine.go:423, behavior_defined_engine.go:734). In a 299-workflow batch compile, one bad invariant anywhere aborts the entire run with a raw Go stack trace and no indication of which workflow file triggered it.
Expected Impact
A panic during one workflow's compile becomes a normal compile error naming the workflow path; the rest of the batch still compiles (with a non-zero exit code), instead of the whole gh aw compile run dying on an unrelated file.
Suggested Agent
GitHub Copilot coding agent — wrap per-file compile in pkg/cli (compileSpecificFiles / single-file compile) with a recovery boundary mirroring the existing cmd/gh-aw-wasm/compile_recovery.go pattern, log the recovered stack via pkg/logger, and add a unit test that injects a panic and asserts both the per-file error and batch continuation.
Estimated Effort
Quick (<1 hour)
Data Source
DeepReport Intelligence Briefing — 2026-10-02, sourced from Repository Quality Improvement Report #65022 ("Compiler Panic Containment"), Task 1.
Generated by 🔬 Deep Report · claude · agent · 212 AIC · ⌖ 7.99 AIC · ⊞ 7.3K · ◷
Description
gh aw compilehas norecover()boundary around compiling an individual workflow in the native CLI path (onlycmd/gh-aw-wasm/compile_recovery.gohas one, for WASM). Several productionpanic()calls sit on the per-workflow compile path (e.g.mustGetAllowedDomainsForEngineWithModelinpkg/workflow/domains.go:691, called fromuniversal_llm_consumer_engine.go:295,pi_engine.go:423,behavior_defined_engine.go:734). In a 299-workflow batch compile, one bad invariant anywhere aborts the entire run with a raw Go stack trace and no indication of which workflow file triggered it.Expected Impact
A panic during one workflow's compile becomes a normal compile error naming the workflow path; the rest of the batch still compiles (with a non-zero exit code), instead of the whole
gh aw compilerun dying on an unrelated file.Suggested Agent
GitHub Copilot coding agent — wrap per-file compile in
pkg/cli(compileSpecificFiles/ single-file compile) with a recovery boundary mirroring the existingcmd/gh-aw-wasm/compile_recovery.gopattern, log the recovered stack viapkg/logger, and add a unit test that injects a panic and asserts both the per-file error and batch continuation.Estimated Effort
Quick (<1 hour)
Data Source
DeepReport Intelligence Briefing — 2026-10-02, sourced from Repository Quality Improvement Report #65022 ("Compiler Panic Containment"), Task 1.