From 38556f9bf5daebd2b33771fdbfe383e7f10b8231 Mon Sep 17 00:00:00 2001 From: Frederico Castro Date: Fri, 27 Feb 2026 22:44:36 -0300 Subject: [PATCH] =?UTF-8?q?Corrigir=20detec=C3=A7=C3=A3o=20de=20Tech=20Lea?= =?UTF-8?q?d=20e=20PO=20nos=20cards=20de=20agentes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Detecção por nome do agente além das tags para garantir destaque e ordenação corretos independente das tags usadas. --- public/js/components/agents.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/public/js/components/agents.js b/public/js/components/agents.js index ea80ec6..d3949ac 100644 --- a/public/js/components/agents.js +++ b/public/js/components/agents.js @@ -40,12 +40,14 @@ const AgentsUI = { if (empty) empty.style.display = 'none'; const sorted = [...agents].sort((a, b) => { - const rank = (tags) => { - if ((tags || []).some((t) => t.toLowerCase() === 'lider')) return 0; - if ((tags || []).some((t) => t.toLowerCase() === 'po' || t.toLowerCase() === 'product-owner')) return 1; + const rank = (agent) => { + const name = (agent.agent_name || agent.name || '').toLowerCase(); + const tags = (agent.tags || []).map((t) => t.toLowerCase()); + if (name === 'tech lead' || tags.includes('lider')) return 0; + if (name === 'product owner' || tags.includes('po') || tags.includes('product-owner')) return 1; return 2; }; - return rank(a.tags) - rank(b.tags); + return rank(a) - rank(b); }); const fragment = document.createDocumentFragment(); @@ -87,8 +89,10 @@ const AgentsUI = { const tags = Array.isArray(agent.tags) && agent.tags.length > 0 ? `
${agent.tags.map((t) => `${Utils.escapeHtml(t)}`).join('')}
` : ''; - const isLeader = Array.isArray(agent.tags) && agent.tags.some((t) => t.toLowerCase() === 'lider'); - const isPO = !isLeader && Array.isArray(agent.tags) && agent.tags.some((t) => t.toLowerCase() === 'po' || t.toLowerCase() === 'product-owner'); + const agentNameLower = (agent.agent_name || agent.name || '').toLowerCase(); + const tagsLower = Array.isArray(agent.tags) ? agent.tags.map((t) => t.toLowerCase()) : []; + const isLeader = agentNameLower === 'tech lead' || tagsLower.includes('lider'); + const isPO = !isLeader && (agentNameLower === 'product owner' || tagsLower.includes('po') || tagsLower.includes('product-owner')); const roleClass = isLeader ? ' agent-card--leader' : isPO ? ' agent-card--po' : ''; const roleBadge = isLeader ? ''