Class: PassiveRecallJob
- Inherits:
-
ApplicationJob
- Object
- ActiveJob::Base
- ApplicationJob
- PassiveRecallJob
- Defined in:
- app/jobs/passive_recall_job.rb
Overview
Runs passive recall after goal updates — searches message history for context relevant to active goals and caches results on the session for viewport injection.
Idempotent: multiple enqueues for the same session safely overwrite each other’s results — last one wins.
Instance Method Summary collapse
Instance Method Details
#perform(session_id) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 |
# File 'app/jobs/passive_recall_job.rb', line 18 def perform(session_id) session = Session.find(session_id) results = Mneme::PassiveRecall.new(session).call if results.any? session.update_column(:recalled_message_ids, results.map(&:message_id)) Mneme.logger.info("session=#{session_id} — passive recall found #{results.size} memories") elsif session..present? session.update_column(:recalled_message_ids, []) end end |