Cerebro Studio · Backlog · Changelog
/www/wwwroot/sigaautobot.com.br/docs/CHANGELOG.md • 2026-06-04T00:53:53.643Z

Projeto: SigaAutoBot. Fonte principal: /www/wwwroot/sigaautobot.com.br/docs/CHANGELOG.md.

CHANGELOG - SigaAutoBot

Histórico de mudanças.

[2026-06-03] - BK-22 Atualização PNCP Automática

Fixed

  • Scanner automático deixou de ignorar pregões PNCP já existentes e agora completa/atualiza órgão, local, objeto, datas, URLs e itens.
  • Match de oportunidade existente passou a considerar cnpj_orgao, órgão antigo com CNPJ e URL PNCP, evitando duplicata depois que o nome do órgão é limpo.

Added

  • Task Celery refresh_incomplete_pncp_auctions para reparar pregões PNCP parcialmente salvos sem depender do botão manual.
  • Agenda Beat horária refresh-incomplete-pncp-auctions-hourly, no minuto 10, com limite de 100 pregões por execução.

Validated

  • python3 -m py_compile app/services/scanner_service.py app/workers/comprasnet_tasks.py app/core/celery_app.py app/workers/__init__.py sem erros.
  • git diff --check sem erros.
  • Execução manual da task encontrou 3 candidatos, atualizou 3 e retornou 0 erros.
  • Banco ficou com 0 pregões PNCP incompletos; IDs 1, 2 e 4 foram enriquecidos com órgão limpo, local e objeto.
  • web, worker e beat reiniciados e saudáveis; /system/health e /metrics retornaram 200.

[2026-06-03] - BK-21 Sync PNCP de Itens

Fixed

  • Botão Atualizar via PNCP deixou de acessar PNCPItemData.valor_total, atributo que não existe no DTO centralizado.
  • Sincronização de itens agora usa valor_total_estimado com fallback para homologado e também aplica fallback equivalente no valor unitário.
  • Workflow Deploy to VPS passou a preservar corretamente o exit code do retry SSH/rsync e aumentou o timeout do restart remoto.

Validated

  • python3 -m py_compile app/api/routes/auctions.py e git diff --check sem erros.
  • POST /auctions/12/fetch-pncp retornou 200 com itens_sincronizados=4 e itens_atualizados=3.
  • /auctions/12 autenticado retornou 200 text/html e exibiu 7 itens do PE 2477/2025.
  • Run 26914919214 evidenciou timeout TCP dos runners GitHub para SSH da VPS e bug de captura de exit code no retry anterior.

[2026-06-03] - BK-20 Detalhe de Pregão

Fixed

  • /auctions/{id} agora renderiza a tela de detalhes/itens para navegação normal do usuário.
  • A resposta JSON foi preservada para clientes que pedem Accept: application/json e também em /auctions/{id}/json.
  • Workflow Deploy to VPS passou a tentar o passo SSH/rsync até 4 vezes para reduzir falhas transitórias de conectividade do runner GitHub.

Validated

  • python3 -m py_compile app/api/routes/auctions.py e git diff --check sem erros.
  • /auctions/12 sem sessão redireciona para /login; com sessão retorna 200 text/html e mostra PE 2477/2025.
  • /auctions/12 com Accept: application/json e /auctions/12/json continuam retornando JSON 200.
  • /system/health e /login retornaram 200; containers web, worker e beat saudáveis após rebuild.
  • Run 26913256298 aplicou o commit na main, mas o deploy automático falhou por timeout TCP no SSH antes de chegar ao sshd; UFW, fail2ban e blacklist local não indicaram bloqueio na VPS.

[2026-06-03] - BK-19 Deploy GitHub Actions

Fixed

  • Workflow Deploy to VPS deixou de usar appleboy/scp-action para cópia de arquivos e passou a sincronizar por rsync via SSH.
  • O deploy agora aplica exclusões efetivas para .git, .env, backups, caches e artefatos locais, sem apagar o estado vivo remoto.

Validated

  • Log da run 26902162248 confirmou falha anterior no passo Copy Files (SCP) por dial tcp ... i/o timeout e warning de input exclude inesperado.
  • YAML do workflow validado localmente e git diff --check sem erros.
  • Revisão externa OpenCode não encontrou bloqueadores no diff; Gemini excedeu timeout na segunda revisão.
  • Run 26906496959 confirmou falha posterior no ssh-keyscan; o workflow deixou de depender desse preflight de 5s e passou a usar StrictHostKeyChecking=accept-new no SSH real.

[2026-06-03] - BK-18 Scanner por Favoritos

Added

  • Task Celery scan_favorite_org_opportunities para varrer somente CNPJs favoritos.
  • Botão Buscar agora nos favoritos no Banco de Oportunidades.
  • Agenda diária scan-favorite-org-opportunities-daily às 04:45.

Fixed

  • Salvamento de inteligência competitiva passou a aceitar itens PNCP sem preço final homologado, usando 0 quando o PNCP não informa valor.

