mirror of
https://github.com/melgarafael/DeskcommCRM.git
synced 2026-10-02 01:28:34 +08:00
fix(ia): revalidacao que falha zera o catalogo de modelos (recorte do #714)
O ramo de falha gravava validated_at:null e validation_error e deixava models_available como estava -- a lista da validacao ANTERIOR. A tela desenha essa contagem (CredentialCard.tsx:165) ao lado da mensagem de erro, entao uma credencial que deixou de ser confiavel aparece com catalogo, como se estivesse pronta. A decifragem que falha passa a usar o logger estruturado no lugar do console.error. Isso e consistencia com a casa, nao conserto de violacao: o anti-pattern 14 do CLAUDE.md nomeia console.log, e o eslint permite error explicitamente (eslint.config.mjs:25). Recorte do PR #714, de @betoarts. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01X2i1fgsteAjoAU6T8ewnq2
This commit is contained in:
committed by
melgarafael
co-authored by
Claude Opus 5
parent
a796ea3c97
commit
d6542aa90a
@@ -14,6 +14,7 @@ import { audit } from "@/lib/audit";
|
||||
import { requireRole } from "@/lib/auth/require-role";
|
||||
import { byteaToBuffer, decryptKey } from "@/lib/crypto/aes_gcm";
|
||||
import { validateProviderKey } from "@/lib/ai/provider-validators";
|
||||
import { logger } from "@/lib/logger";
|
||||
import { createAdminClient } from "@/lib/supabase/admin";
|
||||
import { traduzir } from "@/lib/i18n/dicionario";
|
||||
|
||||
@@ -69,7 +70,10 @@ export async function POST(
|
||||
tag: byteaToBuffer(row.api_key_tag),
|
||||
});
|
||||
} catch (err) {
|
||||
console.error("[ai.credentials] decrypt failed during revalidate", err);
|
||||
logger.error("[ai.credentials] decifragem falhou durante a revalidação", {
|
||||
credentialId: id,
|
||||
erro: err instanceof Error ? err.name : typeof err,
|
||||
});
|
||||
return fail("decrypt_failed", t("Falha ao decifrar credential."), 500, { requestId });
|
||||
}
|
||||
|
||||
@@ -83,6 +87,9 @@ export async function POST(
|
||||
: {
|
||||
validated_at: null,
|
||||
validation_error: result.error,
|
||||
// Não conservar o catálogo de uma validação anterior: a credencial
|
||||
// deixou de ser confiável e a lista antiga faria a tela parecer pronta.
|
||||
models_available: null,
|
||||
};
|
||||
|
||||
const { data: updated, error: updErr } = await admin
|
||||
|
||||
Reference in New Issue
Block a user