# TODO concluído — 2026-09-10 Itens já fechados, tirados do `tasks/TODO.md` ativo pra não poluir. Ver `tasks/PLANO.md` pros achados permanentes (Cloudflare bloqueando bitstream, multi-bitstream, padrão de sequência de thumbnail etc.) — isso aqui é só o histórico de execução. - [x] **Re-exportar `brasiliana-catalogo.jsonl`** — feito às 10:46, 13.058 itens, 119 com `all_preservation_urls` confirmados no arquivo. - [x] Reiniciar `subidor.py` com o catálogo atualizado (PID 3171) — confirmado processando. - [x] **Fase 4 (legado objdigital)**: não era bloqueio Cloudflare — o domínio só responde em HTTPS (HTTP puro tem a porta resetada). Corrigido em `baixador.py` (força https no `legacy_url`). Rodando local (PID 14570, sem navegador, curl direto funciona) — 2.707 itens com `legacy_url`. - [x] **34 itens que falharam no reparo multi-bitstream**: 33/34 corrigidos com reparo v3 (nome real do arquivo via `` da miniatura, tira o `.jpg` duplicado, busca por `/bitstream/handle/PREFIX/h/{nome real}` — necessário porque esses itens não tinham `` no wrapper e a sequência não era contígua a partir de 1). Extras disparados (`BAIXA_EXTRA`, 63 imagens novas). Catálogo re-exportado (152 itens com `all_preservation_urls` confirmados) e `subidor.py` reiniciado. - **1 exceção sem conserto**: handle `20.500.12156.1/7523` ("Vista Aérea de Cabo Frio") — `HTTP 500` do próprio servidor da BN ao buscar os bitstreams, não é problema de nome/padrão. Provável arquivo corrompido/quebrado do lado deles. Documentado no MANIFEST final como exceção conhecida. - **Total: 152/154 itens sem imagem original corrigidos** (152 + o falso-positivo `.../1` + o `7523` = 154). - [x] **Reorganização de pastas** (feita por outra sessão em paralelo): scripts/estado → `pipeline/`, visualizações → `web/`, `exemplo-item/` → `examples/`, `censo.py` → `archive/`. `subidor.py` morreu no meio da troca (não estava com FD aberto que sobrevivesse ao rename como o `baixador.py` teve) — reiniciado do novo caminho (PID 28923), backlog de ~2.963 arquivos em `~/Downloads` escoou normalmente depois. - [x] **Atualizar `PLANO.md`** com os achados desta sessão (2.6-2.9): Cloudflare bloqueia bitstream via curl também, estratégia virou "tudo via navegador", multi-bitstream (115 itens), padrão de sequência do thumbnail, objdigital só em HTTPS.