Validated

  • Execução manual por favoritos processou 15 CNPJs favoritos, encontrou 27 alvos PNCP, salvou 12 oportunidades em auctions, 16 itens e 18 registros de inteligência, sem erro na task.

[2026-06-03] - BK-17 Banco de Oportunidades

Changed

  • /tools/opportunities agora inicia com escopo Meus favoritos quando o usuário possui CNPJs/órgãos favoritos.
  • A tela mostra contadores de oportunidades salvas, órgãos favoritos e oportunidades favoritas.
  • O estado vazio diferencia base sem oportunidades salvas de filtro sem resultado.

[2026-06-03] - BK-16 Favoritos e Base RJ

Added

  • Tabela user_favorite_orgs para favoritos persistentes por usuário/CNPJ.
  • Ações de favoritar/remover órgão na base municipal e cadastro manual de favorito por CNPJ.
  • Filtro de pregões por órgãos favoritos em /auctions e /auctions/search.
  • Agendamentos Celery focados no RJ: descoberta diária, carga profunda semanal 2025/2026 e CAPAG diário RJ.

Changed

  • Descoberta PNCP municipal deixou de exigir poderId = E, porque municípios RJ de 2025/2026 aparecem no PNCP com poderId = N.
  • update_capag_batch passou a aceitar filtro ufs.

Validated

  • Migration 20260603_001 aplicada em produção.
  • Carga RJ 2025/2026 salvou 26 CNPJs RJ reais, todos válidos pelo validador de CNPJ.
  • CAPAG RJ processou 24 registros novos/pendentes, com 23 atualizados e 0 erros.
  • /system/health e /metrics retornaram 200 após restart.

[2026-05-29] - Evolução em 5 Ondas

Added

Onda 1: Anti-Detecção

  • patchright para automação de browser com fingerprinting nativo
  • curl_cffi para requisições com suporte a perfis reais de cliente
  • camoufox como engine alternativa (flag CAMOUFOX_ENABLED)
  • Flag SCRAPER_ENGINE_VERSION=3.1 para versionamento da engine anti-detecção

Onda 2: Extração LLM-Powered

  • Firecrawl /extract com schemas Pydantic para scraping estruturado
  • Crawl4AI on-premise como alternativa (flag CRAWL4AI_ENABLED)
  • LLMParser com cascade: Groq (Llama-3.3-70b) → fallback Google Gemini Flash
  • Flags: LLM_PARSER_ENABLED, LLM_PARSER_MAX_TOKENS, GROQ_API_KEY, GROQ_MODEL, GEMINI_API_KEY, GEMINI_MODEL

Onda 3: Cache Distribuído & Observabilidade

  • RedisScraperCache substitui SQLite single-file (SCRAPER_CACHE_BACKEND=redis)
  • Redis com namespace segregado (SCRAPER_CACHE_REDIS_PREFIX)
  • Prometheus para métricas (/metrics, porta 9090)
  • HTMX dashboard em /admin/scraping/live com atualização em tempo real

Onda 4: Sniper Avançado

  • WebSocketSniffer (módulo app/services/websocket_sniffer.py) para captura de eventos em tempo real via WS
  • CompetitorIntelligence com análise numpy de padrões de lance
  • Endpoint /api/analytics/competitor/{cnpj} com inteligência de concorrentes

Onda 5: Resiliência Avançada

  • Golden HTML Tests para validação de frames capturados contra padrões esperados
  • CaptchaSolver com suporte a 2Captcha e AntiCaptcha (flags CAPTCHA_TWOCAPTCHA_KEY, CAPTCHA_ANTICAPTCHA_KEY)
  • pgvector + PregaoEmbeddings: Embeddings de pregões via Gemini para similaridade semântica
  • Flag CAPTCHA_DEFAULT_TIMEOUT=120 para timeout de resolução

Changed

  • Arquitetura de cache modernizada para escala horizontal (Redis)
  • Engine de scraping passou de Selenium para Playwright com patchright
  • Estratégia LLM para parsing mudou de single-provider para multi-provider cascade

[2026-03-11] - Documentacao

Changed

  • AGENTS.md passou a exigir validacao tecnica obrigatoria antes de commit, merge ou fechamento:
  • php -l para PHP alterado;
  • node --check/node -c para JS alterado;
  • validacao de JavaScript inline renderizado;
  • validacao ponta a ponta de fluxos AJAX.

[2026-03-16] - Manutencao

Changed

  • .gitignore passou a ignorar novos backups operacionais em backups/, evitando que artefatos locais como backups/2026-03-11-runtime-docs/ aparecam como sujeira no checkout da VPS.
  • Os backups historicos ja rastreados permaneceram preservados no Git e nao foram removidos.

[2026-03-30] - BK-04 Governanca de VPS

Changed

  • AGENTS.md passou a reconhecer explicitamente a camada global em /root.
  • AGENTS.md deixou de induzir git pull automatico na VPS como preflight.
  • docs/GIT_WORKFLOW.md passou a remover git pull do preflight e a tratar o estado local da VPS como potencialmente mais atual que o remoto.

Entradas detalhadas