planner/optimizer — `pipeline.rs`'s `run_all_exact_pipeline` and `run_greedy_pipeline` are near-identical shells, differing only in the solving step (all-EXACT vs. greedy assignment). A Phase-3 MIP pipeline will likely triple this boilerplate if added as a third near-identical shell.
Consider consolidating into one `run_pipeline(config, solver)`-style function now, before the MIP pipeline lands, rather than refactoring three copies later.
Found during code review of PR #407.
planner/optimizer — `pipeline.rs`'s `run_all_exact_pipeline` and `run_greedy_pipeline` are near-identical shells, differing only in the solving step (all-EXACT vs. greedy assignment). A Phase-3 MIP pipeline will likely triple this boilerplate if added as a third near-identical shell.
Consider consolidating into one `run_pipeline(config, solver)`-style function now, before the MIP pipeline lands, rather than refactoring three copies later.
Found during code review of PR #407.