# MyCity.app v8.1.27 — Panorama adaptável e cards de categoria claros

12/10/2026. Ajustes visuais solicitados após a validação da v8.1.26.

- Números do Panorama reduzem progressivamente a fonte pelo comprimento do valor formatado, incluindo separador de milhar, para suportar valores maiores sem estourar os cards.
- Cards de categorias agora mostram apenas o título na parte superior e a quantidade em destaque; removidos os números sequenciais.
- Cache e URL do CSS do painel atualizados.

Validação: testes automatizados para escala de dois dígitos, valor acima de mil, hierarquia título/quantidade, ausência de sequência, analytics, geocoding, operações e apresentação.

---

# MyCity.app v8.1.26 — Correção do tamanho dos números do Panorama

12/10/2026. Correção pontual após o print de validação da v8.1.25.

- Corrigido o conflito de CSS que aplicava a fonte dos rótulos também ao número dentro do card, mantendo-o em tamanho pequeno. Agora apenas o rótulo direto recebe a regra tipográfica; o número herda o tamanho maior definido para o Panorama.
- A dimensão dos cards não foi alterada. Os demais gráficos permanecem inalterados.
- Cache do painel e URL versionada do CSS atualizados para v8.1.26.

Validação: scripts automatizados de analytics, geocoder, geocoding, localização, operações, regressões e apresentação.

---

# MyCity.app v8.1.25 — Panorama municipal com números maiores

12/10/2026. Ajuste pontual após a conferência visual da v8.1.24.

- Aumentados somente os números dos cinco cards do Panorama municipal, com escalas próprias para telão, notebook, janela baixa e celular.
- Mantidos sem alteração os tamanhos das demais visualizações, incluindo Principais categorias.
- Atualizados o cache do painel e a URL versionada de `painel.css`.
- Nenhum dado, cálculo, fluxo ou conteúdo foi alterado.

Validação: testes automatizados de analytics, geocoder, geocoding, localização, operações, regressões e apresentação. Verificação visual em browser não foi possível neste ambiente; o Chromium não está instalado.

---

# MyCity.app v8.1.24 — Ajustes finais do Modo Telão

12/10/2026. Correções pontuais para leitura dos indicadores e apresentação sem rolagem.

- Contagem dos KPIs do Panorama atualizada com menos repinturas e formatação numérica tabular para eliminar rastros/duplicação visual em valores como 11 e 14. Números ampliados apenas nessa tela.
- Removido o logo da seção de encerramento institucional, conforme solicitado.
- Janela de configuração do Modo Telão reorganizada em duas colunas compactas para caber no viewport sem rolagem.
- Slides do Modo Telão deixam de rolar; a tabela operacional e os demais blocos usam espaçamento adaptado à altura disponível para manter a informação visível.
- Cache do PWA e URLs de CSS/JavaScript versionados como v8.1.24.
- Nenhum módulo, integração, fluxo ou cálculo foi alterado.

Validação: scripts de analytics, geocoder, geocoding, location-trigger, operations, presentation-regressions e presentation. A captura visual automatizada não está disponível no ambiente; validar Preview Cloudflare nos tamanhos 1366×768 e 1920×1080 antes de promover.

---

# MyCity.app v8.1.23 — Identidade e Modo Telão

12/10/2026. Correção pontual guiada pelos três prints mais recentes, sem mudança de dados ou fluxos.

- Restaurado o degradê azul-marinho aprovado no print de referência, mantendo a profundidade azul sem fundo preto ou azul excessivamente vivo.
- Números do Panorama municipal ampliados com escala explícita por resolução; o CSS do painel e da apresentação recebe URL versionada para evitar cache antigo.
- Cabeçalhos usam novamente o lockup escuro anterior, com “My” branco e azul mais intenso. O fechamento do site usa o lockup azul sobre fundo claro.
- Cache do Service Worker avançado para v8.1.23.
- Nenhuma lógica, métrica, funcionalidade ou fluxo foi alterado.
- Testes de apresentação, regressões, analytics, geocodificação e operações passaram. O teste do dashboard via servidor local e a inspeção em navegador continuam bloqueados pelo sandbox (`listen EPERM`; Chromium indisponível).

---

# MyCity.app v8.1.22 — Primeira rodada visual

12/10/2026. Primeira tentativa de ajuste dos logos e do Modo Telão após a revisão da v8.1.21. O retorno visual apontou que o azul do fundo ficou vivo demais, as variantes de logo estavam invertidas e os valores ainda não estavam legíveis. As correções foram refeitas na v8.1.23; essa versão não deve ser usada como pacote final.

