ZeideI survived only to tell
Browse the Archives

Diário de implementação — v3 (Memorial · Mapa · Arquivo · Pessoas · Não-sabemos · Guia · Sobre)

Diário de implementação — v3 (Memorial · Mapa · Arquivo · Pessoas · Não-sabemos · Guia · Sobre)

This notebook is in Portuguese, as written during the research. Translation follows in stages, after the first published version.

File
site/docs/15-diario-v3.md
Updated
2026-09-02
Terms of use
Written by the family with AI assistance, August–September 2026. The site's source of truth.

Continuação de 13/14. Contratos executados: W4–W9 (06) · 02 §4 (telas do Memorial) · 04 (A1–A12) · decisão 23 (Mapa) · decisão 32 (B6 no guia, B7 ics) · decisão 33 (parallax, waveform-ornamento) · decisão 35 (P1 prólogo, P2 som da fita, P3.1 fuga, P3.2 dez trens, P6 tese) · decisões 36–37. Entregue e verificado em 01/09/2026. 21 páginas + calendario.ics.

O que o v3 entregou#

  • Memorial (/memorial/): 14 telas em sala escura com scroll-snap, os 12 clipes de voz aprovados (A01–A12, −16 LUFS, extraídos do MP4 com fades), chip que vira barra de progresso, citação que acende quando toca, telas 7–8 sóbrias com 1s de silêncio antes do áudio, parallax scroll-driven (desligado nas sóbrias), a forma de onda do trecho [72:21] como ornamento da abertura (interpolada a 48 colunas), o leque tipográfico 1→3→7→23, os dots de progresso, "pular para a Jornada" sempre visível e o som da fita (room tone da própria gravação — a janela mais silenciosa achada VIA waveform em t=7578s — opt-in, −45 LUFS).
  • Sequência final das telas (curadoria dentro do rascunho aprovado do 02, registrada): abertura A1 · foto-1938 · recado A2 · despedida A3 · trem A4 · costura A6 · Majdanek A7 · carroça A8 · sozinho A9 · ficha DP · Paris A10 · Groix→Clara · quinto milagre A11 · final A12. Nuremberg saiu (sem áudio aprovado); A5 (Tashkent) vive na Jornada como o 04 já previa.
  • Prólogo (12 §P1): primeira visita, foto emerge do escuro → seis nomes → cinco esmaecem, Mojsie fica → título. Pulável a qualquer toque; #abertura no Sobre repete; reduced-motion = versão estática; nunca bloqueia revisitas (localStorage com try/catch).
  • Mapa (/mapa/): a fuga de 1939 esquemática (rota que se desenha com o scroll, 7 paradas com timestamp clicável → transcrição) · os dez trens (leque sóbrio Kalisz→9 destinos, Lublin destacado com a fórmula de Majdanek, datas só onde documentadas) · os três mapas da própria família (slides 5/6/7).
  • Arquivo (/arquivo/): os 19 D## do catálogo com ficha e proveniência; 14 com scan; painel com z-cw nos que tocam no destino (decisão 21); "a voz dele" linkada ao minuto.
  • Pessoas (/pessoas/): 3 grupos, 14 cartões; brotos nos nomes recuperados; zero dados de vivos (decisão 18) — a descendência é um cartão coletivo apontando para a futura área da família.
  • Não sabemos (/nao-sabemos/): 8 cartões-pergunta com grau, estado da busca e "como ajudar" + contato. (A posição 3 da foto saiu da lista — resolvida, decisão 37.)
  • Guia (/guia/): os 8 passos do 05 em texto final PT+EN, com armadilha e exemplo real por passo, fechando com o texto-manifesto. (Checklist PDF e modelos de e-mail: pendência de produção listada no 05.)
  • Sobre (/sobre/): o método (verbatim, [?], graus, fórmula), a tese "construído como um arquivo" (P6), créditos e direitos das fontes, colofão com o sha256 do verbatim, link do calendário e replay da abertura.
  • calendario.ics (B7): 5 datas anuais fixas + 50 yahrzeits (20 Tishrei, 2026–2075) calculados por um calendário hebraico próprio (lib/hebreu.mjs, zero deps), validado no build contra 3 âncoras de Rosh Hashaná + a âncora do projeto (01/10/2026) — o build falha se o calendário errar. "Neste dia" na home (6 datas).
  • Nav completa (9 seções) com hamburger full-screen no mobile; busca global agora indexa também Arquivo, Pessoas e Não-sabemos (grupo "Nas seções").
  • Verificação nova no build: nenhum emoji em nenhuma das 21 páginas (decisão 36, regex de ranges Unicode) — pegou até os "" tipográficos, promovidos a ícones SVG.

