Terracota BPO - Web Monitor
Tecnologia em Compliance - Monitoramento de Normas

✅ Execução 96d79bd8...

96d79bd8-3821-4b45-91cd-a971a012a2b0

← Voltar 📄 Ver Relatório

📊 Status

✅ Sucesso

Criado: 12/01/2026 19:59:10

Iniciado: 12/01/2026 19:59:12

Finalizado: 12/01/2026 20:06:40

Duração: 7.5 minutos

📁 Contexto

Normas de Alimentos – Brasil / Mercosul / Codex

Catálogo de normas de segurança de alimentos, rotulagem, aditivos, contaminantes, microbiologia, emb...

Monitoramento:

Monitoramento food_norms

Clientes (1):

Terracota BPO

💰 Custos LLM

$0.0069

1060 tokens em 2 chamadas

Auto-envio: Não

Formato: PDF

📋 Tarefas

ID Tipo Status Criado Início Fim Worker Erro
34 send_email success 20:25:21 20:25:21 20:25:48 ubuntu-pedro -
33 run_daily success 19:59:10 19:59:12 20:06:45 ubuntu-pedro -

📝 Logs

Saída padrão (stdout):

[openai] → Analisando seção chunk_0 da norma rdc_843_2024 com modelo gpt-4o
[openai] ← Análise da seção chunk_0 concluída em 3.4s
[openai] → Analisando seção chunk_1 da norma rdc_843_2024 com modelo gpt-4o
[openai] ← Análise da seção chunk_1 concluída em 5.1s
[openai] → Analisando seção chunk_2 da norma rdc_843_2024 com modelo gpt-4o
[openai] ← Análise da seção chunk_2 concluída em 14.4s
[openai] → Analisando seção chunk_3 da norma rdc_843_2024 com modelo gpt-4o
[openai] ← Análise da seção chunk_3 concluída em 20.3s
[openai] → Analisando seção chunk_4 da norma rdc_843_2024 com modelo gpt-4o
[openai] ← Análise da seção chunk_4 concluída em 13.3s
[openai] → Analisando seção chunk_5 da norma rdc_843_2024 com modelo gpt-4o
[openai] ← Análise da seção chunk_5 concluída em 13.7s
[openai] → Analisando seção chunk_6 da norma rdc_843_2024 com modelo gpt-4o
[openai] ← Análise da seção chunk_6 concluída em 12.1s
[openai] → Analisando seção chunk_7 da norma rdc_843_2024 com modelo gpt-4o
[openai] ← Análise da seção chunk_7 concluída em 7.4s
[openai] → Analisando seção chunk_8 da norma rdc_843_2024 com modelo gpt-4o
[openai] ← Análise da seção chunk_8 concluída em 16.2s
[openai] → Analisando seção chunk_9 da norma rdc_843_2024 com modelo gpt-4o
[openai] ← Análise da seção chunk_9 concluída em 16.1s
[openai] → Analisando seção chunk_10 da norma rdc_843_2024 com modelo gpt-4o
[openai] ← Análise da seção chunk_10 concluída em 16.5s
[openai] → Analisando seção chunk_11 da norma rdc_843_2024 com modelo gpt-4o
[openai] ← Análise da seção chunk_11 concluída em 14.0s
[openai] → Analisando seção chunk_12 da norma rdc_843_2024 com modelo gpt-4o
[openai] ← Análise da seção chunk_12 concluída em 22.3s
[openai] → Analisando seção chunk_13 da norma rdc_843_2024 com modelo gpt-4o
[openai] ← Análise da seção chunk_13 concluída em 14.6s
[openai] → Analisando seção chunk_14 da norma rdc_843_2024 com modelo gpt-4o
[openai] ← Análise da seção chunk_14 concluída em 11.7s
[openai] → Analisando seção chunk_15 da norma rdc_843_2024 com modelo gpt-4o
[openai] ← Análise da seção chunk_15 concluída em 28.1s
[openai] → Analisando seção chunk_16 da norma rdc_843_2024 com modelo gpt-4o
[openai] ← Análise da seção chunk_16 concluída em 9.5s
[openai] → Analisando seção chunk_17 da norma rdc_843_2024 com modelo gpt-4o
[openai] ← Análise da seção chunk_17 concluída em 4.1s
[openai] → Analisando seção chunk_18 da norma rdc_843_2024 com modelo gpt-4o
[openai] ← Análise da seção chunk_18 concluída em 6.3s
[openai] → Analisando seção chunk_19 da norma rdc_843_2024 com modelo gpt-4o
[openai] ← Análise da seção chunk_19 concluída em 3.2s
[openai] → Filtrando notícia 'Anvisa aprova nova indicação de medicamento para prevenção d...' usando modelo gpt-4o
[openai] ← Resultado da filtragem recebido em 2.8s
[openai] → Filtrando notícia 'Anvisa proíbe duas marcas de cosméticos irregulares...' usando modelo gpt-4o
[openai] ← Resultado da filtragem recebido em 2.8s
================================================================================
📊 RESUMO DE USO DO LLM
================================================================================
Total de chamadas: 2
Tokens de prompt: 897
Tokens de resposta: 163
Tokens totais: 1060
Custo estimado: 0.0069 USD
LLM Cost: $0.0069
LLM Tokens: 1060
LLM Calls: 2