---

# MyCity.app v8.1.21 — Visual Intelligence 2.1

12/10/2026. Refinamento visual do Modo Telão e aplicação dos novos arquivos oficiais de marca, sobre a base v8.1.20. Nenhuma operação, cálculo ou dado foi alterado.

- As seis telas do Modo Telão receberam escala tipográfica maior para leitura em TVs e projetores, com regras específicas para 1366×768/1920×1080, altura compacta e telas 2.5K/4K. Foram ampliados valores, títulos, rótulos, linhas de ranking, células de status, datas, amostras, estados vazios e controles.
- A direção visual recebeu fundo técnico discreto, maior profundidade de cartões, melhor separação de rankings e acabamento mais consistente para barras e colunas. As seis telas mantêm composições próprias.
- Mantido sem alteração o ciclo 10% revelação, 80% leitura e 10% transição nos intervalos de 10/15/20/30/60 segundos. Pausa, navegação, configuração e saída seguem cancelando estados anteriores; movimento reduzido continua respeitado.
- Os dois lockups enviados foram copiados sem edição para `assets/brand/`: claro para o site claro e escuro para o encerramento, abertura do app, boas-vindas e Modo Telão. O favicon e o primeiro ícone do manifesto recebem o lockup escuro integral dentro de uma moldura quadrada sem distorção; os PNGs existentes continuam como fallback de compatibilidade.
- Título principal padronizado como “MyCity.app - Gestão Inteligente”; app cidadão, central administrativa, guia, privacidade e modo telão mantêm subtítulos contextuais. Manifesto e cache do Service Worker foram atualizados para v8.1.21, incluindo ambos os logos.
- Testes de lógica da apresentação, regressões operacionais, analytics, geocodificação, sintaxe e manifesto foram executados. O teste de painel com Playwright e a inspeção visual do navegador não puderam ser executados: o sandbox bloqueou `listen` local (`EPERM`) e não há binário Chromium instalado.
- Pacote estático para Cloudflare Pages Direct Upload; não foi publicado e DNS não foi alterado. Evidências visuais devem ser conferidas no Preview do Cloudflare nas quatro resoluções solicitadas.

# MyCity.app v8.1.20 — Visual Intelligence 2.0

12/10/2026. Refinamento do Modo Telão baseado na v8.1.19, sem alteração de arquitetura, dados, métricas ou fluxo dos chamados.

- Acabamento visual premium aplicado às seis telas: melhor escala de tipografia, profundidade moderada, hierarquia por tela e revelação escalonada de indicadores.
- Números inteiros contam até o valor real; barras de backlog e colunas temporais crescem até suas proporções corretas. A matriz de status mantém os status reais e não transforma atraso em status.
- Ciclo controlado pelo intervalo completo: 10% revelação, 80% leitura, 10% transição. Em 20 segundos, corresponde a 2 + 16 + 2 segundos; os intervalos de 10, 15, 30 e 60 s seguem a mesma proporção. A próxima tela entra na fronteira temporal configurada, sem acrescentar duração.
- Pausa, retomada, navegação manual, reinício, ajuste programático e saída cancelam RAF e timers antigos; há somente um timeout ativo. A retomada durante a saída considera apenas o tempo residual.
- Preferência para desligar animações e suporte a `prefers-reduced-motion`; nessas condições, números e gráficos aparecem diretamente no estado final.
- Feedback discreto em controles, escala dedicada a telas 2.5K/4K e Service Worker com cache `mycity-app-v8-1-20-inteligencia-visual`.
- Testes e limitações em `docs/QA-8.1.20.md`; roteiro e pacote de publicação atualizados. Nenhuma publicação Cloudflare foi feita.

---

# MyCity.app v8.1.19 — Modo Telão inteligente

11/10/2026. Evolução da aba analítica da v8.1.18 para apresentação em TVs, projetores e salas de gestão. Nova experiência isolada; a aba “Gráficos e análises” tradicional e a tela cheia geral do dashboard são preservadas.

