v1.5.13 — Desempenho, Dice Parser v8 & Reforço iCloud
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) paramythic_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
IoIsolateRunnercompartilhado — 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
appStoreReceiptURLpara 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.runparacompute(). - 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:
enableCloudSyncretornando 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:
loadLastSavedJournalfalhando quando o diretório contém arquivos ilegíveis — agora os ignora.