fix(captain): Skip classifier call when conversation is pending

This commit is contained in:
aakashb95
2026-05-01 02:54:58 +05:30
parent 4a1462c01d
commit 68cd725a62
2 changed files with 15 additions and 1 deletions
@@ -37,7 +37,7 @@ class Captain::Conversation::ResponseBuilderJob < ApplicationJob
@response = Captain::Llm::AssistantChatService.new(assistant: @assistant, conversation: @conversation).generate_response(
message_history: message_history
)
classify_v1_response_action(message_history)
classify_v1_response_action(message_history) if conversation_pending?
process_response
end
@@ -138,6 +138,20 @@ RSpec.describe Captain::Conversation::ResponseBuilderJob, type: :job do
expect(conversation.messages.outgoing.last.content).to eq('Hey, welcome to Captain Specs')
expect(account.reload.usage_limits[:captain][:responses][:consumed]).to eq(1)
end
it 'skips the classifier when the conversation is no longer pending after response generation' do
allow(mock_llm_chat_service).to receive(:generate_response) do
conversation.open!
{ 'response' => 'Hey, welcome to Captain Specs' }
end
expect(Captain::Llm::AssistantActionClassifierService).not_to receive(:new)
described_class.perform_now(conversation, assistant)
expect(conversation.messages.outgoing.count).to eq(0)
expect(account.reload.usage_limits[:captain][:responses][:consumed]).to eq(0)
end
end
it 'does not send a response when the conversation is no longer pending' do