- Botão “Modo Telão” abre configuração própria com rotação ativada por padrão e intervalo inicial de 20 segundos; opções: 10, 15, 20, 30 ou 60 segundos.
- Seis telas: panorama municipal, backlog por secretaria, situação por status e secretaria, categorias mais frequentes, eficiência/prazos e evolução dos últimos sete dias quando houver amostra temporal válida.
- É possível ativar/desativar cada tela, reorganizar a sequência, pausar, continuar, ir à anterior/próxima, reiniciar o ciclo e sair. As preferências ficam salvas localmente.
- A rotação volta ao início após a última tela. Um único `setTimeout` é usado por vez; navegação manual reinicia a contagem, pausa preserva o tempo restante e saída limpa o temporizador.
- Tela cheia pela API do navegador após ação explícita; se indisponível/bloqueada, a apresentação usa painel imersivo na própria página. Esc, controles visíveis e teclas de navegação oferecem saída. O botão de tela cheia geral não é alterado.
- Usa exatamente o recorte atual de secretaria, status e categoria, dados e métricas existentes; mudanças locais são refletidas na próxima tela. A interface declara “Demonstração — dados fictícios”.
- Layout escuro próprio, tipografia fluida para projeção, transições leves e respeito a `prefers-reduced-motion`. Não há mapa nesta rotação, dependência/CDN ou integração externa.
- `presentation.js` separa renderização, preferências e estado/temporizadores. O Service Worker tem cache atualizado e inclui o novo módulo.
- Testes, estudo visual e limites em `docs/QA-8.1.19.md`; roteiro atualizado em `demo/guia.html`. Não houve publicação no Cloudflare.

---

# MyCity.app v8.1.18 — Gráficos para leitura em telão

12/10/2026. Revisão visual da aba “Gráficos e análises” após feedback de que as barras e os rótulos não eram compreendidos de relance em uma tela de apresentação. Foram mantidos filtros, cálculos, cores de status e regras analíticas da v8.1.17.

- Indicadores de SLA ampliados e com hierarquia visual mais forte.
- Backlog mantém barras horizontais, agora mais espessas, com rótulos e totais maiores para comparação imediata.
- Volume por categoria passa a cartões ranqueados com número em destaque, evitando rótulos minúsculos ao lado de muitas barras.
- Status por secretaria passa de faixas empilhadas pequenas para uma matriz de leitura: secretarias nas linhas, status nas colunas e contagens alinhadas nas células; atraso continua sendo condição de SLA, não status.
- Evolução diária usa colunas mais largas e altas, com números e datas mais legíveis.
- Responsividade mantém os gráficos empilhados em telas menores; a matriz pode ser percorrida horizontalmente no celular.
- Implementação local em CSS/HTML/SVG já existente, sem CDN, biblioteca, alteração de modelo ou criação de dados. Filtros atuais continuam alimentando os mesmos valores.
- Racional da revisão, testes e limitações em `docs/QA-8.1.18.md`. Não houve publicação no Cloudflare.

---

# MyCity.app v8.1.17 — Gráficos e análises no dashboard administrativo

11/10/2026. Nova aba independente para converter os registros e indicadores já existentes em comparações visuais. Nenhum serviço externo ou biblioteca foi adicionado; os gráficos são HTML/CSS local e usam os registros locais demonstrativos já carregados no painel.

- Nova aba “Gráficos e análises” junto às visões administrativas existentes.
- Resumo visual de tempo médio até triagem, início e conclusão, além do percentual concluído no prazo, com amostras explícitas. Os cálculos são reaproveitados de `MyCityOps.metrics`; SLA e definições existentes não foram alterados.
- Barras horizontais de backlog aberto por secretaria e volume por categoria, ordenadas de maior para menor.
- Barras empilhadas de status por secretaria. A lista usa os status reais do sistema; “Atrasados” continua sendo condição derivada de SLA, não um status.
- Evolução diária de chamados criados/concluídos nos últimos sete dias somente quando o recorte contém pelo menos três datas de criação válidas dentro da janela de sete dias, distribuídas por dois ou mais dias. Com amostra menor, o gráfico temporal é omitido sem inventar dados.
- Todos os blocos se atualizam com secretaria, status e categoria. Recortes vazios exibem “Não há dados neste recorte”; os números permanecem derivados de `reports` locais e a interface informa que a demonstração não é um painel central em tempo real.
- CSS e JS locais, sem CDN, dependência nova, API ou mudança no modelo de dados. Service Worker versionado para v8.1.17; navegação e dados existentes preservados.
- Validação e limitações documentadas em `docs/QA-8.1.17.md`. Nenhuma implantação no Cloudflare foi feita nesta entrega.

---

# MyCity.app v8.1.16 — Mapa previsível, abertura rápida e listas organizadas

11/10/2026. Auditoria da versão recebida v8.1.15, sem publicação automática. Correções pontuais sobre a base anexada.

- Mapa da Central Operacional: `scrollWheelZoom` desligado; zoom por controles +/− preservado; duplo clique não altera zoom; faixa de zoom limitada a 9–18. Arraste e zoom por gesto ficam desativados inicialmente em ponteiro de toque. O botão “Mover mapa” os ativa quando a pessoa quiser, deixando a rolagem da página natural por padrão.
- Enquadramento: os marcadores são enquadrados uma vez ao abrir; depois, seleção de chamado, atividade e filtros não fazem o mapa saltar. “Visão inicial” retorna ao enquadramento salvo na abertura; se não houver marcadores, retorna ao centro demonstrativo de Gravataí. Redimensionar/tela cheia continua usando `invalidateSize` sem pan.
- Abertura: a animação já existia desde a v8.1.13/v8.1.14. Agora a abertura completa do navegador ocorre no primeiro acesso e as seguintes são curtas; PWA instalado mantém a transição curta em respeito ao splash do sistema. `prefers-reduced-motion` reduz o tempo a quase zero. A preferência é local e removida pela ação “Apagar dados locais”.
- Listas: categorias de solicitação, serviços/categorias de serviços, secretarias e equipes ordenadas em pt-BR. Filtros “Todas as secretarias” e “Todas as categorias” seguem no início; status e etapas mantêm ordem operacional. A grade do carrossel principal continua na ordem de prioridade já definida.
- Privacidade: aviso da tela e política agora descrevem Worker/Photon/Nominatim, não apenas Photon. Documento atualizado para a versão corrente.
- Histórico, guia, status do vídeo, cache PWA e referências CSS/JS atualizados para v8.1.16. O Service Worker usa `skipWaiting`, remove caches antigos `mycity-app-*` na ativação e usa rede primeiro, com fallback local; os cabeçalhos HTML/JS/CSS continuam `no-cache`.
- Diagnóstico: em v8.1.15 o splash estava presente, mas repetia espera longa no navegador; o mapa recebia zoom da roda, reenquadrava após filtros e movia o centro ao navegar por solicitações. O filtro de categorias já estava alfabético; secretarias/equipes e a grade de categorias não.
- Limites: app/painel permanecem demonstração local sem login real, backend, sincronização entre aparelhos ou armazenamento protegido. Mapa e geocodificação dependem de fornecedores externos. Não validado em aparelhos reais nem no domínio de produção nesta sessão.

---

# MyCity.app v8.1.15 — Mapa em destaque e filtros revisados

- Dashboard: mapa em largura total no topo; detalhes e atividade recente na linha seguinte; andamento abaixo.
- Layout validado em 1366×768, 1024×768 e 390×844, sem rolagem horizontal. Detalhes e atividade têm rolagem interna no notebook; detalhes fluem no celular.
- Leaflet: invalidateSize após redimensionamento, tela cheia e retorno à visão geral, com requestAnimationFrame e ResizeObserver.
- Status inclui Atrasados: recorte calculado pelo SLA existente, excluindo concluídos e cancelados; nenhum estado ou prazo é alterado.
- Categorias: dez opções do aplicativo e categorias adicionais dos registros, ordenadas em pt-BR; Todas as categorias permanece primeiro. Categorias sem registros produzem recorte vazio.
- Atividade recente segue os filtros do mapa; sua seleção preserva o recorte ativo. Seleção inválida após atualização é recuperada.
- Indicadores e andamento usam secretaria/status/categoria; atalhos do mapa refinam mapa, detalhes e atividade.
- Cache PWA atualizado para v8.1.15, preservando dados locais.
- Validação: cinco suítes existentes, sintaxe JavaScript e teste de navegador do dashboard passaram. Nenhuma publicação remota realizada.

---

# MyCity.app v8.1.14 — Abertura com um único logo

A v8.1.13 ainda mostrava dois logos em sequência (abertura do Android + splash do app). Agora só um aparece:
- **App instalado (PWA):** o Android já exibe o logo na abertura, então o splash do app deixa de repetir o logo, o anel e os textos. Ele vira uma cobertura azul `#071f4d` (igual à abertura) que some em fade suave de ~0,55 s, a partir de ~140 ms, direto na tela do app. Detecção por `display-mode: standalone/fullscreen/minimal-ui` e `navigator.standalone` (iOS), aplicada no `<head>` antes da primeira pintura (classe `is-standalone`).
- **Navegador comum:** não existe abertura do Android; o splash com logo aparece uma vez, mais curto (some em ~850 ms, antes 1050 ms).
- Medido em Chromium: app instalado começa só azul, dissolve de ~220 a ~800 ms; navegador dissolve de ~920 a ~1500 ms. Navegação (ida e volta) sem regressão; testes automatizados passam. Não validado em Android real.
- Versão no rodapé/guia: 8.1.14. Cache do PWA: `mycity-app-v8-1-14-abertura-suave`.

---

# MyCity.app v8.1.13 — Abertura única e identificação do site

**Abertura do app.** A primeira imagem "quadrada" era a tela de abertura que o próprio Android monta a partir do manifesto (ícone `icon-512.png`: quadrado escuro com recorte reto, sobre `#071f4d`), seguida do splash do app. Uma PWA não consegue remover essa primeira etapa, mas controla o que ela mostra; agora as duas se encaixam:
- Novos ícones do manifesto: `icon-splash-192/512.png` (`any`: o mesmo cartão arredondado do splash, fundo transparente) e `icon-maskable-192/512.png` (`maskable`: ícone de tela inicial com sangria e logo dentro da zona segura). `icon-192/512.png` seguem no pacote (apple-touch-icon).
- Splash do app: logo parado e centralizado exatamente no centro da tela (antes ficava 60 px acima, enquanto o anel e os círculos já ficavam no centro); sem o efeito de entrar pequeno e desfocado; fundo começa sólido `#071f4d`, igual à abertura do Android, e o brilho entra em fade; anel orbital centralizado e um pouco maior (204 px) para emoldurar o cartão. Nome, slogan e barra continuam com a animação moderna.
- Limites: a abertura do Android desenha o ícone em tamanho próprio (cerca de 128 dp), o cartão do app tem 170 px, então pode haver uma pequena diferença de tamanho. Instalações existentes só pegam os novos ícones quando o Chrome atualiza o WebAPK; para ver na hora, remova o app da tela inicial e instale de novo. Não validado em Android real.

**Identificação no Nominatim.** `_worker.js` agora envia `User-Agent: MyCity.app/8.1.13 (+https://mycity.app.br/)` e `Referer: https://mycity.app.br/` ao Photon e ao Nominatim (política do Nominatim). Teste do Worker valida os dois cabeçalhos.

- Versão no rodapé da Início e no guia: 8.1.13. Cache do PWA: `mycity-app-v8-1-13-abertura`.

---

# MyCity.app v8.1.12 — Versão visível e entrada sem quadro em branco

Análise do vídeo `erro.mp4` (gravado em Android, 576×1280): ao voltar do relato para a Início, a tela aparece com fade, fica totalmente em branco ~250 ms depois e aparece de novo (pares de quadros em branco aos 4,43/4,67 s, 7,03/7,28 s e 22,42/22,67 s). É exatamente o comportamento do código de navegação da v8.1.7/v8.1.8 (remoção da classe `back-enter` aos 270 ms reiniciando a animação). Reproduzido em Chromium com o mesmo caminho (Início → Buraco → relato → voltar): código antigo cai a opacidade 0 uma segunda vez após visível; v8.1.9+ nunca cai. O texto da dica de endereço no vídeo indica que o aparelho executava a v8.1.8; as correções de navegação (v8.1.9, v8.1.10) e estabilidade (v8.1.11) não estavam em uso nesse teste.

- **Versão visível:** o rodapé da Início dizia "Demonstração 8.1.7" (texto fixo). Agora mostra a versão real (8.1.12), para conferir rapidamente qual build está rodando. O título do guia também foi atualizado.
- **Entrar numa tela:** a animação de entrada partia de opacidade 0 (1–2 quadros em branco no vídeo ao abrir menus/relato). Agora é só um leve deslize, sem transparência.
- Cache do PWA: `mycity-app-v8-1-12-versao-visivel`.
- Medido com CPU 4×: opacidade mínima 1,00 na ida e na volta em Serviços, Perfil, Emergência e relato. Não validado em Android real.

---

# MyCity.app v8.1.11 — Estabilidade visual ao voltar em celular

A v8.1.10 não piscava no teste em desktop, mas o piscar continuou em aparelho real. Foram atacadas as duas causas prováveis que só aparecem em celular:

- **Logo pesado:** o PNG de 1504×870 (820 KB), exibido a ~96×56 px, era decodificado de novo ao reexibir a Home. Com CPU limitada a 6× (perfil de celular), a decodificação leva ~129 ms contra ~35 ms do novo `app_logo-ui.png` (510×295). Os três usos no `index.html` foram trocados e usam `decoding="sync"`. O arquivo original foi mantido.
- **Desfoque (`backdrop-filter`) em barras fixas:** removido do cabeçalho fixo, da barra inferior, do rodapé do relato e da barra administrativa. O fundo já é 92–96% opaco, então o visual é praticamente o mesmo, e o desfoque é fonte conhecida de cintilação no Chrome/Android ao trocar de tela.
- Verificado: ao voltar não há requisição de rede nem recarregamento; o Service Worker não atualiza nada nesse momento. Com SW ativo e CPU 6×, os quadros após o BACK são idênticos à tela final (Início ← Serviços/Perfil/Emergência). Na v8.1.7 original, com SW ativo, o duplo piscar aparecia (diferenças 34 → 1 → 38).
- **Não reproduzido nem confirmado em Android real.** Cache do PWA: `mycity-app-v8-1-11-estabilidade`.

---

# MyCity.app v8.1.10 — Voltar sem piscar (complemento da v8.1.9)

A v8.1.9 removeu a segunda animação ao voltar, mas a tela ainda reaparecia por uma fade-in a partir de opacidade 0, o que continuava visível como piscada. Medição por capturas quadro a quadro: o primeiro quadro após o BACK diferia ~30 da tela final; agora ~0,1.

- Ao voltar (botão do Android ou seta do app) a tela aparece pronta, sem animação de opacidade (`.back-enter` sem animação).
- `history.scrollRestoration = 'manual'`: o navegador não restaura a rolagem da tela anterior por cima da tela exibida (o app já rola ao topo a cada troca).
- Navegar para frente mantém a animação de entrada.
- Cache do PWA: `mycity-app-v8-1-10-voltar`. Validado em Chromium com viewport de celular; não em Android real.

---

# MyCity.app v8.1.9 — Tela piscando ao voltar

Correção sobre a v8.1.8, restrita à navegação do app.

- **Piscada ao voltar (botão do Android ou seta do app):** a tela de destino entrava com a animação de "voltar" e, 270 ms depois, a classe `back-enter` era removida. O CSS usa animações diferentes para entrar e voltar, então a troca reiniciava a animação do zero (a opacidade ia a 1, caía a 0 e subia de novo). A classe agora permanece até a tela sair.
- **Histórico:** a seta "voltar" do app (ex.: `go-home`) empilhava uma entrada nova em vez de voltar. Isso fazia o botão voltar do Android passar por telas repetidas. Agora, quando o destino é a tela anterior do histórico, o app usa `history.back()`. Cada entrada guarda a tela anterior (`prev`).
- Cache do PWA atualizado (`mycity-app-v8-1-9-navegacao`).
- Validação em Chromium com viewport de celular: opacidade contínua após BACK, histórico sem crescimento com a seta e sequência de BACKs na ordem correta. Não validado em aparelho Android real; a mesma `popstate` é usada no Chrome/PWA.

---

# MyCity.app v8.1.8 — Campo de endereço e busca resiliente

Correção sobre a v8.1.7, restrita à etapa "Localização" do relato no app.

- **Status travado:** ao usar a localização, a re-aplicação interna do ponto no mapa sobrescrevia a mensagem com "buscando endereço" mesmo depois do endereço já estar preenchido (ou da busca ter falhado). O status agora só muda quando a busca realmente muda de estado.
- **Campo de endereço:** o textarea aparecia como uma caixa dentro de outra caixa; tocar no ícone ou na borda da caixa externa não abria o teclado. Agora é uma única caixa e o toque em qualquer ponto dela foca o campo.
- **Busca em cadeia:** rota do Worker (`/endereco/reverso`) → Photon direto do navegador → Nominatim direto do navegador. Cada fonte tem tempo limite próprio; se uma falha, demora ou não encontra endereço, passa para a próxima. Se todas falharem, o campo continua livre para digitar e o botão de localização volta a funcionar.
- **Worker:** tenta Photon e, se falhar ou vier vazio, Nominatim (resposta normalizada). Envia User-Agent identificado. **Antes de produção, troque o contato em `USER_AGENT` no `_worker.js`** (política do Nominatim).
- Texto do campo, página de privacidade e cache do PWA (`mycity-app-v8-1-8-endereco`) atualizados. A página de privacidade dizia que marcar no mapa não consulta endereço; já consultava desde a v8.1.3.
- Testes: `tests/geocoder-worker.cjs` e `tests/geocoding.cjs` ampliados (fallbacks, falha total, cancelamento). Validação em Chromium com viewport de celular, serviços simulados. **Não validado no domínio publicado nem em aparelhos reais.** Photon e Nominatim públicos são de uso justo, sem garantia de disponibilidade.

---

# MyCity.app v8.1.7 — Correções finais de apresentação

05/10/2026. Fechamento pontual baseado em auditoria da v8.1.6. Sem novos módulos, integrações, fluxos ou mudanças arquiteturais. A categoria oficial, identidade, prefixo MYC, rótulos demonstrativos e metadados já estavam alinhados; foram atualizadas as referências de cache CSS/JS do site e o identificador do cache do PWA para o HTML revisado. A Central Operacional carregou normalmente no Chrome desktop. Ver `docs/QA-8.1.7-FECHAMENTO.md` para escopo e limites dos testes.

## Base preservada

A pasta e o pacote v8.1.6 permanecem intactos como referência funcional. A numeração v8.1.2 já aparece no histórico de releases, por isso esta entrega mantém a sequência e usa v8.1.7.

---

# MyCity.app v8.1.6 — Vídeo novo e busca de endereço entre dispositivos

05/10/2026. Substituído o vídeo dentro do frame por gravação atual do app, convertida de 69 MB/120 fps para H.264 720×1504/30 fps (~3,5 MB) e com poster extraído da tela inicial. O endereço residencial, CEP, coordenadas e mapa reais do vídeo foram substituídos por endereço/mapa demonstrativos antes de integrar à apresentação pública. A rota de geocodificação saiu de `/api/reverse-address` para `/endereco/reverso`; limite de espera do Worker passou a 8,2s e o app aguarda até 9s, com mensagem após 4,5s. Photon retorna até cinco resultados para priorizar o logradouro. Rota, tratamento de erro, parâmetros de cache, vídeo e poster foram testados localmente. Ainda depende de publicação e validação real no domínio/aparelhos.

# MyCity.app v8.1.5 — Correção do erro 502 na busca de endereço

05/10/2026. A verificação da rota publicada encontrou 502. A busca foi simplificada: removido o uso direto de Cache API para leitura/escrita; cache usa opções do subrequest fetch aceitas pelo runtime Cloudflare. Erros da consulta agora retornam 503 JSON controlado e no-store, sem propagar exceção e apresentar erro genérico do Cloudflare. O restante das rotas segue para os assets Pages. Incluído teste de contrato com mocks; o comportamento após nova implantação ainda precisa de confirmação no domínio.

# MyCity.app v8.1.4 — Busca de endereço mais rápida via Cloudflare

05/10/2026. O app consulta `/api/reverse-address` no mesmo domínio. O `_worker.js` do Cloudflare valida coordenadas, encaminha somente a rota Photon necessária, usa cache de uma hora no subrequest e devolve resposta com cache-control. A consulta do cliente tem limite de 5 segundos; Photon recebe apenas um resultado para reduzir espera. O worker encaminha os demais caminhos aos assets estáticos. Testado com mocks de cache, Photon e assets. A consulta continua dependendo do Photon e não tem disponibilidade garantida.

# MyCity.app v8.1.3 — Endereço no mapa e contraste

05/10/2026. A busca reversa de endereço agora inicia tanto ao usar a localização atual quanto ao tocar no mapa ou arrastar o marcador. O endereço sugerido é atualizado quando o ponto muda; texto digitado pela pessoa é preservado. O status diferencia busca, endereço encontrado, referência aproximada e falha. O cache PWA foi versionado para atualizar a correção. Os chips claros da seção de fluxo ganharam texto escuro legível. O serviço público Photon pode ficar indisponível ou limitar consultas; endereço deve ser conferido.

# MyCity.app v8.1.2 — Correção da busca de endereço

05/10/2026. Corrigida a sugestão de endereço ao usar a localização atual. A busca consulta até cinco resultados do Photon num raio de 500 m, prioriza rua/número e aceita bairro/localidade como referência aproximada. Se o serviço não responder, mantém o ponto GPS e orienta a pessoa a conferir ou informar o endereço. A tela continua permitindo edição manual. Nenhum fluxo de chamado foi alterado. O serviço público Photon não garante disponibilidade e pode limitar uso.

# MyCity.app v8.1.1 — Alinhamento de posicionamento e apresentação

02/10/2026. Revisão editorial incremental sobre a v8.1; sem novas funcionalidades nem mudanças de arquitetura.

- Categoria atualizada para “Plataforma de operação de chamados municipais”.
- Problema e proposta de valor reposicionados para o pós-protocolo: responsabilidade, prazo, execução, evidência e retorno.
- Prefixo MYC no protocolo demonstrativo de exemplo; o gerador já emitia novos códigos MYC-DEMO. Identificadores antigos salvos no navegador permanecem intactos para preservar histórico e referências.
- Metadados do site, painel e manifesto alinhados ao posicionamento.
- Prefixo técnico antigo permanece apenas na rotina que remove caches obsoletos de versões anteriores; não aparece como marca na interface.
- Rótulo de perfil corrigido para “Dados locais • ambiente demonstrativo”; informações reais de conexão offline permanecem nos avisos técnicos.
- Página de atualizações recebe este registro; apresentação do estado atual clarificada sem seção redundante.

## Base funcional v8.1 — Operação municipal rastreável

29/09/2026. Evolução da v8.0 comercial existente. Os itens 1–71 foram integrados no mesmo produto; não há uma versão paralela.

## Novas funcionalidades locais

- Central Operacional com triagem, execução, atrasados, sem responsável, transferidos hoje, espera, concluídos hoje e possíveis relações.
- Atenção necessária com atraso, prazo próximo (até 6h), falta de responsável, múltiplas transferências, espera superior a 24h, proximidade e revisão do cidadão.
- Secretaria → equipe → responsável; transferência exige motivo e limpa atribuição anterior.
- OS vinculada ao chamado, com identificador, descrição, prioridade, prazos, início, conclusão e histórico.
- SLA em horas corridas, sem pausar durante espera. Médias com tamanho da amostra; sem dados suficientes, mostra “Sem dados”.
- Evidência de execução textual ou foto comprimida. Opção explícita de mostrar evidência ao cidadão.
- Conclusão exige OS, atribuição, início e evidência. Cancelamento exige motivo.
- Monitor do Cidadão: linguagem simples, área, previsão, última atualização, etapas, resultado e confirmação ou revisão.
- Avaliação opcional Ruim / Regular / Boa após resposta do cidadão.
- Operação Agora, eventos recentes clicáveis e filtros Agora (10min), Hoje, Atrasados, Em execução e Triagem.
- Comparação de mesma categoria a até 250m, em até 90 dias; alerta de possível relação, sem confirmar duplicidade e sem IA.
- Secretarias, equipes, backlog, categorias, região informada e tempos de atendimento.
- Atualização local por evento storage entre abas; leitura de segurança de localStorage a cada 5s e recálculo de tempo a cada minuto. Nenhum polling remoto.

## Site e correções

- Headline operacional, seis etapas, diferentes níveis de atuação, transparência, arquitetura conceitual de integrações e piloto de 90 dias.
- API/webhooks e Open311 apenas como roadmap técnico.
- Vídeo original com faststart, autoplay sem som condicionado ao navegador, controles nativos, pausa, reinício e tela atual. O observador usa o frame estável, não o vídeo oculto.
- Capturas de celular em proporção nativa e central atual. Corrigido corte causado por ampliação de 349% aplicada a imagem já recortada.
- Histórico de versões preservado, acrescido desta entrega.

## Preservado

Logo original, identidade, serviços externos, WhatsApp circular, emergência, categorias, carrossel, fluxo de relato, galeria/câmera, GPS e endereço editável, mapa Leaflet, preferências de tema/leitura/contraste/movimento, protocolo, rascunho, perfis demonstrativos, feedback e exclusão local. As ações profissionais antigas encaminham ao registro na Central Operacional para usar as mesmas regras e evitar bypass da evidência.

## Compatibilidade

A chave `reports` e as demais chaves do navegador permanecem. Leitura normaliza os status antigos sem apagar os dados. Campos não conhecidos são preservados. `Iniciado` vira `Em execução`; `Em triagem` vira `Aguardando triagem`; `Encaminhada` vira `Transferido`. Datas ausentes não são inventadas. Cenários novos são acrescentados apenas com ação explícita quando a base já existe.

## Apenas demonstrativo / roadmap

Toda execução acontece no navegador. Os perfis são públicos de teste; não representam autorização segura. Equipes e responsáveis de exemplo são fictícios. Fotos do vídeo original não são novas evidências do dataset.

Backend central, isolamento entre municípios e secretarias, identidade, auditoria, canais de notificação, integrações, API pública, webhooks e conformidade formal continuam fora desta entrega. A revisão é sinalizada para análise; não reabre automaticamente a OS. Nenhum funcionário ou veículo é rastreado.
