# Release — Sprint 23 **Data:** 2026-07-12 ## Versões | Projeto | Versão | |----------------|------------| | DoncMobile.App | 3.6.0 (58) | | DoncMobile.API | 3.5.10 | | Admin | 3.3.12 | | WebHubDonc | 2.4.12 | | Servico | 3.0.28 | | ApiV2 | 3.0.26 | --- ## Release Notes ### DoncMobile.App — v3.6.0 - **[fix]** Refatoração arquitetural da fila de sincronização: Outbox Pattern + BackgroundService + reconciliação no startup — elimina ANRs e ObjectDisposedException que afetavam 37,9% dos usuários (@jessica) - **[fix]** Corrigir erro "An error occurred while saving the entity changes" ao finalizar relatório de problema e ao iniciar deslocamento — centraliza retry em `SaveChangesComRetryAsync` (@tiago) - **[fix]** Corrigir OS de montagem que fica presa como "iniciada" e nunca finaliza — itens em ErroCritico voltam a ser retentados automaticamente (@tiago) - **[feature]** Banner de versão desatualizada na tela de login com limpeza automática após atualização (@jessica) - **[feature]** Login: mensagens amigáveis para todos os erros HTTP, sem expor 401 ao usuário (@jessica) - **[feature]** Fechamento: paridade completa com legado — período, estabelecimento, breakdown por TipoJob, Despesas/Receitas separadas (@jessica) - **[improvement]** Remover campo "Valor Médio" da aba de Recebimentos (@tiago) ### DoncMobile.API — v3.5.10 - **[feature]** Fechamento: query adicional de breakdown por TipoJob com flag ApresentarValorProfissionalApp; DataInicio/DataFim/Estabelecimento incluídos no DTO (@jessica) ### Admin — v3.3.12 - **[feature]** Modo somente leitura por Estabelecimento (flag no banco + bloqueio no Master + CSS) (@jessica) - **[fix]** SomenteLeitura: paridade de funcionalidade com layout novo no layout anterior (@jessica) - **[feature]** Dashboard: redesign visual — 6 cards, cores corrigidas, ícones FontAwesome, período inteligente, Dapper (sem EF6), mapa de calor otimizado (@jessica) - **[feature]** Suporte — Monitor PostSchedule: filtros, ações Reenviar/Abandonar/Reenviar Todos (@jessica) - **[feature]** Suporte — GatilhosHealth: exibir todos os gatilhos (Enviados/ComErro/Pendentes), exportar CSV (@jessica) - **[feature]** Suporte — Histórico de Execuções: refatoração completa com filtros, paginação VirtualList, modais JSON/Retorno, exportar CSV (@jessica) - **[feature]** Saas — Webhook API Key por ContratoSaas com geração automática de GUID (@jessica) ### WebHubDonc — v2.4.12 - **[feature]** Criar endpoints receptores de webhook MMS (Ocorrência e Checklist) com autenticação por API Key extensível (@jessica) - **[fix]** Ajustar código de filial para usar os 4 primeiros dígitos do CodigoManual do estabelecimento (@jessica) - **[fix]** Corrigir de/para de contrato Osirnet (1060→1081) na finalização de OS via webhook (@tiago) ### Servico — v3.0.28 - **[fix]** MMS — Corrigir polling de ocorrências (deserialização, parsing de data UTC, múltiplos códigos de problema) (@jessica) - **[improvement]** PostSchedule — Aumentar retentativas para 10, backoff exponencial com cap de 48h (@jessica) - **[fix]** Osirnet — Corrigir repository de PDF de confirmação para incluir contrato 1081 (@tiago) ### ApiV2 — v3.0.26 - **[refactor]** MmsWebhookServico centralizado em Api/MMS/Services (removido de ApiV2) (@jessica) - **[feature]** MMS Capacity: consultar disponibilidade antes da adesão; ambiente HML/PRD por NomeEquipeVoalle (@jessica) --- ## Guia de Testes — QA ### Ambientes | Projeto | Onde testar | |----------------|--------------------------------------| | DoncMobile.App | Play Store Closed Testing (Alpha) | | DoncMobile.API | apimobile.teste.donc.com.br | | Admin | admin.teste.donc.com.br | | WebHubDonc | webhub.teste.donc.com.br | | Servico | servidor de teste | | ApiV2 | api.teste.donc.com.br | ### DoncMobile.App - [ ] Fila de sincronização: finalizar OS com rede instável → OS deve sincronizar ao reconectar, sem ANR - [ ] OS de montagem: finalizar no app → OS muda para Finalizado no Admin (sem ficar presa) - [ ] Relatório de problema: finalizar → sem erro "entity changes" - [ ] Login com credenciais erradas → mensagem amigável em português, sem texto de código HTTP - [ ] Login com versão bloqueada → banner amarelo com botão "Atualizar agora"; após atualizar banner some - [ ] Tela de Fechamento → exibe período, estabelecimento, breakdown por tipo de serviço, receitas e despesas separadas - [ ] Aba Recebimentos → campo "Valor Médio" não aparece mais no card Resumo ### DoncMobile.API - [ ] `GET /api/fechamento` → retorna DataInicio, DataFim, Estabelecimento, ValorPorServico[] por TipoJob ### Admin - [ ] Estabelecimento com SomenteLeitura = true → botões de edição/exclusão ocultos, postback bloqueado - [ ] Dashboard → 6 cards com cores corretas (Finalizados verde, Cancelados cinza, Problemas vermelho) - [ ] Dashboard → trocar período → todos os cards e widget de gatilhos atualizam - [ ] Suporte → PostScheduleMonitor → filtros funcionando, ações Reenviar/Abandonar - [ ] Suporte → GatilhosHealth → colunas Enviados/ComErro/Pendentes; exportar CSV - [ ] Suporte → Histórico de Execuções → filtros, paginação, modal JSON, exportar CSV - [ ] Saas → AddEdit → campo Webhook API Key com botão "Gerar novo" e confirmação ### WebHubDonc - [ ] `POST /api/integracoes/mms/ocorrencia` com API Key válida → 200, grava JSON em logs - [ ] `POST /api/integracoes/mms/ocorrencia` sem API Key → 401 - [ ] Finalização de OS Osirnet (contrato 1081) → status da rota atualiza corretamente ### Servico - [ ] Polling MMS → ocorrências com data UTC (Z) são parseadas corretamente - [ ] PostSchedule → item com erro não ultrapassa 10 tentativas; backoff cresce até cap de 48h ### ApiV2 - [ ] Adesão MMS → consulta Capacity antes de aderir; ambiente HML/PRD conforme NomeEquipeVoalle