From 955cb824b38cfd7b946a2d04183d2a2dee46a8e5 Mon Sep 17 00:00:00 2001 From: Rodribm10 Date: Sat, 2 May 2026 13:26:25 -0300 Subject: [PATCH] =?UTF-8?q?fix(captain/mcp):=20save=5Fagent=5Fspec=20?= =?UTF-8?q?=E2=80=94=20caminho=20de=20sucesso=20retorna=20tupla=20[hash,?= =?UTF-8?q?=20errors]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: expand_spec retornava [{}, errors] no erro mas só {hash} no sucesso. Destruturação 'expanded, errors = expand_spec(...)' deixava errors=nil → errors.any? → undefined method any? for nil. Fix: extraído build_expanded_hash + sucesso retorna [hash, []]. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../services/captain/mcp/tools/save_agent_spec_tool.rb | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/enterprise/app/services/captain/mcp/tools/save_agent_spec_tool.rb b/enterprise/app/services/captain/mcp/tools/save_agent_spec_tool.rb index cc3312985..8e6bc163b 100644 --- a/enterprise/app/services/captain/mcp/tools/save_agent_spec_tool.rb +++ b/enterprise/app/services/captain/mcp/tools/save_agent_spec_tool.rb @@ -77,7 +77,7 @@ class Captain::Mcp::Tools::SaveAgentSpecTool < Captain::Mcp::Tools::BaseTool private - # rubocop:disable Metrics/MethodLength, Metrics/AbcSize + # rubocop:disable Metrics/AbcSize def expand_spec(slug, spec) errors = [] parent_id = spec.dig('persona_source', 'copied_from_assistant_id') || @@ -101,6 +101,12 @@ class Captain::Mcp::Tools::SaveAgentSpecTool < Captain::Mcp::Tools::BaseTool name = spec['name'].presence || slug.tr('_', ' ').split.map(&:capitalize).join(' ') serialized_categories = pricing_categories.map { |c| serialize_category(c) } + [build_expanded_hash(slug, name, parent, parent_id, parent_unit, brand, spec, serialized_categories), errors] + end + # rubocop:enable Metrics/AbcSize + + # rubocop:disable Metrics/ParameterLists + def build_expanded_hash(slug, name, parent, parent_id, parent_unit, brand, spec, serialized_categories) { 'slug' => slug, 'name' => name, @@ -119,7 +125,7 @@ class Captain::Mcp::Tools::SaveAgentSpecTool < Captain::Mcp::Tools::BaseTool 'saved_by_tool' => 'mcp_save_agent_spec' } end - # rubocop:enable Metrics/MethodLength, Metrics/AbcSize + # rubocop:enable Metrics/ParameterLists def lookup_brand(parent, brand_name) return nil if parent.nil?