Consolidates the structural debt items from the #385 plan-fidelity audit and both review sweeps, so they have one owner:
render.rs → render/{transcript,toolcard,modal,tasks,statusbar,prompt}.rs (the plan's file layout that tui(M2): typed blocks, LayoutCache, Follow/Free scroll #388 /tui(M6): HITL modals (permission, plan, ask-user) #392 /tui(M8): tasks/agents pane + attach semantics #394 assume)
Typed Block model replacing TranscriptItem (tui(M2.1): Block model + migrate transcript reducers #409 tracks this half — keep that issue as the child)
Key routing as tables (input.rs) instead of scattered matches in run.rs — the review found most input-state holes live there; the Phase-as-two-things conflation was fixed in fix(tui): modal-phase decoupling, live-mode sync, teardown, queue/UX batch #423 but the routing remains ad hoc
app.rs further decomposition (transcript.rs, input_edit.rs)
No behavior change; do it before the M8/M9 feature work piles more onto the flat files.
Generated by Claude Code
Consolidates the structural debt items from the #385 plan-fidelity audit and both review sweeps, so they have one owner:
render.rs→render/{transcript,toolcard,modal,tasks,statusbar,prompt}.rs(the plan's file layout that tui(M2): typed blocks, LayoutCache, Follow/Free scroll #388/tui(M6): HITL modals (permission, plan, ask-user) #392/tui(M8): tasks/agents pane + attach semantics #394 assume)Blockmodel replacingTranscriptItem(tui(M2.1): Block model + migrate transcript reducers #409 tracks this half — keep that issue as the child)input.rs) instead of scattered matches inrun.rs— the review found most input-state holes live there; thePhase-as-two-things conflation was fixed in fix(tui): modal-phase decoupling, live-mode sync, teardown, queue/UX batch #423 but the routing remains ad hocapp.rsfurther decomposition (transcript.rs,input_edit.rs)No behavior change; do it before the M8/M9 feature work piles more onto the flat files.
Generated by Claude Code