Voltar para o blog

v1.5.13 — Desempenho, Dice Parser v8 & Reforço iCloud

Notas de Lançamento 23 de mar. de 2026 5 min de leitura

Compartilhar

Lançado em 23 de Março de 2026

Essa versão é principalmente por baixo do capô — mas o tipo de trabalho por baixo do capô que você vai sentir na prática. As duas grandes vitórias: a cópia de tabelas na instalação limpa do iOS caiu de quase três minutos para menos de um minuto, e um travamento na inicialização do macOS que deixava alguns jogadores olhando para um spinner preto por 85+ segundos foi eliminado. Tem também uma reescrita completa do motor de dados (v8), um lote de correções de iCloud que saíram de semanas depurando casos extremos de sincronização, e uma passada de reforço de segurança no acesso a tabelas de Recursos Expandidos.

Sem novas tabelas ou funcionalidades desta vez. Elas vieram depois na v1.6.0. Esta versão é sobre tornar o que já existe mais rápido e mais confiável.

Destaques

  • Configuração inicial do iOS: 166s → 43s. Substituição de spawns sequenciais de isolate por arquivo (708 no total) por lotes paralelos de 50 e remoção de chamadas fsync redundantes. Novos usuários agora veem uma tela de progresso temática com badge Mythic e contagem de tabelas em vez de um spinner preto.
  • Travamento de inicialização do macOS corrigido. O App Nap estava limitando a E/S de arquivos do iCloud quando a IDE mantinha o foco da janela — sincronização de metadados não críticos movida para fire-and-forget.
  • Dice Parser v8. Migração de dart_dice_parser (pub.dev) para mythic_dice_parser (nosso próprio fork). API de rolagem assíncrona, exibição mais limpa de dados compostos (não mostra mais gatilho e resultado ao mesmo tempo), e saída ordenada de drop/keep — dados descartados primeiro, dados mantidos depois.
  • Passada de confiabilidade iCloud. Corrigidos diários invisíveis após refatoração de armazenamento, nomes obsoletos após renomear, relatórios incorretos de status de sincronização e uma falha ao redefinir o armazenamento para o padrão.
  • Segurança das tabelas de Recursos Expandidos. O controle de acesso agora usa um registro fixo de 181 IDs de tabelas compilado no binário — editar o campo JSON no disco não contorna mais a verificação de direito de acesso.

Alterado

  • Removidos todos os submódulos Git; dependências privadas agora ficam no hospedeiro de pacotes OnePub. Todos os pipelines de CI autenticam com ONEPUB_TOKEN.
  • Migração para Font Awesome Pro 7.2.0 (4.318 ícones, 115 novos).
  • Rolador de dados: dados compostos agora substituem o dado de gatilho pela soma composta. Operações drop/keep ordenam dados descartados primeiro para hierarquia visual mais clara.
  • Diário de Aventura: botões de ação (copiar, editar, excluir) em entradas do diário agora ficam atrás de um chevron recolhível para reduzir poluição visual.
  • Toda E/S de arquivos movida para fora do isolate da UI via um IoIsolateRunner compartilhado — elimina travamentos de thread da UI por leituras de arquivo em todas as plataformas.
  • Exportação de fórmulas agora usa a folha de compartilhamento da plataforma no celular e um diálogo Salvar Arquivo no desktop (o antigo seletor de diretório não funcionava no celular).
  • macOS: migração da detecção da Mac App Store do depreciado appStoreReceiptURL para StoreKit 2.

Corrigido

  • Desempenho: Cópia de tabelas na instalação limpa do iOS de ~166s para ~43s (lotes paralelos, fsyncs redundantes removidos).
  • Desempenho: Travamento de inicialização do macOS (85+ segundos) causado pelo App Nap limitando E/S do iCloud no modo de depuração da IDE.
  • macOS: Tabelas de significado e tabelas de foco de evento falhando ao carregar após o Flutter 3.41.1 fundir threads de UI/plataforma — migração de chamadas Isolate.run para compute().
  • iCloud: Diários e backups invisíveis após refatoração da arquitetura de armazenamento — filtragem de prefixo de caminho estava comparando com nomes de arquivo sem caminho.
  • iCloud: Nomes de diário obsoletos após renomear — atualizações pós-mutação roteadas através de listagem de consistência imediata.
  • iCloud: enableCloudSync retornando sucesso após migração falha — a UI podia mostrar sincronização habilitada enquanto o armazenamento permanecia local.
  • iCloud: Travamentos do app por E/S bloqueante de readInPlace/sync no isolate principal — substituído por hidratação assíncrona e leituras paralelizadas.
  • Armazenamento: Falha ao tocar em “Redefinir Local de Armazenamento” quando já no caminho padrão.
  • Diário de Aventura: Falha com tela preta ao dispensar entrada narrativa ou folha de edição de diário durante envio assíncrono — adicionada proteção PopScope.
  • Dropdowns: Overlay permanecendo ativo após pop de rota, causando falhas na travessia de foco.
  • Categorias: Falha no carregamento de arquivo por condição de corrida no sistema de arquivos — agora faz fallback para restauração a partir de assets.
  • Diários: loadLastSavedJournal falhando quando o diretório contém arquivos ilegíveis — agora os ignora.
Esc

Digite para pesquisar recursos e posts do blog.