AI Slop Code RIsk Monitor

melgarafael/DeskcommCRM

Open-source AI sales OS — self-hosted CRM with native AI agents + WhatsApp (WAHA). Open alternative to Kommo, Octadesk & Intercom for any business that sells by chat. MCP-ready, multi-tenant, LGPD.

5.0 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for melgarafael/DeskcommCRM, a TypeScript project with 4,538 GitHub stars. SynthScan examined 1,373,141 lines of code across 6657 source files, recording 3685 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 5.0 (Moderate pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

5.0
Adjusted Signal
5.0
Raw Pattern Score
100%
Time Factor
2026-10-11
Last Push
4.5K
Stars
TypeScript
Language
1.4M
Lines of Code
6.7K
Files
3.7K
Pattern Hits
2026-10-12
Scan Date
0.00
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 7.6/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 2175 finding(s).

Hallucinated Dependency & Supply Chain Risk 0.6/100 · LOW

Are imports declared and package/API names verified? 51 finding(s).

Agent Over-Engineering Ratio 17.0/100 · LOW

Are wrappers, guards, and repeated structures necessary? 2083 finding(s).

PR Review Velocity Impact 21.9/100 · LOW

Which changes need focused human review? 3685 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

Run additional scans to build a history of the legacy pattern signal. Score changes are not a measure of AI adoption or code quality.

No multi-scan history yet — run the scanner again to build trend data.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 1HIGH 17MEDIUM 1509LOW 2158

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 3685 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Decorative Section Separators1455 hits · 4458 pts
SeverityFileLineSnippetContext
MEDIUMdocker-compose.traefik.yml6# -----------COMMENT
MEDIUMdocker-compose.traefik.yml25# ----------------------------COMMENT
MEDIUMdocker-compose.traefik.yml35# ---------------------------------------COMMENT
MEDIUMdocker-compose.npm.yml8# -----------COMMENT
MEDIUMdocker-compose.npm.yml23# --------------------------------COMMENT
MEDIUMdocker-compose.prod.yml262 # ── Chamada de voz WhatsApp (spec 18) — DESLIGADA POR PADRÃO ──────────────COMMENT
MEDIUMapp/design/lib/tokens.ts38// ─── Palettes ──────────────────────────────────────────────────────────────COMMENT
MEDIUMapp/design/lib/tokens.ts183// ─── Density ───────────────────────────────────────────────────────────────COMMENT
MEDIUMapp/design/lib/tokens.ts191// ─── Typography pairings ───────────────────────────────────────────────────COMMENT
MEDIUMapp/design/lib/tokens.ts228// ─── Foundation tokens ─────────────────────────────────────────────────────COMMENT
MEDIUMapp/app/metrics/_components/MetricsClient.tsx52 // ─── CARREGANDO: a SILHUETA da tela, não a palavra "Carregando…" ──────────COMMENT
MEDIUMapp/app/metrics/_components/MetricsClient.tsx82 // ─── ERRO: diz o que houve e oferece saída ────────────────────────────────COMMENT
MEDIUMapp/app/settings/tenant/pipelines/_client.tsx431 {/* ─── A COMANDA DO GANHO (#1477) ───────────────────────────────CODE
MEDIUMapp/app/settings/tenant/pipelines/_client.tsx540 {/* ── QUANDO ESTE CAMPO OBRIGA (issue #1536) ────────────────────CODE
MEDIUMapp/app/lgpd/requests/RequestsTable.tsx35// ── Label helpers ─────────────────────────────────────────────────────────────COMMENT
MEDIUMapp/app/lgpd/requests/RequestsTable.tsx79// ── Date helpers ──────────────────────────────────────────────────────────────COMMENT
MEDIUMapp/app/lgpd/requests/RequestsTable.tsx107// ── Select options ────────────────────────────────────────────────────────────COMMENT
MEDIUMapp/app/lgpd/requests/RequestsTable.tsx111// ── Component ─────────────────────────────────────────────────────────────────COMMENT
MEDIUMapp/app/ai/cases/_components/CaseChatPanel.tsx96 // ─── A conversa é de outra pessoa ───────────────────────────────────────COMMENT
MEDIUMapp/app/webhooks/_components/ActivityTab.tsx193 * ─── DECISÃO DA ISSUE #1090: ele APARECE, para quem dá suporte ──────────────COMMENT
MEDIUMapp/auth/callback/route.test.ts313 // ─── #1646: a volta para tela AUTENTICADA sai pela PONTE, nunca por 302 ─────COMMENT
MEDIUMapp/auth/callback/route.test.ts313 // ─── #1646: a volta para tela AUTENTICADA sai pela PONTE, nunca por 302 ─────COMMENT
MEDIUMapp/auth/callback/route.ts55 * ─── Por que o SUCESSO não sai daqui por 302 (issue #1646) ──────────────────COMMENT
MEDIUMapp/admin/(protected)/sistema/page.tsx51 * ── O defeito que ela fecha (issue #1034) ───────────────────────────────────COMMENT
MEDIUMapp/actions/settings/conectarLoginCodex.ts27 * ─── O portão é o da EMPRESA, não o da instalação (#1672, item 6) ──────────COMMENT
MEDIUMapp/actions/auth/signInWithGoogle.test.ts4 * ─── O defeito, medido na issue #1652 ───────────────────────────────────────COMMENT
MEDIUMapp/actions/auth/enrollMfa.ts36 // ── O campo que grava no celular é `issuer`, não `friendlyName` ───────────COMMENT
MEDIUMapp/actions/auth/signInWithGoogle.ts38 * ─── Por que há uma leitura de settings ANTES do redirect (issue #1652) ─────COMMENT
MEDIUMapp/actions/auth/signUp.ts121 // ── A AUTORIDADE da política de cadastro ──────────────────────────────────COMMENT
MEDIUMapp/actions/auth/signUp.ts137 // ── O GoTrue com o cadastro público FECHADO (#1653) ──────────────────────────COMMENT
MEDIUMapp/actions/auth/signUp.ts137 // ── O GoTrue com o cadastro público FECHADO (#1653) ──────────────────────────COMMENT
MEDIUMapp/actions/auth/signUp.ts217 // ── O BECO SEM SAÍDA DE QUEM JÁ TEM CONTA ────────────────────────────COMMENT
MEDIUMapp/api/v1/messages/route.test.ts38// ─── Banco falso de estado (#1613) ────────────────────────────────────────────COMMENT
MEDIUMapp/api/v1/messages/route.test.ts38// ─── Banco falso de estado (#1613) ────────────────────────────────────────────COMMENT
MEDIUMapp/api/v1/messages/route.ts91 * ─── Item C: autoria "em nome de" (#1613) ─────────────────────────────────COMMENT
MEDIUMapp/api/v1/messages/route.ts309 // ─── Item A: idempotência (#1613) ────────────────────────────────────────COMMENT
MEDIUMapp/api/v1/messages/route.ts309 // ─── Item A: idempotência (#1613) ────────────────────────────────────────COMMENT
MEDIUMapp/api/v1/messages/_handler.ts557 // ─── A janela de 24h, ANTES de qualquer linha nascer (#1614) ──────────────COMMENT
MEDIUMapp/api/v1/messages/_handler.ts557 // ─── A janela de 24h, ANTES de qualquer linha nascer (#1614) ──────────────COMMENT
MEDIUMapp/api/v1/messages/_handler.ts636 // ─── Assinatura do emissor (#2066) ─────────────────────────────────────────COMMENT
MEDIUMapp/api/v1/messages/_handler.ts636 // ─── Assinatura do emissor (#2066) ─────────────────────────────────────────COMMENT
MEDIUMapp/api/v1/messages/_handler.ts774 // ─── A CITAÇÃO, e a checagem que ela obriga ────────────────────────────────COMMENT
MEDIUMapp/api/v1/messages/_handler.ts806 // ─── "Em nome de" (#1613): o CTX é a única porta ───────────────────────────COMMENT
MEDIUMapp/api/v1/messages/_handler.ts806 // ─── "Em nome de" (#1613): o CTX é a única porta ───────────────────────────COMMENT
MEDIUMapp/api/v1/messages/_handler.ts1049 // ─── Pré-voo ANTES de escolher transporte ──────────────────────────COMMENT
MEDIUMapp/api/v1/messages/[id]/media/route.ts111 // ── Fallback: o worker ainda não persistiu ──────────────────────────────────COMMENT
MEDIUMapp/api/v1/channel-sessions/[id]/route.ts393 // ─── A ASSINATURA NÃO FICA ÓRFÃ NO ZERNIO (issue #2419) ───────────────────COMMENT
MEDIUMapp/api/v1/channel-sessions/[id]/route.ts393 // ─── A ASSINATURA NÃO FICA ÓRFÃ NO ZERNIO (issue #2419) ───────────────────COMMENT
MEDIUMapp/api/v1/channel-sessions/[id]/route.ts422 // ─── O OVERRIDE NÃO FICA ÓRFÃO NA META (issue #1334) ─────────────────────COMMENT
MEDIUMapp/api/v1/channel-sessions/[id]/route.ts422 // ─── O OVERRIDE NÃO FICA ÓRFÃO NA META (issue #1334) ─────────────────────COMMENT
MEDIUMapp/api/v1/channel-sessions/[id]/route.ts517 // ─── O AVISO NÃO FICA ÓRFÃO (issue #1023) ─────────────────────────────────COMMENT
MEDIUMapp/api/v1/channel-sessions/[id]/route.ts517 // ─── O AVISO NÃO FICA ÓRFÃO (issue #1023) ─────────────────────────────────COMMENT
MEDIUMapp/api/v1/channel-sessions/[id]/route.ts546 // ─── O AVISO DE PAUSA TAMBÉM NÃO FICA ÓRFÃO (issue #2389, critério 3) ─────COMMENT
MEDIUMapp/api/v1/channel-sessions/[id]/route.ts546 // ─── O AVISO DE PAUSA TAMBÉM NÃO FICA ÓRFÃO (issue #2389, critério 3) ─────COMMENT
MEDIUMapp/api/v1/products/route.test.ts140// ─── GET: busca no servidor e paginação opcional ───────────────────────────COMMENT
MEDIUMapp/api/v1/lgpd/anonymize/route.ts102 // ─── RETOMADA, NÃO PORTA FECHADA ───────────────────────────────────────COMMENT
MEDIUMapp/api/v1/lgpd/anonymize/route.ts135 // ── Passos 2 e 3 — a MESMA função que o cron de retenção usa ──────────COMMENT
MEDIUMapp/api/v1/leads/route.test.ts217// ─── #2547: NO "SÓ OS SEUS", O QUE O ATENDENTE CRIA É DELE ───────────────────COMMENT
MEDIUMapp/api/v1/leads/route.test.ts217// ─── #2547: NO "SÓ OS SEUS", O QUE O ATENDENTE CRIA É DELE ───────────────────COMMENT
MEDIUMapp/api/v1/leads/route.ts52 // ─── NO "SÓ OS SEUS", O QUE O ATENDENTE CRIA É DELE (issue #2547) ──────────COMMENT
1395 more matches not shown…
Over-Commented Block1456 hits · 1310 pts
SeverityFileLineSnippetContext
LOWvitest.cercas.ts1import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";COMMENT
LOWvitest.cercas.ts21// 5–6 min da suíte longa (#1604, #1587, #1598) em vez de no primeiro minuto.COMMENT
LOWdocker-compose.supabase-ca.yml1# docker-compose.supabase-ca.yml — overlay da CA do Supabase no RUNTIME (#829)COMMENT
LOWdocker-compose.traefik.yml1# DeskcommCRM — override para VPS que JÁ TEM um proxy reverso Traefik.COMMENT
LOWdocker-compose.traefik.yml21# O comportamento padrão (sem este arquivo) fica EXATAMENTE como antes: quemCOMMENT
LOWdocker-compose.traefik.yml41# instalação. O install.sh a descobre e grava no .env — são dois cenários comCOMMENT
LOWdocker-compose.traefik.yml61 labels:COMMENT
LOWdocker-compose.traefik.yml81 traefik.http.routers.deskcomm.middlewares: "deskcomm-compress"COMMENT
LOWdocker-compose.traefik.yml121 # ATENÇÃO a um detalhe do Compose: nomear o serviço explicitamenteCOMMENT
LOWdocker-compose.npm.yml1# docker-compose.npm.yml — override para VPS que já tem Nginx Proxy Manager (ouCOMMENT
LOWdocker-compose.npm.yml21#COMMENT
LOWvitest.db.config.ts21 fileParallelism: false,COMMENT
LOWdocker-compose.build.yml1# Override OPCIONAL para buildar a imagem localmente em vez de puxar do registry.COMMENT
LOWdocker-compose.yml1# Stack local de dependências externas para o DeskcommCRM.COMMENT
LOWdocker-compose.prod.yml1# DeskcommCRM — stack de produção self-host (VPS HostGator).COMMENT
LOWdocker-compose.prod.yml21 # o que morre pode ser o CRM.COMMENT
LOWdocker-compose.prod.yml41 # `missing` ou sem a chave. Aqui isso seria o pior desfecho possível: o app éCOMMENT
LOWdocker-compose.prod.yml81 logging: *default-loggingCOMMENT
LOWdocker-compose.prod.yml101 # ("Skipped - No image to be pulled") e imune a `up -d` sem `--build`. Ele eraCOMMENT
LOWdocker-compose.prod.yml141 #COMMENT
LOWdocker-compose.prod.yml161 restart: unless-stoppedCOMMENT
LOWdocker-compose.prod.yml261COMMENT
LOWdocker-compose.prod.yml281 # em serviço de profile inativo não sobe — o CRM inteiro deixaria deCOMMENT
LOWdocker-compose.prod.yml321 WACALLS_CORS_ORIGINS: ${WACALLS_CORS_ORIGINS:-}COMMENT
LOWdocker-compose.prod.yml341 - "${WACALLS_WEBRTC_UDP_PORT:-7881}:${WACALLS_WEBRTC_UDP_PORT:-7881}/udp"COMMENT
LOWdocker-compose.prod.yml361 # Para ligar: copiar asterisk/pjsip.conf.example e asterisk/ari.conf.exampleCOMMENT
LOWplaywright.config.ts141 * "quebrou" em vez de "deu azar na ordem" — e suíte que falha por azar ninguémCOMMENT
LOWplaywright.config.ts161 trace: "retain-on-failure",COMMENT
LOWplaywright.config.ts181 // instante em que ele morre: `ECONNRESET`/`socket hang up` num GET depoisCOMMENT
LOWplaywright.config.ts201 reuseExistingServer: false,COMMENT
LOWvitest.config.ts41 // Bancada opcional: usa node:test, PostgreSQL próprio e Playwright comCOMMENT
LOWtsconfig.typecheck.json1{COMMENT
LOWinfra/executor-proprio/instalar.sh1#!/usr/bin/env bashCOMMENT
LOWinfra/executor-proprio/so-o-que-e-nosso.sh1#!/usr/bin/env bashCOMMENT
LOWdocker/scheduler/entrypoint.sh1#!/bin/shCOMMENT
LOWdocker/scheduler/entrypoint.sh21# Constante, não configuração: `app` é o nome do serviço na rede interna doCOMMENT
LOWdocker/scheduler/entrypoint.sh61# A CAMPANHA. Minuto a minuto, e a rodada manda no máximo uma mensagem porCOMMENT
LOWdocker/scheduler/entrypoint.sh81*/5 * * * *|60|api/v1/cron/agenda-google-pushCOMMENT
LOWdocker/scheduler/entrypoint.sh101# A DATA DO FUNIL (#989). Mesma cadência e mesmo motivo do aniversário: de horaCOMMENT
LOWdocker/scheduler/entrypoint.sh161 # foi ali que a issue #1109 ficou seis versões invisível: o `sync-model-catalog`COMMENT
LOWapp/layout.tsx201 // `<PublicEnvScript/>`: numa imagem pré-buildada, um render ESTÁTICOCOMMENT
LOWapp/layout.tsx241 // `null` sem motivo é o caso de fábrica (nenhuma cor configurada): não há oCOMMENT
LOWapp/public-env-script.tsx61 NEXT_PUBLIC_SUPABASE_ANON_KEY: env.NEXT_PUBLIC_SUPABASE_ANON_KEY,COMMENT
LOWapp/app/layout.tsx41 // Sem organização ativa existem DOIS estados, e eles pedem telas opostas:COMMENT
LOWapp/app/layout.tsx181 // `<body>`, seria repetir no documento um bloco que já vale pela raiz. AlémCOMMENT
LOWapp/app/layout.tsx221COMMENT
LOWapp/app/settings/tenant/agenda/_client.tsx741 // podia mais ser removido. Controle que a tela oferece e oCOMMENT
LOWapp/app/settings/tenant/agenda/page.tsx41 if (!activeOrg) redirect("/app");COMMENT
LOWapp/app/settings/tenant/agenda/page.tsx81 // A regra "Clientes pela agenda" mora em `organizations.settings.crm`. LERCOMMENT
LOWapp/app/settings/security/page.tsx41 .maybeSingle();COMMENT
LOW…p/app/settings/atualizacao/_components/UpdatePanel.tsx361 }COMMENT
LOWapp/app/settings/tags/page.tsx41export default async function TagsPage() {COMMENT
LOW…pp/settings/api-tokens/_components/ApiTokensClient.tsx41 * inalcançável — a API sempre aceitou os escopos; só o catálogo daqui osCOMMENT
LOWapp/app/pipelines/[id]/_client.tsx101 // O QUADRO CABE NA TELA. A página rolava com a janela: o quadro media oCOMMENT
LOWapp/app/pipelines/[id]/_client.tsx121 // `tests/unit/altura-fixa-le-a-reserva-do-rodape.test.ts` cobra: alturaCOMMENT
LOWapp/app/ai/routers/[id]/_client.tsx141 members.map((m) => ({ ...m, key: m.id })),COMMENT
LOWapp/app/ai/agents/[id]/_actions.ts181 // Em QUAL rascunho esta escrita cai — pela MESMA régua que a tela usa paraCOMMENT
LOWapp/app/ai/agents/[id]/_actions.ts201 // `fn_ai_agent_version_content_immutable` não pega este caso, porque eleCOMMENT
LOWapp/app/ai/agents/[id]/page.tsx81 // ─── A EXCEÇÃO AO EDITOR LEGADO, E A CONDIÇÃO QUE A ENCERRA (issue #456) ───COMMENT
LOWapp/app/ai/agents/[id]/page.tsx181 // VIGENTE > publicada > última versão que existiu. Antes, o rascunho venciaCOMMENT
1396 more matches not shown…
Hyper-Verbose Identifiers624 hits · 648 pts
SeverityFileLineSnippetContext
LOWapp/app/settings/tenant/_danger-zone.tsx39export function ZonaDePerigoDaOrganizacao({ displayName }: Props) {CODE
LOWapp/app/settings/conversoes/_formGoogle.tsx48export function FormularioDeConversoesGoogle({CODE
LOWapp/app/settings/marca/_form.tsx140export function FormularioDaMarcaDaOrganizacao({ gravada, instalacao, ambiente, vocabulario }: Props) {CODE
LOWapp/app/settings/notifications/_client.test.tsx90function renderizarComoPrimeiraPassadaDoCliente(): string {CODE
LOWapp/app/_components/EstiloDaMarcaDaOrganizacao.tsx36export function EstiloDaMarcaDaOrganizacao({ css }: { css: string | null }) {CODE
LOW…/followups/_components/DuplicateFollowupFlowButton.tsx15export function DuplicateFollowupFlowButton({ flowId, variant = "outline", size = "sm" }: Props) {CODE
LOWapp/app/ai/atendimento/[id]/page.tsx17export default async function AtendimentoFlowBuilderPage({CODE
LOW…ntegracao-dados/[id]/_components/ExploradorDeDados.tsx200 function redimensionarColunaTeclado(evento: ReactKeyboardEvent<HTMLElement>, coluna: string) {CODE
LOW…ntegracao-dados/[id]/_components/ExploradorDeDados.tsx210 function redimensionarLinhaTeclado(CODE
LOW…ntegracao-dados/[id]/_components/ExploradorDeDados.tsx227 function iniciarRedimensionamentoColuna(CODE
LOW…ntegracao-dados/[id]/_components/ExploradorDeDados.tsx255 function iniciarRedimensionamentoLinha(CODE
LOWapp/app/campaigns/settings/page.tsx8export default function ConfiguracaoDeCampanhasPage() {CODE
LOWapp/app/webhooks/_components/CadastrarCampo.tsx69export function useCampoDoFunilDaCaptacao(webhookSourceId: string | null): CampoDoFunilDaCaptacao {CODE
LOWapp/admin/(protected)/destinos-internos/_form.tsx26export function FormularioDeDestinosInternos({ listaInicial, vemDoPiso }: Props) {CODE
LOWapp/admin/(protected)/sistema/_form.tsx56export function FormularioDeComportamento({CODE
LOWapp/admin/(protected)/sistema/page.tsx216async function contarSuspensasPorCobranca(db: SupabaseClient): Promise<number | null> {CODE
LOWapp/actions/settings/listarFerramentasMcpExternas.ts62export async function listarFerramentasMcpExternas(): Promise<ResultadoDaListagem> {CODE
LOWapp/actions/settings/salvarRegrasDeConversaoMeta.ts52export async function salvarRegrasDeConversaoMeta(CODE
LOWapp/actions/settings/acoesDeConversaoGoogle.ts47export async function listarAcoesDeConversaoGoogle(): Promise<CODE
LOWapp/actions/settings/acoesDeConversaoGoogle.ts65export async function criarAcaoDeConversaoGoogle(CODE
LOWapp/actions/settings/updateMetaApp.ts268export async function rotacionarVerifyTokenDaMeta(): Promise<UpdateMetaAppResult> {CODE
LOWapp/actions/settings/atualizarInterfaceDaEmpresa.ts30export async function atualizarInterfaceDaEmpresa(input: InterfaceSettings): Promise<InterfaceDaEmpresaResult> {CODE
LOWapp/actions/settings/definirServidorMcpExterno.ts80export async function definirServidorMcpExterno(CODE
LOWapp/actions/settings/updateGoogleAdsConnection.ts66export async function updateGoogleAdsConnection(CODE
LOWapp/actions/settings/updateAdInsightsConnection.ts90export async function updateAdInsightsConnection(CODE
LOWapp/actions/settings/definirIdentidadeDaConversao.ts63export async function definirIdentidadeDaConversao(CODE
LOW…tions/settings/apagarDadosOperacionaisDaOrganizacao.ts54export async function apagarDadosOperacionaisDaOrganizacao(input: {CODE
LOWapp/actions/settings/conectarLoginCodex.ts196export async function desconectarLoginCodexAgora(): Promise<DesconectarLoginCodexResult> {CODE
LOWapp/actions/settings/salvarRegrasDeConversaoGoogle.ts63export async function salvarRegrasDeConversaoGoogle(CODE
LOWapp/actions/settings/updateAdPlatformConnection.ts84export async function updateAdPlatformConnection(CODE
LOWapp/actions/registration/decide.ts36export async function decideRegistrationRequest(CODE
LOWapp/actions/admin/salvarConfiguracaoDaInstalacao.ts56export async function salvarConfiguracaoDaInstalacao(CODE
LOWapp/actions/admin/salvarConfiguracaoDaInstalacao.ts122export async function voltarConfiguracaoAoPadrao(chave: string): Promise<ResultadoDaGravacao> {CODE
LOWapp/api/v1/admin/cobranca/conexao/route.ts329async function contarAssinaturasComProvedor(CODE
LOWapp/api/v1/voice/sessions/pair/route.ts83async function descartarSessaoNaoPareada(wacalls: WacallsClient, sessionId: string): Promise<void> {CODE
LOWapp/api/v1/conversations/_handler.ts641export async function markConversationReadHandler(CODE
LOWapp/api/v1/conversations/counts/route.ts51export function filtrosAuxiliaresDaContagem(CODE
LOWapp/api/v1/ai/credentials/[id]/route.ts353async function desligarOJevSeFicouSemChave(p: {CODE
LOWapp/api/v1/agenda/agendamentos/_handler.ts165async function colegasPodemMexerNaAgenda(supabase: SB, ctx: HandlerCtx): Promise<boolean> {CODE
LOWapp/api/v1/agenda/agendamentos/_handler.ts213export function recusaMudancaNaAgendaAlheia(CODE
LOWapp/api/v1/agenda/agendamentos/_handler.ts295async function executarCriacaoDeAgendamento(CODE
LOWapp/api/v1/agenda/agendamentos/_handler.ts480export async function alterarAgendamentoHandler(CODE
LOWapp/api/v1/agenda/agendamentos/_handler.ts636export async function cancelarAgendamentoHandler(CODE
LOWapp/api/v1/marca/logo/route.test.ts131function usuarioAdminDeOrganizacao(): AuthUser {CODE
LOWapp/api/v1/webhooks/in/[token]/route.ts70function findRawPhoneIfUnnormalized(payload: Record<string, unknown>, fieldMap: FieldMap): string | null {CODE
LOWapp/api/v1/cron/proposta-travada/route.ts42export async function recuperarPropostasTravadas(CODE
LOWapp/api/v1/cron/case-stale-watcher/route.ts306async function cobrarPassagensEsquecidas(CODE
LOWapp/api/v1/cron/proposal-expiry/route.ts26export function encontrarPropostasVencidas(CODE
LOWapp/api/v1/cron/followup-flow-worker/route.ts197async function varrerConfirmacoesDePresenca(CODE
LOWapp/api/v1/cron/proposal-promised-not-created/route.ts27export function encontrarPromessasSemProposta(CODE
LOWapp/api/v1/channels/official/route.ts109async function tokenDeVerificacaoParaATela(): Promise<{CODE
LOWexperiments/extensoes/catalog/test_catalog.py39 def test_publica_artefato_e_exporta_snapshot_de_admissao(self) -> None:CODE
LOWexperiments/extensoes/catalog/test_catalog.py55 def test_identidade_publicada_e_imutavel(self) -> None:CODE
LOWexperiments/extensoes/catalog/test_catalog.py70 def test_servidor_expoe_so_artefato_por_digest_e_preserva_bytes(self) -> None:CODE
LOWexperiments/extensoes/catalog/test_catalog.py111 def test_servidor_recusa_bind_fora_do_loopback_exato(self) -> None:CODE
LOWexperiments/extensoes/catalog/test_catalog.py125 def test_publicacao_recusa_json_duplicado_e_chaves_de_prototipo(self) -> None:CODE
LOWexperiments/extensoes/catalog/test_catalog.py136 def test_publicacao_recusa_texto_vazio_nul_e_surrogate_isolado(self) -> None:CODE
LOWtests/qa-helpers.ts528function compartilhadosNaoDeclarados(): string[] {CODE
LOWtests/capture-wave-6-cenarios.ts98function vocabularioTemEdicaoHumana(): { tem: boolean; tipos: string[] } {CODE
LOWtests/unit/controle-decorativo.test.ts91function controlesQueDependemDeCallback(): Controle[] {CODE
564 more matches not shown…
Modern AI Meta-Vocabulary42 hits · 118 pts
SeverityFileLineSnippetContext
MEDIUMREADME.en.md345├── workers/ # event_log consumers (AI, RAG, LGPD, media, routines)CODE
MEDIUMREADME.md378├── workers/ # consumers de event_log (IA, RAG, LGPD, mídia, rotinas)CODE
MEDIUMtasks/rag-completo.md1# Plano — RAG completo (feat/rag-completo)COMMENT
MEDIUMapp/app/ai/agents/_components/AgentStatusBadge.test.ts19 // motor nenhum — prompt, tools, funis e guardrails moram emCOMMENT
MEDIUMapp/app/ai/agents/[id]/_actions.ts142 // em lib/ai/guardrails-schema.ts — mais estrita em name/description). É a réguaCOMMENT
MEDIUMapp/api/v1/voice/opt-in/route.ts205 // "salvo" sem nada ter sido gravado. Mesmo cuidado da rota de guardrails.COMMENT
MEDIUMtests/unit/cliente-que-falha-nao-volta-ao-pool.test.ts167// lib/agent-engine/guardrails/before-send.ts — lock por número + envioCOMMENT
MEDIUMtests/unit/chamada-de-voz-desligada-por-padrao.test.ts35 // precedência que `lib/agent-engine/guardrails/camadas-da-org.ts` usa —,COMMENT
MEDIUMtests/invariants/vocabulario-banco-x-typescript.test.ts486 // lib/agent-engine/guardrails/before-send.ts → TipoDeEnvio. Migration 0535COMMENT
MEDIUMdocs/SETUP.md1225. [OpenAI ou OpenRouter](#5-openai-ou-openrouter--embeddings-do-rag) — embeddings do RAG.CODE
MEDIUMdocs/SETUP.md343## 5. OpenAI ou OpenRouter — embeddings do RAGCOMMENT
MEDIUMdocs/research/architecture-diagrams.md663## 11. Data Flow — RAG ingestion pipelineCOMMENT
MEDIUMdocs/design/teto-de-orcamento.md117 'jailbreak_detect', // lib/agent-engine/guardrails/jailbreak/classifier.ts:114CODE
MEDIUMdocs/design/teto-de-orcamento.md118 'promise_semantic', // lib/agent-engine/guardrails/promise/semantic.ts:113CODE
MEDIUMdocs/business-rules/00-business-rules-catalog.md401### IA-03 — Top-K do RAG default 5, configurável por tenantCOMMENT
MEDIUMdocs/specs/05-spec-ai-rag-handoff.md12# Spec 05 — IA Conversacional + RAG + Sentiment + HandoffCOMMENT
MEDIUMdocs/specs/05-spec-ai-rag-handoff.md850 // 1. Validar guardrails programaticamente (defesa em profundidade)COMMENT
MEDIUMdocs/specs/06-spec-nuvemshop-lgpd.md1562### 8.4 `product` → `nuvemshop_products` + chunks RAGCOMMENT
MEDIUMdocs/testing/user-journey-map.md1651## RAG do tenant — implementado e provado (2026-07-30)COMMENT
MEDIUMdocs/stories/epics/EPIC-06-ai-rag.md28# EPIC-06 — AI Agent + RAG + Sentiment + HandoffCOMMENT
MEDIUMdocs/stories/epics/EPIC-06-ai-rag.md438### S-06.04 — Worker `rag-indexer` (consumer event-driven)COMMENT
MEDIUMdocs/stories/epics/EPIC-13-ai-agents-module.md395### S-13.03 — MCP server scaffold + auth bearer + 5 read toolsCOMMENT
MEDIUMdocs/prd/05-prd-ai-rag-handoff.md12# Sub-PRD 05 — IA Conversacional + RAG por tenant + Sentiment Detection + HandoffCOMMENT
MEDIUMdocs/prd/05-prd-ai-rag-handoff.md66### 3.3 RAG por tenant — fontes de ingestãoCOMMENT
MEDIUMdocs/prd/05-prd-ai-rag-handoff.md79### 3.4 RAG por tenant — pipeline técnicoCOMMENT
MEDIUMdocs/prd/00-prd-master.md204### 6.3 Chatbot RAG por tenantCOMMENT
MEDIUM…rpowers/plans/2026-07-23-harness-fase0-convergencia.md24### Task 1: Handoff doc + campos de RAG no `PublishedAgentConfig`COMMENT
MEDIUMdocs/superpowers/plans/2026-10-03-contato-pessoal.md113### Etapa 9 — RAG e contexto do agenteCOMMENT
MEDIUMdocs/handoffs/HANDOFF-inbox-multimodal.md78- **Onda 3 prova (2026-07-22): universal layer entrega, parte nativa no turno pende de upgrade.** Prova real com chaves CODE
MEDIUMcomponents/ai/AgentEditor.tsx135 // Valida guardrails antes de enviarCOMMENT
MEDIUM.github/workflows/release.yml148 # (RAG) já trazia uma seção de versão escrita à mão no CHANGELOG.COMMENT
MEDIUMlib/agent-engine/guardrails/vazamento-interno.ts296 // NOSSO é a barra do caminho (`lib/guardrails/before-send.ts`) ou o erro ao lado —COMMENT
MEDIUMlib/agent-engine/agent/followup-turn.ts86 // direto pela cadeia de guardrails, sem LLM (custo $0, blueprint). Ausente/'agent'COMMENT
MEDIUMlib/agent-engine/agent/followup-turn.ts603 // cadeia de guardrails, sem chamar o modelo. É um CAMINHO ADICIONAL: o run doCOMMENT
MEDIUMlib/agent-engine/agent/inbound-turn.ts2033 // (`pacingGate` em guardrails/before-send.ts) já vetava o envio fora daCOMMENT
MEDIUMlib/agent-engine/agent/inbound-turn.ts3105 // isso, "usar template" seria a forma de escapar dos guardrails de conteúdo.COMMENT
MEDIUMlib/agent-engine/agent/inbound-turn.ts3368 // Cadeia de guardrails (F2-13): stop/opt-out → anti-ban → spinning rodamCOMMENT
MEDIUMlib/agent-engine/agent/inbound-turn.ts4076 // que o dono escreveu continuam intocados (outros guardrails, outro fim).COMMENT
MEDIUMlib/agent-engine/agent/inbound-turn.ts4742 // a manda — pela MESMA cadeia de guardrails, dentro do teto de envios. RodaCOMMENT
MEDIUMlib/agent-engine/agent/formato-whatsapp.test.ts87 // A posição importa: os gates (corpo vazio, guardrails, bolhas) têm de medir o que sai.COMMENT
MEDIUMlib/ai/agents/duplicate.ts183 // é emendado com o que duplicar copia de verdade (config, guardrails, acervo).COMMENT
MEDIUMhostgator-setup-kit/install.sh1840 printf '# OpenAI: transcrição dos áudios do WhatsApp (Whisper) + embeddings do RAG.\n'CODE
Cross-Language Confusion15 hits · 110 pts
SeverityFileLineSnippetContext
HIGH⚡experiments/extensoes/catalog/catalog.py249 publisher text not null,CODE
HIGH⚡experiments/extensoes/catalog/catalog.py250 name text not null,CODE
HIGH⚡experiments/extensoes/catalog/catalog.py251 version text not null,CODE
HIGH⚡experiments/extensoes/catalog/catalog.py252 byte_length integer not null,CODE
HIGH⚡experiments/extensoes/catalog/catalog.py253 entry_json text not null,CODE
HIGH⚡experiments/extensoes/catalog/catalog.py254 artifact blob not null,CODE
HIGH⚡triagem/instrumentos/tests/test_pre_push.py75 r = self.m.push("--force", "contrib", "conserto:feat/pr")CODE
HIGH⚡triagem/instrumentos/tests/test_pre_push.py84 r = self.m.push("contrib", "+conserto:feat/pr")CODE
HIGH⚡triagem/instrumentos/tests/test_pre_push.py92 r = self.m.push("-f", "contrib", "certo:feat/pr")CODE
HIGHtriagem/instrumentos/tests/test_pre_push.py111 r = self.m.push("contrib", "certo:feat/pr")CODE
HIGH⚡triagem/instrumentos/tests/test_pre_push.py123 r = self.m.push("contrib", "certo:feat/pr")CODE
HIGH⚡triagem/instrumentos/tests/test_pre_push.py131 r = self.m.push("--force", "contrib", "certo:feat/pr", env=env)CODE
HIGH⚡triagem/instrumentos/tests/test_pre_push.py139 r = self.m.push("-u", "fork", "certo:feat/pr")CODE
HIGH⚡triagem/instrumentos/tests/test_pre_push.py147 r = self.m.push("--force", "origin", "fix/nossa")CODE
HIGH⚡triagem/instrumentos/tests/test_pre_push.py152 r = self.m.push("origin", "main")CODE
AI Slop Vocabulary12 hits · 34 pts
SeverityFileLineSnippetContext
MEDIUM…unit/teto-do-atender-bate-com-a-recusa-da-spec.test.ts116 '"atender" (a #1684 fez isso), ou uma do harness voltou a ser marcável: ajuste o ' +CODE
MEDIUMtests/shell/update-guard.test.sh242 # o harness no meio do caso — a suíte saía 1 sem imprimir QUAL prova falhou,COMMENT
MEDIUMtests/shell/dono-do-projeto.test.sh115# 80/443. Medido com o harness de VPS falsa: numa VPS com Traefik de painelCOMMENT
MEDIUMtests/shell/regras-isolamento-sem-modulo.test.sh263# o vermelho de baixo é da regra faltante, não do resto do harness.COMMENT
MEDIUMscripts/test-update-com-dados.sh87# contêiner para o único requisito do harness continuar sendo Docker.COMMENT
MEDIUMscripts/test-update-com-dados.sh133# harness mediria um mundo que o gate obrigatório não conhece.COMMENT
MEDIUMscripts/test-db.sh122 # A imagem `pgvector/pgvector` — em qualquer das tags que este harness usa,COMMENT
MEDIUMscripts/test-db.sh134 # inclusive a do próprio harness).COMMENT
MEDIUMscripts/test-db.sh489# tests/invariants/harness-isola-por-arquivo.test.ts aponta a regressão certa,COMMENT
MEDIUMscripts/backup-db.sh3# (CRM + harness do agente). Roda no host ou num cron da VPS:COMMENT
MEDIUM.github/workflows/publish-image.yml746 for _ in $(seq 1 30); do # até 90s: tsx + pool + a query do harnessCODE
MEDIUMhostgator-setup-kit/test-validators.sh3528# O harness acima sempre invoca `bash "$VPS_RAIZ/$script"` — ABSOLUTO. O READMECOMMENT
Verbosity Indicators16 hits · 30 pts
SeverityFileLineSnippetContext
LOWapp/api/v1/admin/platform-admins/route.ts32 // Step 1: fetch all platform_admins rows.COMMENT
LOW⚡app/api/v1/admin/platform-admins/route.ts65 // Step 2: collect all user IDs that need resolution (user, granted_by, revoked_by)COMMENT
LOW⚡app/api/v1/admin/platform-admins/route.ts74 // Step 3: resolve emails via the Auth Admin API.COMMENT
LOWapp/api/v1/admin/platform-admins/route.ts133 // Step 4: build enriched rowsCOMMENT
LOWapp/api/v1/admin/users/route.ts79 // Step 1: query user_organizations + organizationsCOMMENT
LOW⚡app/api/v1/admin/users/route.ts134 // Step 2: get unique user IDsCOMMENT
LOW⚡app/api/v1/admin/users/route.ts137 // Step 3: fetch auth users via the Auth Admin API.COMMENT
LOWapp/api/v1/admin/users/route.ts242 // Step 4: build joined rowsCOMMENT
LOW⚡app/api/v1/admin/users/route.ts283 // Step 5: apply q filter (email or full_name ilike)COMMENT
LOW⚡app/api/v1/admin/users/route.ts293 // Step 6: sort by last_sign_in_at desc nulls last, then user_id+org_idCOMMENT
LOWapp/api/v1/admin/users/route.ts309 // Step 7: apply cursorCOMMENT
LOWapp/api/v1/admin/users/route.ts324 // Step 8: paginateCOMMENT
LOW⚡lib/ai/rag/chunker.ts31 // Step 1: paragraph splitCOMMENT
LOW⚡lib/ai/rag/chunker.ts37 // Step 2: sub-split oversized paragraphsCOMMENT
LOWlib/ai/rag/chunker.ts67 // Step 3: apply overlapCOMMENT
LOWlib/ai/rag/chunker.ts82 // Step 4: deduplicate and filter emptiesCOMMENT
Structural Annotation Overuse16 hits · 30 pts
SeverityFileLineSnippetContext
LOWapp/api/v1/admin/platform-admins/route.ts32 // Step 1: fetch all platform_admins rows.COMMENT
LOW⚡app/api/v1/admin/platform-admins/route.ts65 // Step 2: collect all user IDs that need resolution (user, granted_by, revoked_by)COMMENT
LOW⚡app/api/v1/admin/platform-admins/route.ts74 // Step 3: resolve emails via the Auth Admin API.COMMENT
LOWapp/api/v1/admin/platform-admins/route.ts133 // Step 4: build enriched rowsCOMMENT
LOWapp/api/v1/admin/users/route.ts79 // Step 1: query user_organizations + organizationsCOMMENT
LOW⚡app/api/v1/admin/users/route.ts134 // Step 2: get unique user IDsCOMMENT
LOW⚡app/api/v1/admin/users/route.ts137 // Step 3: fetch auth users via the Auth Admin API.COMMENT
LOWapp/api/v1/admin/users/route.ts242 // Step 4: build joined rowsCOMMENT
LOW⚡app/api/v1/admin/users/route.ts283 // Step 5: apply q filter (email or full_name ilike)COMMENT
LOW⚡app/api/v1/admin/users/route.ts293 // Step 6: sort by last_sign_in_at desc nulls last, then user_id+org_idCOMMENT
LOWapp/api/v1/admin/users/route.ts309 // Step 7: apply cursorCOMMENT
LOWapp/api/v1/admin/users/route.ts324 // Step 8: paginateCOMMENT
LOW⚡lib/ai/rag/chunker.ts31 // Step 1: paragraph splitCOMMENT
LOW⚡lib/ai/rag/chunker.ts37 // Step 2: sub-split oversized paragraphsCOMMENT
LOWlib/ai/rag/chunker.ts67 // Step 3: apply overlapCOMMENT
LOWlib/ai/rag/chunker.ts82 // Step 4: deduplicate and filter emptiesCOMMENT
Fake / Example Data28 hits · 28 pts
SeverityFileLineSnippetContext
LOWapp/app/team/_components/TeamMembersClient.test.tsx55 email: "admin@example.com",CODE
LOWapp/app/ai/providers/_components/CartaoDoJev.test.tsx152 expect(screen.getByLabelText("Chave")).toHaveAttribute("placeholder", "apikey_…");CODE
LOW…i/credentials/_components/AddCredentialDialog.test.tsx58 expect(screen.getByLabelText("Chave")).toHaveAttribute("placeholder", "sk-ant-…");CODE
LOWapp/api/v1/admin/platform-admins/route.test.ts105 [ADMIN_ID]: { email: "admin@example.com" },CODE
LOWapp/api/v1/admin/platform-admins/route.test.ts122 user_email: "admin@example.com",CODE
LOWapp/api/v1/admin/platform-admins/route.test.ts150 auth: { [ADMIN_ID]: { email: "admin@example.com" } },CODE
LOWapp/api/v1/admin/platform-admins/route.test.ts162 expect(body.data[0]?.user_email).toBe("admin@example.com");CODE
LOW…i/v1/ai/agents/[id]/versions/[vid]/patch.route.test.ts95 email: "admin@example.com",CODE
LOW…sts/unit/app-da-meta-tela-nao-devolve-segredo.test.tsx195 expect(screen.getByLabelText("Chave secreta do aplicativo").getAttribute("placeholder")).toMatch(CODE
LOWtests/unit/fonte-de-conhecimento-cadastro.test.tsx335 expect(screen.getByTestId("conhecimento-chave-input")).toHaveAttribute("placeholder", "sk-or-…");CODE
LOWtests/unit/fonte-de-conhecimento-cadastro.test.tsx364 expect(screen.getByTestId("conhecimento-chave-input")).toHaveAttribute("placeholder", "AIza…");CODE
LOWtests/unit/team-role-change.test.ts83 email: "admin@example.com",CODE
LOWtests/unit/i18n-espanhol-cobre-a-tela.test.ts144 "placeholder",CODE
LOWtests/unit/aba-e-cookie-escrita-recusada.test.ts52 email: "user@example.com",CODE
LOWtests/unit/canal-parceiro-tela.test.tsx98 expect(campo).toHaveAttribute("placeholder", expect.stringMatching(/gravada/i)),CODE
LOWtests/unit/api-orcamento-de-ia.test.ts46 email: "admin@example.com",CODE
LOWtests/unit/rbac-matrix.test.ts82 email: "user@example.com",CODE
LOWtests/unit/case-detail.test.tsx139 expect(campos[0]).toHaveAttribute("placeholder", "Escreva sua resposta para a IA...");CODE
LOWtests/unit/case-detail.test.tsx140 expect(campos[1]).toHaveAttribute("placeholder", "Pergunte à IA sobre este caso…");CODE
LOWtests/e2e/inbox-busca-e-filtros-dizem-a-verdade.spec.ts91 "placeholder",CODE
LOWtests/e2e/credenciais-de-ia.spec.ts31 await expect(page.locator("#cred-key")).toHaveAttribute("placeholder", "sk-ant-…");CODE
LOWtests/e2e/conversa-do-caso.spec.ts374 "placeholder",CODE
LOWtests/e2e/acervo-de-conhecimento.spec.ts177 await expect(page.getByTestId("conhecimento-chave-input")).toHaveAttribute("placeholder", "sk-or-…");CODE
LOWtests/e2e/jev-decisoes-rapidas.spec.ts169 await expect(page.locator("#cred-key")).toHaveAttribute("placeholder", "apikey_…");CODE
LOWdocs/stories/epics/EPIC-10-audit-settings.md892Given admin altera display_name de "Acme" pra "Acme Corp"CODE
LOWdocs/stories/epics/EPIC-10-audit-settings.md895And organizations.display_name = "Acme Corp"CODE
LOW…rpowers/plans/2026-09-29-pr1-suspensao-que-suspende.md1998 email: "user@example.com",CODE
LOWlib/auth/require-role.test.ts33 email: "user@example.com",CODE
Empty Error Handlers2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHexperiments/extensoes/probe-supervisor.py44except ProcessLookupError:CODE
HIGHexperiments/extensoes/catalog/catalog.py464except KeyboardInterrupt:CODE
Hallucination Indicators1 hit · 10 pts
SeverityFileLineSnippetContext
CRITICALtests/unit/ai-cases-routes.test.ts589 pool.__client.query.mock.calls.some(([sql]) => sql.includes("insert into agent_inbox_items")),CODE
Deep Nesting9 hits · 9 pts
SeverityFileLineSnippetContext
LOWtriagem/instrumentos/sonda.py384CODE
LOWtriagem/instrumentos/sonda.py504CODE
LOWtriagem/instrumentos/promessas.py262CODE
LOWtriagem/instrumentos/promessas.py367CODE
LOWtriagem/instrumentos/apendice.py114CODE
LOWtriagem/instrumentos/tests/test_sonda.py181CODE
LOWtriagem/instrumentos/lib/medicao.py140CODE
LOWtriagem/instrumentos/lib/medicao.py173CODE
LOWtriagem/instrumentos/lib/medicao.py267CODE
Unused Imports7 hits · 7 pts
SeverityFileLineSnippetContext
LOWexperiments/extensoes/catalog/catalog.py4CODE
LOWexperiments/extensoes/catalog/test_catalog.py1CODE
LOWtriagem/instrumentos/sonda.py28CODE
LOWtriagem/instrumentos/promessas.py32CODE
LOWtriagem/instrumentos/apendice.py29CODE
LOWtriagem/instrumentos/renumerar.py25CODE
LOWtriagem/instrumentos/lib/medicao.py11CODE
Excessive Try-Catch Wrapping2 hits · 2 pts
SeverityFileLineSnippetContext
LOWexperiments/extensoes/catalog/catalog.py413 except Exception:STRING
LOWexperiments/extensoes/runtime/wasm_probe.py113 except Exception as error:CODE