From 350a420ee0df0285e1dab332144a57ce1e59cbba Mon Sep 17 00:00:00 2001 From: Rodribm10 Date: Sun, 19 Apr 2026 00:39:52 -0300 Subject: [PATCH] feat(captain-memory): add ContradictionCheckerJob --- .../contact_memories/contradiction_checker_job.rb | 6 +----- .../contradiction_checker_job_spec.rb | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 spec/enterprise/jobs/captain/contact_memories/contradiction_checker_job_spec.rb diff --git a/enterprise/app/jobs/captain/contact_memories/contradiction_checker_job.rb b/enterprise/app/jobs/captain/contact_memories/contradiction_checker_job.rb index 02f1c89e7..27ef04b45 100644 --- a/enterprise/app/jobs/captain/contact_memories/contradiction_checker_job.rb +++ b/enterprise/app/jobs/captain/contact_memories/contradiction_checker_job.rb @@ -1,14 +1,10 @@ class Captain::ContactMemories::ContradictionCheckerJob < ApplicationJob queue_as :low - # TODO(phase3-task3.2): implement full contradiction detection logic. - # This skeleton exists so Captain::ContactMemories::UpdateEmbeddingJob can - # enqueue it when run_contradiction_check is true. Task 3.2 will replace - # the body with the real implementation. def perform(memory_id) memory = Captain::ContactMemory.find_by(id: memory_id) return if memory.blank? - # no-op until task 3.2 + Captain::ContactMemories::ContradictionCheckerService.new(memory: memory).call end end diff --git a/spec/enterprise/jobs/captain/contact_memories/contradiction_checker_job_spec.rb b/spec/enterprise/jobs/captain/contact_memories/contradiction_checker_job_spec.rb new file mode 100644 index 000000000..9b2218033 --- /dev/null +++ b/spec/enterprise/jobs/captain/contact_memories/contradiction_checker_job_spec.rb @@ -0,0 +1,15 @@ +require 'rails_helper' + +RSpec.describe Captain::ContactMemories::ContradictionCheckerJob do + let(:memory) { create(:captain_contact_memory) } + + it 'delegates to ContradictionCheckerService' do + service = instance_double(Captain::ContactMemories::ContradictionCheckerService, call: nil) + expect(Captain::ContactMemories::ContradictionCheckerService).to receive(:new).with(memory: memory).and_return(service) + described_class.perform_now(memory.id) + end + + it 'no-ops on missing memory' do + expect { described_class.perform_now(99_999_999) }.not_to raise_error + end +end