From 96faca3ff6cf1b3a7b5956e07ea875bdd5ec39b5 Mon Sep 17 00:00:00 2001 From: Jorge Manrubia Date: Thu, 3 Jul 2025 11:39:28 +0200 Subject: [PATCH] Return standalone command when only one command this avoids unnecessary redirects --- app/models/command/ai/parser.rb | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/app/models/command/ai/parser.rb b/app/models/command/ai/parser.rb index 9b810c60d..d45591984 100644 --- a/app/models/command/ai/parser.rb +++ b/app/models/command/ai/parser.rb @@ -11,7 +11,7 @@ class Command::Ai::Parser def parse(query) normalized_query = resolve_named_params_to_ids command_translator.translate(query) - build_composite_command_for normalized_query, query + build_command_for normalized_query, query end private @@ -19,7 +19,7 @@ class Command::Ai::Parser Command::Ai::Translator.new(context) end - def build_composite_command_for(normalized_query, query) + def build_command_for(normalized_query, query) query_context = context_from_query(normalized_query) resolved_context = query_context || context @@ -29,7 +29,11 @@ class Command::Ai::Parser commands.unshift Command::VisitUrl.new(user: user, url: query_context.url, context: resolved_context) end - Command::Composite.new(title: query, commands: commands, user: user, line: query, context: resolved_context) + if commands.many? + Command::Composite.new(title: query, commands: commands, user: user, line: query, context: resolved_context) + else + build_standalone_command(commands, query) + end end def commands_from_query(normalized_query, context) @@ -39,6 +43,12 @@ class Command::Ai::Parser end end + def build_standalone_command(commands, query) + commands.first.tap do |command| + command.line = query + end + end + def resolve_named_params_to_ids(normalized_query) normalized_query.tap do |query_json| if query_context = query_json[:context].presence