refactor(cli): decompose render phases#2172
Conversation
ee1e8fd to
31ebbda
Compare
32efa63 to
e4fa818
Compare
3bd8775 to
841ca28
Compare
e4fa818 to
119c3a7
Compare
841ca28 to
99291ad
Compare
119c3a7 to
95c5ca5
Compare
99291ad to
260558c
Compare
95c5ca5 to
138681f
Compare
260558c to
f6dfed1
Compare
15bbbc2 to
f16b507
Compare
50cf30c to
a36d53c
Compare
57ef434 to
a24f174
Compare
ffda4eb to
b84837b
Compare
53132dd to
df7dfef
Compare
b84837b to
35ae1d2
Compare
df7dfef to
608548d
Compare
35ae1d2 to
34981d4
Compare
608548d to
b3ce98b
Compare
34981d4 to
05b117e
Compare
b3ce98b to
f593708
Compare
b418569 to
741b993
Compare
miguel-heygen
left a comment
There was a problem hiding this comment.
Approved exact head 3222f1f.\n\nAudited: the full 7-file diff, including the render transport adapter, plan/present/execute ownership split, batch JSON contract, compatibility re-exports, tests, all current issue comments/reviews/REST comments/GraphQL threads, and exact-head required CI.\n\nVerified the single and batch execution option payloads remain aligned with the prior handler; environment mutations are deferred without changing downstream reads; browser, lint, resolution, variables, and render dispatch ordering remains sound; Docker-only controls stay scoped; and the executable-boundary lifecycle contract remains intact. The strict quiet-lint refusal and exact integer validation are deliberate safety boundaries, not regressions. No blocking findings.\n\n— Magi

What
Decompose the CLI render command into explicit plan, execute, and present phases.
Why
The monolithic handler mixed validation, environment mutation, rendering, progress, cleanup, and output formatting, making lifecycle bugs and batch JSON corruption easy to introduce.
How
Build an immutable RenderPlan, keep environment changes declarative, execute through one lifecycle boundary, and make presentation emit exactly one final JSON document in batch mode.
Test plan