Auto-resolve stale todos when MR is closed
## Goal Complete the feature by adding close event handling. Reuses all infrastructure from previous phases. ⚠️ **This completes the core feature** - after this, feature is fully functional! Related to #20637 **Depends on:** Phase 1a, Phase 1b, Phase 1c ## Implementation Details **File:** `app/services/merge_requests/close_service.rb` Add worker invocation after existing todo resolution (same pattern as PostMergeService). ## Test Coverage Required Location: `spec/services/merge_requests/close_service_spec.rb` - [ ] Worker enqueued when flag enabled - [ ] Worker NOT enqueued when flag disabled - [ ] Todos resolved for all affected users - [ ] Behavior consistent with merge path Location: `spec/requests/api/merge_requests_spec.rb` - [ ] API close endpoint resolves todos ## Files to Change - [ ] `app/services/merge_requests/close_service.rb` - [ ] `spec/services/merge_requests/close_service_spec.rb` - [ ] `spec/requests/api/merge_requests_spec.rb` ## Acceptance Criteria - [ ] Worker enqueued when MR closed - [ ] Consistent behavior with merge path - [ ] All tests pass - [ ] No N+1 queries ## Deployment Plan 1. Deploy to staging 2. Test close functionality 3. Deploy to production 4. Verify both merge AND close work correctly **Estimated Effort:** 1-2 days
issue