greedy_assign (asap-planner-rs/src/optimizer/greedy.rs:30,50-59) always starts next_id at 1 and allocates a new aggregation_id to every AQE on every planning run, regardless of what's already deployed.
ControllerConfig.existing_streaming_config / existing_inference_config (asap-planner-rs/src/config/input.rs:19-30) exist to carry current state into replanning but are unused — both call sites hardcode them to None (optimizer/pipeline.rs:127-128, query_log/converter.rs:45-46).
Net effect: no dedup against currently-running aggregations, and no ID stability across replans, even when the same aggregation should persist. Each replan tears down and recreates all sketches, resetting accumulated state.
greedy_assign(asap-planner-rs/src/optimizer/greedy.rs:30,50-59) always startsnext_idat 1 and allocates a newaggregation_idto every AQE on every planning run, regardless of what's already deployed.ControllerConfig.existing_streaming_config/existing_inference_config(asap-planner-rs/src/config/input.rs:19-30) exist to carry current state into replanning but are unused — both call sites hardcode them toNone(optimizer/pipeline.rs:127-128,query_log/converter.rs:45-46).Net effect: no dedup against currently-running aggregations, and no ID stability across replans, even when the same aggregation should persist. Each replan tears down and recreates all sketches, resetting accumulated state.