Por modelo:
  - GPT-4o: 2 chamadas, 1060 tokens, custo 0.0069 USD

Por componente (atividade):
  - news_relevance_filter: 2 chamadas, 1060 tokens, custo 0.0069 USD
================================================================================

✓ Daily run completed for context 'food_norms' on 2026-01-12.
  Total norms: 40 | Checked: 40 | Changed: 1 | Errors: 0
  Report: data/reports/pending/2026-01-12_report.html
  (Dry run: email not sent)

Erros (stderr):

✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para in_211_2023: 2316619 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v2 para in_211_2023
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_778_2023: 21685 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_778_2023
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_243_2018: 23914 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_243_2018
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_976_2025: 80946 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_976_2025
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para dl_986_1969: 34768 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para dl_986_1969
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para decreto_6_871_2009: 124694 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para decreto_6_871_2009
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para portaria_mapa_368_1997: 37803 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para portaria_mapa_368_1997
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para portaria_mapa_46_1998: 54215 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para portaria_mapa_46_1998
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_216_2004: 37822 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_216_2004
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_275_2002: 38963 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_275_2002
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para in_160_2022: 47333 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para in_160_2022
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_722_2022: 8022 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_722_2022
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para lei_9_832_1999: 1229 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para lei_9_832_1999
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para portaria_svs_ms_27_1996: 9918 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para portaria_svs_ms_27_1996
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_122_2001: 9142 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_122_2001
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_123_2001: 38971 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_123_2001
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_326_2019: 143711 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_326_2019
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_51_2010: 2512 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_51_2010
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_51_2010_anexo: 68441 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_51_2010_anexo
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_52_2010: 18921 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_52_2010
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_854_2024: 36761 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_854_2024
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_88_2016: 116421 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_88_2016
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_91_2001: 10334 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_91_2001
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para cxc_1_1969: 143323 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para cxc_1_1969
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para cxs_1_1985: 31952 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para cxs_1_1985
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para res_gmc_26_03: 21715 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para res_gmc_26_03
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para res_gmc_80_96: 44563 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para res_gmc_80_96
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para in_mapa_46_2007: 38608 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v5 para in_mapa_46_2007
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para in_mapa_76_2018: 16652 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para in_mapa_76_2018
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
/home/pedro-brigido/terracota_project/web_monitor/.venv/lib/python3.11/site-packages/urllib3/connectionpool.py:1097: InsecureRequestWarning: Unverified HTTPS request is being made to host 'www.defesa.agricultura.sp.gov.br'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#tls-warnings
  warnings.warn(
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para portaria_mapa_146_1996: 64355 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para portaria_mapa_146_1996
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para in_161_2022: 12309 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para in_161_2022
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_724_2022: 930 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_724_2022
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para in_mapa_11_2000: 3723 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v2 para in_mapa_11_2000
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para portaria_sda_664_2022: 8473 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para portaria_sda_664_2022
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para portaria_sda_765_2023: 9494 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para portaria_sda_765_2023
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para in_281_2024: 31188 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v8 para in_281_2024
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_843_2024: 35061 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v5 para rdc_843_2024
🔍 [DEBUG] PASSO 2: Mudanças detectadas comparando .md (WEB vs LOCAL): 289 parágrafos, 51 sentenças
🔍 [DEBUG] PASSO 4: Mudança detectada por comparação de .md, forçando criação de nova versão
💾 [DEBUG] PASSO 5: Salvando conteúdo da WEB normalizado para rdc_843_2024 v6 em data/normalized/rdc_843_2024/v6.md
🔍 [DEBUG] Iniciando chunking para rdc_843_2024 v6 (first_run=False, previous_version=5)
✅ [DEBUG] Chunks salvos: 20 chunks em data/chunks/rdc_843_2024/v6
🔍 [DEBUG] Filtro de chunks: 20 relevante(s) de 20 total(is) (0 filtrado(s))
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para in_75_2020: 77529 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para in_75_2020
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_429_2020: 53306 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_429_2020
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_727_2022: 38783 caracteres
🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_727_2022
🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação)
🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash
⚠️  Email não enviado: EmailSender não foi configurado. Verifique as variáveis de ambiente EMAIL_FROM e EMAIL_TO.