.vbw-planning/milestones/07-rails-audit-and-refactoring/02-model-layer-hardening/02-RESEARCH.md
7 findings researched. Key risks identified around enum conversion (DB constraints, widespread string comparisons) and state-as-records (new table/model).
recent, successful, failed only. Add since, until, today, by_date_range to Loggable.compute_feed_word_count calls item&.content in before_save — N+1 risk. Should pass content directly or preload.Item.ensure_feed_content_record only called from ItemCreator, not callbacks. Add after_create_commit with guard.decrement_counter. Would need new ItemStateChange table/model.