fix(v2): fix cache is_fallback bug, wire observability + data quality, drop debug webhook, fix GLPI URL
- Real bug found by code review while implementing this cycle: "Code - Reusar Classificacao em Cache" always hardcoded is_fallback: false when reconstructing a classification from memory, even when the cached classification was itself AI_FALLBACK. On a cache hit for a previously fallback-classified ticket, this would have let it skip applyFallbackPolicy's exclusion entirely (the policy checks aiClassification.is_fallback first). Fixed to derive is_fallback from the cached ai_classification value. - select-top10.node.js now carries `resolucao` (ia | cache | fallback_cap) through to the scored item, previously dropped -- needed to tell cache hits apart from real AI calls in observability. - Code - Comparar Legacy x V2 now computes the full observability summary (candidate_count, cache_hits/misses, ai_requested/success/errors, ai_fallback_count and by-reason breakdown, classification_counts, insufficient_context_count, actionable_real_count, critical_override_count, top10_count, blocked_count, coordination_count) and the data-quality review (buildDataQualityReview over INSUFFICIENT_CONTEXT tickets), both stored in the shadow_runs `summary` JSON column -- no new Data Table needed. - Removed the debug webhook entirely (Debug - Ver Painel, Data Table - Buscar Shadow Runs Recentes debug branch, Code - Montar Painel Debug, Debug - Responder) and the now-unused debug-panel.node.js driver. Workflow went from 37 to 33 nodes. Debugging goes through n8n execution data, the Data Tables, and the shadow diff instead, as requested. - Fixed glpi_base_url: was still V1's own placeholder (https://glpi.suaempresa.com.br, never a real value, not report anonymization) -- confirmed the real domain (https://glpi.gtigrupo.com.br) from the live, active GLPI x WhatsApp workflow's own GLPI API config in the same n8n instance. SQL still only ever receives it through {GLPI_BASE_URL} substitution from the Config node, never hardcoded. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
485234dc88
commit
3c87ab55e1
@@ -32,7 +32,7 @@
|
||||
"parameters": {
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{ "id": "glpi-base-url-v2", "name": "glpi_base_url", "type": "string", "value": "https://glpi.suaempresa.com.br" },
|
||||
{ "id": "glpi-base-url-v2", "name": "glpi_base_url", "type": "string", "value": "https://glpi.gtigrupo.com.br" },
|
||||
{ "id": "cfg-ai-enabled", "name": "AI_ENABLED", "type": "boolean", "value": true },
|
||||
{ "id": "cfg-ai-provider", "name": "AI_PROVIDER", "type": "string", "value": "openai" },
|
||||
{ "id": "cfg-ai-model", "name": "AI_MODEL", "type": "string", "value": "gpt-4o-mini" },
|
||||
@@ -400,49 +400,6 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "debug-ver-painel",
|
||||
"name": "Debug - Ver Painel",
|
||||
"type": "n8n-nodes-base.webhook",
|
||||
"typeVersion": 2.1,
|
||||
"position": [-1600, 1200],
|
||||
"parameters": {
|
||||
"httpMethod": "GET",
|
||||
"path": "coordenador-glpi-v2-debug",
|
||||
"responseMode": "responseNode",
|
||||
"options": {}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "datatable-buscar-shadow-runs-recentes",
|
||||
"name": "Data Table - Buscar Shadow Runs Recentes",
|
||||
"type": "n8n-nodes-base.dataTable",
|
||||
"typeVersion": 1.1,
|
||||
"position": [-1360, 1200],
|
||||
"parameters": {
|
||||
"resource": "row",
|
||||
"operation": "get",
|
||||
"dataTableId": { "mode": "name", "value": "coordenador_glpi_shadow_runs" },
|
||||
"filters": { "conditions": [] },
|
||||
"returnAll": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "code-montar-painel-debug",
|
||||
"name": "Code - Montar Painel Debug",
|
||||
"type": "n8n-nodes-base.code",
|
||||
"typeVersion": 2,
|
||||
"position": [-1120, 1200],
|
||||
"parameters": { "jsCode": "__BUILD__:debug-panel.node.js" }
|
||||
},
|
||||
{
|
||||
"id": "debug-responder",
|
||||
"name": "Debug - Responder",
|
||||
"type": "n8n-nodes-base.respondToWebhook",
|
||||
"typeVersion": 1.5,
|
||||
"position": [-880, 1200],
|
||||
"parameters": { "respondWith": "json", "responseBody": "={{ $json }}", "options": {} }
|
||||
}
|
||||
],
|
||||
"connections": {
|
||||
@@ -551,15 +508,6 @@
|
||||
},
|
||||
"Code - Comparar Legacy x V2": {
|
||||
"main": [[{ "node": "Data Table - Registrar Shadow Run", "type": "main", "index": 0 }]]
|
||||
},
|
||||
"Debug - Ver Painel": {
|
||||
"main": [[{ "node": "Data Table - Buscar Shadow Runs Recentes", "type": "main", "index": 0 }]]
|
||||
},
|
||||
"Data Table - Buscar Shadow Runs Recentes": {
|
||||
"main": [[{ "node": "Code - Montar Painel Debug", "type": "main", "index": 0 }]]
|
||||
},
|
||||
"Code - Montar Painel Debug": {
|
||||
"main": [[{ "node": "Debug - Responder", "type": "main", "index": 0 }]]
|
||||
}
|
||||
},
|
||||
"pinData": {},
|
||||
|
||||
Reference in New Issue
Block a user