Normalizacao OKF dos .md: type/title/description/timestamp/layer +
descriptions factuais (rich abstracts). Apenas .md tracked; corpos intactos.
Parte da aplicacao OKF a /Dados/Dev (28-06-2026).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Bug: parse_frontmatter aceitava qualquer bloco ---...--- inicial como frontmatter.
Ficheiros que comecam com --- como regua/separador (ex: MEMORY.md seguido de
## heading) tinham o corpo tratado como frontmatter, e o ramo 'tem frontmatter'
injectava campos OKF la dentro -> YAML partido (5 casos no run do Cloud).
Fix: _looks_like_yaml_mapping() valida via PyYAML (isinstance dict) com fallback
heuristico (1a linha = chave, sem heading markdown no topo). Tambem: report_path
passou a escrever no dir do script (era path Hub hardcoded inexistente).
Validado: caso-bug + regressao (com/sem frontmatter) -> 0 erros, YAML valido.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- bizin_scraper_final.py: scraper híbrido curl_cffi + undetected-chromedriver
com suporte a distritos e categorias, escrita segura (fsync) e enriquecimento externo
- monitor_scraper.sh: watchdog que reinicia o processo automaticamente em crash
- IMPLEMENTADO.md + README.md: actualizados para reflectir estado Abril 2026
- GEMINI.md: instruções técnicas de automação
- test_curl.py, test_curl_clean.py, test_playwright.py: scripts de teste/diagnóstico
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Verificação de integridade ao conectar (PRAGMA integrity_check)
- Validação de esquema completo (4 tabelas, todas as colunas)
- Migração automática de colunas em falta
- Tabela translation_backups para guardar originais antes de traduzir
- CLI --verify-db e --restore-backup
- WAL mode para melhor concorrência
Tarefa #419, Discussão #33, Projecto #65