Add async worker and feature flag for stale todo resolution
## Goal Add async processing capability and feature flag infrastructure. Still no user-facing changes. Related to #20637 **Depends on:** Phase 1a (link after creation) ## Implementation Details ### 1. Sidekiq Worker **Location:** `app/workers/merge_requests/resolve_stale_todos_worker.rb` - Idempotent (safe to retry) - Low urgency (doesn't block user actions) - Graceful error handling for missing records ### 2. Feature Flag **Location:** `config/feature_flags/development/auto_resolve_stale_mr_todos.yml` - Type: `development` (will change to `ops` during rollout) - Scope: Project-level (allows per-project enablement) - Default: `false` (disabled by default) ## Test Coverage Required Location: `spec/workers/merge_requests/resolve_stale_todos_worker_spec.rb` - [ ] Successfully calls TodoService method - [ ] Passes correct parameters to service - [ ] Handles missing merge request gracefully (no error) - [ ] Handles missing user gracefully (no error) - [ ] Is idempotent (can run multiple times safely) - [ ] Has correct worker attributes (urgency, category, etc.) ## Files to Create - [ ] `app/workers/merge_requests/resolve_stale_todos_worker.rb` - [ ] `spec/workers/merge_requests/resolve_stale_todos_worker_spec.rb` - [ ] `config/feature_flags/development/auto_resolve_stale_mr_todos.yml` ## Acceptance Criteria - [ ] Worker successfully calls TodoService method from Phase 1a - [ ] Worker handles missing records gracefully - [ ] Worker is idempotent - [ ] Feature flag is registered correctly - [ ] 100% test coverage for worker - [ ] All CI jobs pass **Estimated Effort:** 2 days
issue