Bug Fixes
Estimate generation now gracefully handles race conditions when estimates are canceled, re-generated, or cascade-deleted mid-pipeline. Previously, the pipeline would throw P2025 errors and mark the run as failed. Now it detects when the estimate row has vanished and cleanly completes the pipeline with a canceled status instead, giving users a better experience during rapid estimate workflows.