All checks were successful
CD / build (pull_request) Successful in 7s
# Conflicts: # AI-HISTORY.md # CHANGELOG.md
3.1 KiB
3.1 KiB
Changelog — documents
Formato baseado em Keep a Changelog; versionamento semântico.
[1.1.0] - 2026-08-07
Added
- Análise por LLM (
AnthropicAnalyzer, Onda 1.1 do PLANO-DOCUMENTOS-IA): comANTHROPIC_API_KEY, oPOST /documents/analyzeextrai tipo, datas e número do PDF/imagem via modelo multimodal (default Haiku, configurável porDOCUMENTS_LLM_MODEL), com confiança por campo (fieldConfidences), citação do trecho de origem (evidence) e dupla passada em datas — divergência entre as duas leituras zera o campo e devolvedateMismatch(data errada é pior que campo vazio). Warnings novos no contrato:dateMismatch,lowConfidence,llmUnavailable. - Fallback gracioso: erro de API, arquivo >10MB ou mime não suportado caem na heurística por nome
de arquivo com
llmUnavailable— a análise nunca falha por causa do LLM. Sem a chave, o comportamento v1 fica intacto (factory emdocument.module.ts). - Prazo de renovação dinâmico por órgão (Onda 1.2 do plano de IA). Cada renovação que sai do
órgão vira um ciclo observado (
renewal_cycle: protocolo → emissão), gravado automaticamente no save que zera um protocolo; ciclos implausíveis (negativos ou > 2 anos) são descartados com log. GET /compliance/lead-times?programId: mediana, p90 e prazo efetivo por órgão e por tipo. Régua:effectiveLeadDays = max(catálogo, mediana + 15)com amostra ≥ 3 — o catálogo é piso legal (os 120 dias da LO nunca encolhem), a estatística só estica quando o órgão está lento.GET /compliance/upcomingeGET /alerts/previewpassam a carregar os campos aditivoseffectiveLeadDayseobserved{count, medianDays}; o degrauleadda régua de alertas dispara pelo prazo dinâmico ("a SEMAD está levando 140 dias — comece agora").- Seed de demonstração
src/scripts/seed-demo-cycles.ts(determinístico) para o LAB.
[1.0.0] - 2026-08-07
Added
- Catálogo legal de postos com 15 obrigações semeadas por migration (Resolução ANP 948/2023,
CONAMA 273/2000, Portaria INMETRO 227/2022, IN IBAMA 22/2021, NRs 1/7/20/23) e variação por UF
(
document_type_uf_override; exemplos: AVCB SP 36 meses, GO 12; LO CETESB 60 meses/120 dias). - Documentos da loja com trilha de versões (renovação nunca sobrescreve) e upload de PDF em bucket GCS privado com URL assinada de vida curta.
- Status derivado na leitura (
valid/expiringSoon/inRenewal/expired) com a regra do protocolo tempestivo: renovação protocolada mantém o documento operante. - Resumo de conformidade com score 0–100 ponderado por criticidade (interdição 3, multa 2, administrativa 1) e contagem de pendências críticas.
- Análise de upload plugável (
DocumentAnalyzer): v1 heurística por keywords do catálogo; OCR/LLM entra no mesmo ponto na v1.1. - Régua de alertas (lead do tipo/30/15/7/1/vencido) com
GET /alerts/preview; envio real (WhatsApp/e-mail) é v1.2. - Infra completa: Dockerfile, k8s/hml, cd.yml via Cloud Build — mesmo desenho do
routines.