Corrigir detecção de Tech Lead e PO nos cards de agentes

Detecção por nome do agente além das tags para garantir
destaque e ordenação corretos independente das tags usadas.
This commit is contained in:
Frederico Castro
2026-02-27 22:44:36 -03:00
parent 972ae92291
commit 38556f9bf5

View File

@@ -40,12 +40,14 @@ const AgentsUI = {
if (empty) empty.style.display = 'none'; if (empty) empty.style.display = 'none';
const sorted = [...agents].sort((a, b) => { const sorted = [...agents].sort((a, b) => {
const rank = (tags) => { const rank = (agent) => {
if ((tags || []).some((t) => t.toLowerCase() === 'lider')) return 0; const name = (agent.agent_name || agent.name || '').toLowerCase();
if ((tags || []).some((t) => t.toLowerCase() === 'po' || t.toLowerCase() === 'product-owner')) return 1; 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 2;
}; };
return rank(a.tags) - rank(b.tags); return rank(a) - rank(b);
}); });
const fragment = document.createDocumentFragment(); const fragment = document.createDocumentFragment();
@@ -87,8 +89,10 @@ const AgentsUI = {
const tags = Array.isArray(agent.tags) && agent.tags.length > 0 const tags = Array.isArray(agent.tags) && agent.tags.length > 0
? `<div class="agent-tags">${agent.tags.map((t) => `<span class="tag-chip tag-chip--sm">${Utils.escapeHtml(t)}</span>`).join('')}</div>` ? `<div class="agent-tags">${agent.tags.map((t) => `<span class="tag-chip tag-chip--sm">${Utils.escapeHtml(t)}</span>`).join('')}</div>`
: ''; : '';
const isLeader = Array.isArray(agent.tags) && agent.tags.some((t) => t.toLowerCase() === 'lider'); const agentNameLower = (agent.agent_name || agent.name || '').toLowerCase();
const isPO = !isLeader && Array.isArray(agent.tags) && agent.tags.some((t) => t.toLowerCase() === 'po' || t.toLowerCase() === 'product-owner'); 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 roleClass = isLeader ? ' agent-card--leader' : isPO ? ' agent-card--po' : '';
const roleBadge = isLeader const roleBadge = isLeader
? '<i data-lucide="crown" class="agent-leader-icon"></i>' ? '<i data-lucide="crown" class="agent-leader-icon"></i>'