Bugs achados e corrigidos nos testes#

BugCausaCorreção
loudnorm rejeitou TP=-20 no room tonelimite do filtro é TP≥-9I=-45:TP=-9
Foto do prólogo esmagada (560×1233)CSS width sem height:auto — o atributo height venceuglobal img { max-width:100%; height:auto }
Menu mobile preso em 64pxbackdrop-filter do header cria containing block para position:fixed — o overlay ficou confinado ao headerheader mobile sólido, sem blur
Waveform da abertura com 6 barras22s ÷ 4,1s/pico do waveform.jsonreamostragem com interpolação linear (48 colunas)
Rótulo de Białystok cortado na fugaponto a x=870 com texto à direitatext-anchor:end quando x>780
Ícones de fechar "" reprovadoso verificador anti-emoji é estrito (U+2715)ícone x na lib (mais consistente)

Verificação final (ritual D-F — o que cabe à máquina)#

  • Memorial: navegação por cenas (snap + ↑/↓), áudio real tocando (clique verificado na tela 7 com o silêncio de 1s; um clipe pausa o outro), progresso, EN.
  • Prólogo completo assistido (foto→nomes→título) e pulável; replay por #abertura.
  • Mapa: rota da fuga desenhando com o scroll; timestamps → transcrição; dez trens com Lublin destacado; os 3 mapas.
  • Arquivo: grid, painel deep-link (#d-D17), z-cw "mostrar".
  • Pessoas: grupos, painel deep-link (#p-frania), brotos, links D##→Arquivo e [mm:ss]→vídeo.
  • Não-sabemos 8 cartões · Guia 8 passos · Sobre com ics+colofão · ics com 55 VEVENTs.
  • Burger mobile full-screen; claro/escuro; EN em todas (slugs traduzidos: /en/map/ etc.).
  • Os 3 fluxos sagrados: home→voz dele (porta SENTIR→Memorial→chip: 3 cliques) · "Majdanek" na busca global → resultado direto · documento no celular (grid→painel).
  • Teste com a família real — FEITO em 02/09/2026, tudo ok (Flavio). Era: ação do Flavio antes do ar, como manda o 10 §D-F.

Pendências conscientes (pós-v3 / v4)#

Área da família (Basic Auth: árvore com vivos, fotos recentes, B10 interativa) · checklist PDF e modelos de e-mail do guia · legendas EN do vídeo + transcrição EN (decisão 22, por fitas) · OG por entidade · AVIF/WebP (sharp) · Lighthouse CI no deploy · zeide-offline.zip (build BASE_URL relativo) · P7 submissões a prêmios (após o teste com a família e o deploy).

01/09 · Ajustes pós-entrega (decisão 38)#

  • Memorial: som automático por tela (voz → onde não há, room tone); botão "som da fita" removido; chip = pausar/repetir; destravamento no primeiro gesto (autoplay policy). A detecção de cena ativa trocou de IntersectionObserver para cálculo por scrollTop (determinístico com snap mandatory) + rede de 500ms — IO/scroll-events também congelam em painel oculto (mesmo aprendizado de ambiente do diário 14). Verificado: cena 1 voz → cena 2 fita → cena 3 voz → cena 7 sober com silêncio.
  • Jornada: nível 2 sempre visível, sem pill e sem filtros (legenda estática); rótulos maiores; linhas por proximidade espacial calculadas no build (a alternância por ordem de DOM colidia Frania×Beitar).

01/09 · Segunda rodada de ajustes do Flavio#

  1. O Mapa agora tem mapa: a cena da fuga trocou o traçado abstrato por geografia real — projeção equiretangular com as cidades em posições verdadeiras (Kalisz, Varsóvia, Siedlce, Białystok + contexto), o contorno da Polônia de 1921–39 e a linha de demarcação germano-soviética (ambos declarados como aproximados na legenda — honestidade cartográfica), zonas de ocupação nomeadas, e a rota com o loop real da volta a Kalisz. Bug pego no caminho: truncar DEPOIS de escapar HTML cortava entidades no meio ("&…") — agora corta antes.
  2. Glossário entregue (B5, estava faltando — apontado pelo Flavio): página /glossario/ (EN /en/glossary/) com 25 termos curados (iídiche/hebraico/polonês/arquivos), 11 ligados ao minuto da entrevista; marcação automática z-term na transcrição (78 ocorrências, pontilhado → âncora do termo), feita fora das tags para não tocar no HTML do verbatim; termos ambíguos (DP, Governo Geral) fora da auto-marcação por segurança. No rodapé de todas as páginas e na busca global (que ganhou o grupo "Nas seções" — e a correção de um crash latente no acumulador).
  3. Guia mais completo: 6 prompts de exemplo prontos para copiar (dossiê inicial, transcrição com regras, linha do tempo com fontes, variantes de grafia + leitura de ficha polonesa, advogado-do-diabo contra homônimos, e-mail a arquivo) com botão copiar; checklist de uma página (10 itens, feita para imprimir) e a nota de ferramentas (categorias de propósito, como o 05 pedia).

01/09 · Terceira rodada (decisão 39)#

Mapa retirado (dados preservados em data/mapa.mjs); header enxuto em 5 seções; Sobre/Não sabemos/Guia ("Guia: Faça pela sua família") no rodapé; Jornada sem rodapé — 100dvh puros, sem scroll vertical competindo com o palco.

01/09 · Jornada: slide de abertura#

A barra de legenda saiu; no lugar, um capítulo-slide de abertura no próprio palco (espelho do epílogo): h1 "A Jornada", 1914–2000, lead, a legenda da taxonomia em coluna e a seta-convite. O palco ganhou a altura da barra. No mobile, o slide abre a coluna (seta e dica de teclado ocultas). O capítulo intro é sintético (timeline.mjs, flag intro) — régua e fio começam em Kalisz; o h2 do cabeçalho do epílogo virou sr-only (o h3 do painel já titula).

01/09 · Memorial guiado (4ª rodada do Flavio)#

  • Portão de entrada: um slide-zero só com o Play circular, antes de qualquer texto — o clique destrava o autoplay (política dos browsers) e desliza para a abertura.
  • Auto-avanço: cenas com voz avançam 1,4s após o clipe terminar; cenas sem voz correm sobre o room tone e avançam pelo tempo de leitura (≈55ms/caractere, 6,5–15s). Pausar o chip segura a cena; navegação manual re-entra no fluxo. Sem auto-avanço sob reduced-motion.
  • Barra de progresso por cena (fixa na base, 3px âmbar): voz = progresso do áudio; sem voz = cronômetro da leitura (transição CSS). Portão = zerada.
  • Navegação entre cenas trocou scrollIntoView por scrollTo calculado + garantia (smooth era engolido pelo snap mandatory/aba oculta — mesmo remédio do resto do site).
  • Data corrigida pela família: a foto do último slide é de 2 de janeiro de 1989 (não "anos 1990") — corrigida no Memorial, no evento da Jornada, em dados-biograficos, no README das fotos e no briefing (nome do arquivo mantido pelo histórico).
  • Verificado ao vivo: portão → Play → abertura com A01 → avanço automático até a cena 3.

01/09 · Memorial: controles finais#

"Ouvir na voz dele" saiu (obsoleto com o autoplay) — o chip virou um controle circular compacto (52px) só de ícone play/pausa, com "Ns · [mm:ss]" ao lado; o Play do portão perdeu a borda e cresceu para 132px (só o traço âmbar do ícone).

01/09 · Memorial: passe de otimização#

  • Waveform-ornamento da abertura removida (pedido do Flavio) — a tela ficou só com a frase.
  • EN corrigido ao padrão da casa: as citações do Memorial mostravam só a tradução enquanto a voz fala português; agora PT + tradução marcada (como na Jornada, decisão 22).
  • Cache + pré-carga do próximo clipe (o fluxo guiado avança sem lacuna de rede).
  • Barra de progresso oculta no portão (nada tocando, nada a medir).
  • Guard de clientHeight=0 na sincronização (painel sem layout não decide nada — sem crash).