From 3c85d03e704fe79c1ee4680f62f32f950d8d4202 Mon Sep 17 00:00:00 2001 From: Emanuel Almeida Date: Mon, 27 Apr 2026 11:15:09 +0100 Subject: [PATCH] =?UTF-8?q?fix:=20excluir=20interrup=C3=A7=C3=B5es=20longa?= =?UTF-8?q?s=20da=20taxa=20de=20erro=20de=20skills?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sessões com outcome=interrupted e ≥10 eventos são redirects naturais do utilizador, não falhas da skill. O detector contava todas as interrupções como falhas, gerando falsos positivos para skills conversacionais como superpowers:brainstorming. Fix: só contar como falha erros reais (outcome=error) ou interrupções precoces (<10 eventos). Resolve ticket #10407. Co-Authored-By: Claude Sonnet 4.6 --- api/services/sessions/patterns.ts | 6 +++++- package-lock.json | 6 +++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/api/services/sessions/patterns.ts b/api/services/sessions/patterns.ts index f57493f..dd4f522 100644 --- a/api/services/sessions/patterns.ts +++ b/api/services/sessions/patterns.ts @@ -92,7 +92,11 @@ export function detectSkillsHighErrorRate(ctx: DetectCtx): Pattern[] { for (const sk of skills) { const entry = bySkill.get(sk) ?? { total: 0, fail: 0, ids: [] } entry.total++ - if (r.outcome === 'error' || r.outcome === 'interrupted') { + // Interrupções em sessões longas (≥10 eventos) são redirects naturais do utilizador, + // não falhas da skill. Só contar erros reais ou interrupções muito precoces. + const isRealFailure = r.outcome === 'error' || + (r.outcome === 'interrupted' && (r.event_count ?? 0) < 10) + if (isRealFailure) { entry.fail++ if (entry.ids.length < 5) entry.ids.push(r.session_id) } diff --git a/package-lock.json b/package-lock.json index 1f31d08..794fc77 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7967,9 +7967,9 @@ } }, "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "version": "8.5.12", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.12.tgz", + "integrity": "sha512-W62t/Se6rA0Az3DfCL0AqJwXuKwBeYg6nOaIgzP+xZ7N5BFCI7DYi1qs6ygUYT6rvfi6t9k65UMLJC+PHZpDAA==", "dev": true, "funding": [ {