Skip to content

Webhooks de canal não validam payload com Zod — divergência repo-wide da doutrina #237

Description

@melgarafael

O CLAUDE.md estabelece "Zod em todo input externo (request body, webhook payload, env)". O diretório lib/channels/ inteiro não usa Zod:

$ grep -rln 'from "zod"' lib/channels/
(vazio)
$ grep -rln 'from "zod"' lib/api/     # controle positivo: o grep está vivo
lib/api/client.ts

Os payloads de webhook são lidos por type-guards manuais (obj/str em lib/channels/zernio/webhook.ts:100-102, e equivalentes no canal meta). Funciona, mas cada campo novo depende de alguém lembrar de checar o tipo, e a divergência entre o que o parser aceita e o que o resto do código assume não tem nada que a acuse.

Achado na triagem do PR #228. Não é regressão dele — é ausência repo-wide nesta família, que o PR apenas herdou ao seguir o padrão do canal existente.

Escopo

Os três parsers de webhook de canal (waha, meta, zernio). O ganho real não é o Zod em si: é o payload passar a ter um schema declarado, em vez de a forma esperada estar espalhada em type-guards.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions