Histórico de entregas

Acompanhe as mudanças públicas do app, do painel, do laboratório e das integrações YouAutoCar.

Página 14 de 23

Banco captura objetos que só existiam em produção, ganha retenção do obd_logs e o painel web fecha cabeçalhos de segurança

Dez tabelas e quatro funções internas que só existiam no banco de produção passam a fazer parte do repositório e do replay automático; os logs brutos de OBD passam a ser apagados após 90 dias em lotes pequenos; a imagem web ganha HSTS e política de segurança básica.

SupabaseWebOperacao
Ver detalhes
  • As tabelas de conhecimento, catálogo de mão de obra, histórico de manutenção, protocolos OBD, alertas e métricas operacionais agora existem também no replay limpo, com RLS e as mesmas permissões de produção.
  • obd_logs (536 MB, sem leitor no app) passa a reter 90 dias: purga de 5.000 linhas a cada 10 minutos e VACUUM ANALYZE semanal, só executáveis pela operação.
  • A função telemetry_analyze, chamada pelo app na análise de telemetria, volta a ter código no repositório e foi publicada a partir dele; as demais 21 funções sem fonte foram arquivadas para exclusão.
  • Imagem web (Easypanel) volta a copiar a pasta certa do build e o nginx envia HSTS, Content-Security-Policy básica e Permissions-Policy.
  • Sem mudanças para clientes e oficinas.

Fonte: Rodada 653 madrugada (YC-134, YC-116, YC-122, YC-112, YC-129): db push 20260904060000/061000, pgTAP 033, deno check, deploy telemetry_analyze

1.2.37+158

APP mostra a temperatura do motor em tela cheia, abre sozinho acima de 99 °C e lê a pressão do rail

No Jarvis Vivo, tocar no card Temperatura abre uma tela só com a temperatura do motor em número gigante; se o motor passar de 99 °C a tela abre automaticamente e permanece até ser fechada. Motores de injeção direta cuja ECU anuncia o PID 23 passam a mostrar a pressão do rail de combustível.

AndroidWebOperacao
Ver detalhes
  • Card Temperatura do Jarvis Vivo abre a temperatura em tela cheia ao toque, com tendência dos últimos 30 s, RPM, velocidade e origem da leitura.
  • Acima de 99 °C a tela abre automaticamente e fica; fecha só pelo X e volta a armar quando a temperatura cair abaixo de 95 °C.
  • Enquanto a tela está aberta, o scanner prioriza a leitura da temperatura (PID 05) nos ciclos de fundo, e ao conectar a temperatura passa a ser lida logo após MAP e TPS, reduzindo o tempo em 'aguardando'.
  • Novo card Rail (pressão do rail de combustível, PID 23) para injeção direta e diesel quando a ECU anuncia o PID; o Citroën C4L THP 2014 real não anuncia esse PID no OBD padrão, então o card fica oculto nele; no simulador YouSimuladorOBD aparece 38 bar.
  • Fundo sólido e sem desfoque, seguro para multimídias com GPU fraca.
  • Painel web: os tipos gerados do banco voltam a refletir o schema atual (funções capturadas na rodada 653); sem mudança visível para o usuário.

Fonte: Rodada 653 noite autônoma: pedido do Owner (temperatura em tempo real e rail do C4L); flutter analyze, suíte de testes e validação com simulador YouSimuladorOBD + V-LINK no tablet SM-X236B

Banco: migration de policies fica segura para replay e painel web ganha relatório de cobertura de testes

A migration que removeu policies de escrita abertas passa a ignorar tabelas que só existem no banco de produção, permitindo que o gate automático de banco rode limpo; o painel web passa a gerar relatório de cobertura de testes.

SupabaseWebOperacao
Ver detalhes
  • O gate automático de banco (Database Tests) volta a executar a migration de policies de escrita sem erro em um banco vazio.
  • Nenhuma mudança no banco de produção: as policies já tinham sido removidas na noite de 2026-09-04.
  • O painel web ganha o comando de cobertura de testes (test:coverage) para acompanhar a evolução da suíte.
  • Sem mudanças para clientes, oficinas ou no app Android.

Fonte: Rodada 653 noite autônoma (YC-109, YC-129): Database Tests run 33834828541 reprovado por tabela remote-only; correção validada localmente

1.2.36+157

APP troca desfoque por fundo sólido em multimídias e enxuga permissões antigas

Guincho, scan multissistema e o módulo do Jarvis deixam de usar efeitos de desfoque em multimídias automotivas e aparelhos com GPU limitada; permissões legadas de Bluetooth e armazenamento passam a valer só nas versões antigas do Android.

AndroidWebOperacao
Ver detalhes
  • O painel web deixa de imprimir mensagens informativas no console do navegador em produção; avisos e erros continuam.
  • Nove painéis com efeito de vidro passam a usar fundo sólido nos perfis multimídia e GPU segura; em celulares e tablets comuns o visual continua o mesmo.
  • Um teste automático impede que novos efeitos pesados (desfoque, máscaras de shader) entrem no app fora do componente controlado.
  • As permissões antigas de Bluetooth valem só até o Android 11 e as de armazenamento só até o Android 12, reduzindo alertas na Play Console.
  • Sem mudanças de dados, login ou funções OBD.

Fonte: Rodada 653 noite autonoma (YC-106, YC-115): flutter analyze, suite completa e APK release com R8 validado no tablet SM-X236B

Banco restringe chamadas sem login a nove funções e Edge Functions passam a compilar no CI

A superfície acessível com a chave pública do app ficou limitada aos links de aprovação, rastreio de guincho e catálogo de códigos; funções, índices e retenção de logs foram revisados e todas as Edge Functions voltaram a passar no typecheck.

SupabaseWebOperacao
Ver detalhes
  • Sem sessão, apenas aprovação de O.S. por link, rastreio público de guincho, catálogo de códigos de falha e contrato de backend continuam acessíveis; as demais 260 funções exigem login.
  • Todas as funções do banco passam a ter caminho de busca fixo, fechando o alerta de segurança do Supabase.
  • Dezessete índices duplicados foram removidos e 77 chaves estrangeiras ganharam índice.
  • Registros de execução dos workers e logs do aplicativo passam a ter retenção automática (30 e 90 dias).
  • Dezesseis funções que existiam apenas no banco remoto entraram no repositório, incluindo a correção de uma consulta pública de itens de O.S. que referenciava coluna inexistente.
  • O token do portal de fornecedores passa a viajar no cabeçalho da requisição, não mais na URL.
  • Todas as 69 Edge Functions compilam e o CI passa a verificar cada uma; a função de rascunho de deriva do copiloto, que não compilava, foi removida.

Fonte: Rodada 653 noite autonoma: migrations 20260904040000/041000/042000 aplicadas no remoto com pgTAP 031, deno check 69/69, deploy de supplier-portal e convert_entry_to_session

1.2.36+156

APP protege o pacote Android e painel fecha permissões por padrão

O aplicativo Android passa a ser publicado ofuscado e sem o arquivo de configuração embutido, e o painel deixa de conceder permissões a quem ainda não teve papéis sincronizados.

AndroidWebOperacao
Ver detalhes
  • O APK de produção é compilado com R8 (ofuscação e remoção de recursos), com regras para Bluetooth, USB serial, Firebase e Play Core.
  • As chaves do Supabase entram no build por dart-define e não são mais empacotadas como arquivo .env dentro do aplicativo.
  • O build de release passa a falhar quando a keystore de produção não está configurada, em vez de assinar silenciosamente com a chave de debug.
  • No painel, quem ainda não tem permissões sincronizadas não recebe mais acesso a recursos granulares; donos de oficina e administradores da plataforma mantêm o acesso.
  • A área /admin do painel passa a ser protegida no roteador, e não apenas dentro de cada página.

Fonte: Rodada 653 semana 1 (YC-104 e YC-105): Vitest 514/514, tsc e ESLint OK; Flutter analyze e suite completa; APK release com R8 validado no tablet SM-X236B via ADB

Painel e site recebem atualizações de segurança de dependências

Doze atualizações de bibliotecas pendentes desde agosto foram aplicadas, fechando os alertas altos do leitor de PDF do painel e do gerador de identificadores do site.

WebOperacao
Ver detalhes
  • O visualizador de evidências em PDF do painel passa a usar a versão 6 do PDF.js, corrigindo a execução de código por PDF malicioso.
  • O site institucional atualiza nanoid, js-yaml, fflate e browserslist; o painel atualiza fflate, undici, humanfs e browserslist.
  • Os pacotes de contrato de agendamentos e ordens de serviço atualizam nanoid e postcss.
  • As auditorias de dependências do CI voltam a passar sem alertas altos em produção.

Fonte: Rodada 653: merge dos PRs #51 a #62 do Dependabot em 2026-09-04 apos CI verde em cada PR; validacao local de tsc, Vitest, build e npm audit

Banco reforça permissões da chave pública e retoma gate de banco

A auditoria de 2026-09-03 fechou funções e tabelas que ainda aceitavam a chave pública do app sem sessão, e o teste automático de banco volta a rodar a cada mudança no Supabase.

SupabaseOperacao
Ver detalhes
  • Funções internas de identidade, reconstrução de modelos e busca de O.S. por código deixam de aceitar chamadas sem sessão autenticada.
  • Funções de gatilho do banco não podem mais ser chamadas diretamente pela API pública.
  • A chave pública perde acesso direto a tabelas e views; o catálogo de códigos de falha continua legível antes do login.
  • Objetos novos no banco nascem sem acesso público por padrão, exigindo liberação explícita para links públicos.
  • O gate de banco (replay de migrations, pgTAP e lint) e o CI de segurança voltam a rodar automaticamente em pushes que tocam o Supabase.

Fonte: Auditoria completa rodada 653; migration 20260904012000 aplicada no Supabase remoto em 2026-09-04 com dry-run transacional, pgTAP 030 e smoke REST; CI reativado por path filter

Login recupera atualização pendente sem tela de erro

Quando o navegador ainda aponta para um arquivo antigo após uma atualização, o painel recarrega a versão atual sem exibir temporariamente detalhes técnicos.

WebOperacao
Ver detalhes
  • A recuperação automática de arquivos atualizados continua limitada a uma única recarga por sessão.
  • Durante essa recarga, o painel mostra um estado neutro de atualização em vez da tela técnica do ErrorBoundary.
  • Erros secundários gerados pelo carregamento interrompido deixam de ser enviados ao logger e ao Sentry.

Fonte: Correção Web isolada validada localmente com TDD, build e cold-load em 2026-07-26; sem push ou deploy

Frota ganha busca e paginação no servidor

A listagem da frota passa a buscar placa, marca, modelo e proprietário dentro da oficina ativa, com filtro de arquivados e navegação estável por páginas.

WebSupabaseOperacao
Ver detalhes
  • A busca da frota passa a consultar o servidor após 400 ms, sem carregar todos os veículos no navegador.
  • A listagem oferece 10, 25 ou 50 itens por página, preservando busca, página e arquivados na URL.
  • Resultados são limitados à oficina ativa por permissão e RLS, com ordenação determinística entre páginas.
  • Dados completos de edição continuam sendo carregados somente quando o usuário abre um veículo.

Fonte: Implementação Fleet isolada validada localmente com TDD de banco e Web em 2026-07-26; sem push, deploy ou alteração remota

1.2.36+155

Notificações em segundo plano usam o canal principal

O Android passa a direcionar notificações do Firebase para o canal principal do YouAutoCar, evitando o canal de contingência do sistema.

Android
Ver detalhes
  • Mensagens recebidas com o aplicativo em segundo plano passam a usar o canal principal já criado pelo YouAutoCar.
  • Permissões, identificador do aplicativo e práticas de dados permanecem inalterados.
  • A correção é restrita à configuração Android de notificações.

Fonte: Correção validada com teste estático focado, suíte Mobile completa, análise estática e AAB release assinado em 2026-07-25; publicação preparada exclusivamente para Internal

1.2.36+153

Diagnóstico OBD mostra e preserva a O.S. em uso

O aplicativo passa a exibir claramente qual ordem de serviço está vinculada ao diagnóstico, permite selecionar ou trocar a O.S. e elimina o fallback silencioso que deixava a limpeza de DTC sem contexto.

AndroidWebOperacao
Ver detalhes
  • As telas Conectar ao OBD e Falhas (DTC) mostram a O.S. em uso e oferecem uma ação direta para selecionar ou trocar a ordem.
  • Ordens aprovadas e demais status operacionais abertos voltam a aparecer na seleção do diagnóstico.
  • Quando existe uma única O.S. em execução, ela tem prioridade sobre ordens ainda em avaliação.
  • Continuar sem O.S. passa a exigir uma escolha explícita em modo somente leitura; a limpeza de DTC continua bloqueada sem ordem vinculada.
  • A confirmação de limpeza deixa de reutilizar um campo de texto descartado durante atualizações concorrentes da tela.

Fonte: Correção validada com TDD, análise estática, gates Mobile e Graphify, build Android release e ciclo físico Mode 03/04/03 via YouSimulador e ADB em tablet real em 2026-07-22; versão 153 publicada e confirmada em Internal e Alpha

Orçamentos distribuem corretamente itens entre múltiplos DTCs

O impacto financeiro do orçamento passa a ratear cada item entre seus DTCs vinculados sem inflar o total analisado, enquanto o runner V7 ganha um launcher portátil para tarefas e Worktrees locais.

WebOperacao
Ver detalhes
  • Peças e serviços associados a mais de um DTC deixam de ser somados integralmente em cada código.
  • Códigos repetidos, com diferenças de caixa ou espaços, são normalizados antes do cálculo.
  • O rateio preserva o total original e distribui eventuais centavos residuais de forma determinística.
  • O runner V7 seleciona localmente um Python compatível com jsonschema 4.x, sem instalar dependências ou acessar a rede.

Fonte: Correção H-WEB5 e runner V7 portátil validados localmente em 2026-07-22; promoção sem deploy ou alteração remota

1.2.36+152

Turbo e Admissão guarda os extremos da sessão

A tela de Turbo e Admissão passa a preservar mínimos e máximos enquanto o teste está aberto, facilitando a conferência de vácuo, pressão e picos de condução.

AndroidOperacao
Ver detalhes
  • Turbo relativo e MAP absoluto mostram os menores e maiores valores da sessão em hPa.
  • RPM e velocidade preservam seus picos, com duração, número de amostras e ação para zerar os extremos.
  • A sessão é limpa ao trocar de veículo, desconectar ou sair da tela, evitando misturar medições diferentes.
  • O fast lane continua usando MAP, RPM e velocidade a cada 750 ms, sem adicionar PIDs ou aumentar a carga no scanner.
  • O painel mantém o visual responsivo e GPU-safe para telefone e multimídia automotiva.

Fonte: Implementação validada com TDD, suíte Mobile completa e QA Android em 2026-07-18

Agenda preserva a data local com fluxo V7 controlado

A agenda passa a agrupar compromissos pela data civil local, enquanto o fluxo V7 reforça auditorias, aprovações e execuções locais controladas.

WebOperacao
Ver detalhes
  • A listagem de compromissos usa a data local ao separar os atendimentos de hoje.
  • O calendário e o formulário de agendamento preservam corretamente o dia local em horários próximos da virada UTC.
  • O instante completo do compromisso continua armazenado no campo scheduled_at sem alteração de contrato.
  • Auditorias e execuções locais passam a usar o fluxo V7 com contratos validados, aprovação humana e bloqueio de ações remotas durante a rodada.

Fonte: Promoção local do workflow V7 e correção H-WEB2 com TDD e revisão independente em 2026-07-18; sem deploy ou alteração remota

1.2.36+151

Jarvis fala códigos e medidas automotivas com mais clareza

A voz do Jarvis passa a preparar em português do Brasil códigos DTC, siglas, números e unidades antes da leitura, mantendo o diagnóstico original intacto.

AndroidSupabaseOperacao
Ver detalhes
  • Códigos como P0171 e P023A passam a ser lidos caractere por caractere, sem alterar o texto exibido ou salvo.
  • RPM, tensão, temperatura, pressão, velocidade e outras medidas automotivas ganham leitura natural em português.
  • As configurações do Jarvis permitem desligar a melhoria ou escolher entre pronúncia padrão e técnica expandida.
  • A preferência de pronúncia acompanha o perfil móvel sincronizado do veículo.
  • No aplicativo Windows, o monitoramento OBD em segundo plano fica inativo sem acionar o plugin exclusivo de Android e iOS, preservando a Home e a leitura por voz.
  • O processamento permanece local e offline, sem trocar o motor de voz nem enviar o conteúdo para serviços externos.

Fonte: Implementação e QA do normalizador TTS pt-BR em 2026-07-17; reprodução TTS offline validada via ADB em tablet Android real; build debug Windows, restauração de sessão, troca de modo e ciclo iniciar/concluir do TTS validados no aplicativo local; versão 1.2.36+151 confirmada em Internal, Alpha e Production na Google Play

2026.07.16.2

Release de bancada preserva a credencial local segura

O pacote OTA corretivo do YouSimulador mantém a configuração privada da bancada e conserva a migração automática para app.youautocar.com.br.

WebSupabaseOperacao
Ver detalhes
  • O pacote 2026.07.16.2 substitui o candidato anterior e usa uma URL própria para evitar qualquer resposta antiga de cache.
  • A autenticação local da bancada permanece alinhada ao arquivo privado e não é versionada no repositório.
  • A migração continua restrita ao hostname legado exato, preservando caminho, parâmetros e URLs personalizadas.
  • A gravação por USB e a validação da URL efetiva fazem parte do aceite da release.

Fonte: Correção e validação de bancada do YouSimulador em 2026-07-17; sem alteração de schema ou RLS

2026.07.16.1

Simulador deixa de depender do antigo domínio do provedor

A configuração OTA do YouSimulador passa a corrigir automaticamente endereços antigos salvos no equipamento e mantém intactos servidores personalizados.

WebSupabaseOperacao
Ver detalhes
  • O equipamento migra apenas o hostname exato app2 do provedor para app.youautocar.com.br, preservando caminho e parâmetros.
  • Endereços OTA personalizados, o domínio atual e hostnames apenas parecidos não são modificados.
  • A publicação de novos binários exige código-fonte limpo e registra repositório e commit no manifesto.
  • Um gate automático impede que o domínio antigo volte a código ou configuração operacional fora da lista histórica autorizada.

Fonte: Implementação e QA cross-repo do firmware, Web e contratos OTA em 2026-07-16

Lembretes de O.S. passam a informar claramente o canal de entrega

A tela diferencia o alerta interno do WhatsApp e prepara o envio adicional para a equipe pela Meta oficial, condicionado à aprovação do template dedicado.

WebSupabaseOperacao
Ver detalhes
  • O disparo manual informa separadamente quando o alerta chegou ao sino e quando o WhatsApp foi enviado ou bloqueado.
  • A equipe continua recebendo obrigatoriamente o alerta interno, mesmo sem telefone ou template Meta aprovado.
  • O WhatsApp adicional usa somente a Cloud API oficial e nunca retorna silenciosamente para Evolution.
  • A área de integrações permite preparar e sincronizar o template utilitário dedicado aos lembretes de O.S.

Fonte: Implementação e QA local em 2026-07-16; ativação do WhatsApp depende da aprovação do template pela Meta

Lembretes de O.S. voltam a chegar aos colaboradores

Os lembretes configurados pela oficina passam a criar corretamente notificações internas para colaboradores ativos e abrem a ordem de serviço correspondente.

WebSupabaseOperacao
Ver detalhes
  • A entrega interna resolve com segurança a identidade de autenticação pelo vínculo ativo do colaborador com a empresa.
  • Falhas reais de entrega passam a interromper a execução agendada, evitando relatórios verdes quando algum destinatário não recebeu o lembrete.
  • A central de notificações identifica o lembrete de O.S. e abre diretamente a ordem de serviço indicada.
  • O histórico de falhas não será reenviado automaticamente; a homologação será feita com um envio controlado após a publicação.

Fonte: Hotfix local dos lembretes de O.S. em 2026-07-16; aguarda deploy e homologação controlada