Skip to content

CGPDI StudyLab v1.0.14

Latest

Choose a tag to compare

@github-actions github-actions released this 16 Aug 23:12
· 9 commits to main since this release

Adicionado

  • Screenshots e GIF Animado Automatizados na Documentação:
    • Novo script PowerShell scripts/capture-screenshots.ps1 que compila o app, o inicia, navega por todas as 7 abas via UIAutomation e captura cada uma com PrintWindow (GDI32 P/Invoke), salvando em docs/public/screenshots/.
    • GIF animado docs/public/gifs/demo.gif gerado automaticamente via FFmpeg a partir dos frames de cada aba (slideshow 2 s/frame, paleta otimizada, escala 1280px).
    • Novo workflow GitHub Actions capture-screenshots.yml que dispara a cada push em main (alterações em CGPDI.StudyLab/**), instala FFmpeg via Chocolatey e commita os assets atualizados com [skip ci].
    • Galeria visual interativa na homepage da documentação Astro (index.mdx) com abas (Tabs) mostrando screenshot de cada módulo.
    • Seção "📸 Interface" no README.md com o GIF animado e tabela de screenshots em <details>, servidos pelo GitHub Pages em cgpdi.gabrielfs.dev.
  • Versionamento automático no desenvolvimento com MinVer: builds locais agora derivam a versão do histórico git (tags v* + altura de commits), eliminando a parametrização manual de versão para pacotes de desenvolvimento. O GitHub Actions continua usando versão explícita (MinVerSkip=true), sem impacto nos instaladores publicados.
  • Personalização Visual dos Instaladores:
    • Tela Splash temática Dark Slate (#0D0E18) com barra de progresso em Ciano Elétrico (#38BDF8) e logotipo 3D cristalino para o instalador Velopack (Setup.exe).
    • Banner superior personalizado (493x58 px) e tela de diálogo com logotipo (493x312 px) no padrão WiX para o instalador corporativo MSI (.msi).
    • Textos de boas-vindas (installer_welcome.txt), introdução (installer_readme.md) e conclusão (installer_conclusion.txt) customizados com informações sobre o .NET 10 e a plataforma.
  • Página de Documentação — Fluxo de Desenvolvimento & Ferramentas:
    • Novo capítulo detalhando todas as 11 tecnologias e ferramentas do projeto (.NET 10, WPF, Roslyn Scripting, Velopack, WiX, SonarQube, Snyk, Graphify, MinVer, xUnit, Astro Starlight), explicando seu papel no ecossistema com diagrama interativo Mermaid.
  • Identidade Visual e Favicon na Documentação:
    • Configuração do favicon vetorial oficial transparente (/favicon.svg) e padronização do portal Astro sem uso de emojis nos títulos e diagramas, priorizando ícones nativos e tipografia limpa.

Segurança

  • Blindagem contra Ataques na Cadeia de Suprimentos (Supply Chain Hardening):
    • Ecossistema .NET / NuGet:
      • Criação de nuget.config com <clear /> e Package Source Mapping para prevenção contra Dependency Confusion e Typosquatting.
      • Ativação de RestorePackagesWithLockFile e geração de lockfiles packages.lock.json com hashes criptográficos SHA-512 de todas as dependências diretas e transitivas.
      • Ativação de NuGetAudit com auditoria em tempo de restore para todas as dependências (NuGetAuditMode=all).
    • Ecossistema Node.js / npm:
      • Criação de arquivos .npmrc (raiz e docs/) com ignore-scripts=true (bloqueio de execução arbitrária de código em preinstall/postinstall), save-exact=true, package-lock=true e audit=true.
      • Fixação determinística de versões exatas no docs/package.json.
    • Testes Automatizados de Conformidade:
      • Criação de SupplyChainSecurityTests.cs (4 testes automatizados) e integração à suíte de testes xUnit (118 testes totais).

Alterado

  • Modernização de expressões regulares para geradores de código em tempo de compilação com [GeneratedRegex], eliminando riscos de ReDoS e melhorando a performance na renderização de sintaxe C#/XAML e fórmulas matemáticas.
  • Refatoração de comparadores de ponto flutuante em conversões de espaços de cores para tolerâncias seguras com epsilon (1e-9).
  • Otimização do gerenciamento de recursos gráficos WPF com congelamento (Freeze()) de pincéis estáticos, reduzindo alocação e prevenindo retenção desnecessária de memória.

Corrigido

  • Falha de empacotamento MSI no GitHub Actions (There is a release in channel win which is equal or greater to the current version): o diretório Releases-msi/ (com releases.win.json obsoleto) foi removido do controle de versão — o Velopack agora empacota sempre em canal limpo no runner, permitindo republicar a mesma versão sem conflito de canal.
  • Compatibilidade e Transparência dos Ícones Multi-Resolução: Refatorada a estrutura interna do arquivo app_icon.ico para a especificação DIB 32bpp nativa do Windows com cabeçalho BITMAPINFOHEADER e máscara AND de transparência nas resoluções 16x16 a 128x128 e stream PNG em 256x256, eliminando definitivamente o fundo preto nos atalhos da Área de Trabalho, Menu Iniciar, barra de tarefas e instaladores Velopack/MSI.
  • Resolução de Conflito de Versão BAML/Assembly na Inicialização: Removido o MinVer do build de publicação e unificada a parametrização de versão via MSBuild (Version, AssemblyVersion, FileVersion, InformationalVersion), garantindo que o compilador BAML do WPF e a compilação C# usem exatamente o mesmo AssemblyVersion, eliminando a falha fatal (FileNotFoundException no App.InitializeComponent) na abertura do aplicativo após a instalação via EXE ou MSI.
  • Ícones da aplicação com fundo transparente no gerador vetorial AppIconHelper e nos assets SVG/PNG/ICO.
  • Resiliência na inicialização pós-instalação (EXE e MSI): implementado tratamento global de exceções (DispatcherUnhandledException, AppDomain.UnhandledException, TaskScheduler.UnobservedTaskException) com gravação de diagnóstico em %LocalAppData%\CGPDI.StudyLab\logs\crash.log e diálogo informativo em caso de falhas de hardware ou permissões.
  • Inclusão dos arquivos de Assets diretamente na distribuição do executável (CopyToOutputDirectory="PreserveNewest"), evitando tentativas desnecessárias de escrita em diretórios protegidos como Program Files.
  • Tratamento explícito de cancelamento e descarte seguro de CancellationTokenSource no diálogo de atualizações.
  • Correção de operações binárias em métodos de teste dinâmico do compilador em tempo de execução.
  • Responsividade e Contenção de Layout no Astro Docs: adicionado sistema global de contenção de grid (min-width: 0, overflow-wrap: anywhere), scroll horizontal seguro para tabelas e quebra responsiva de cards e código inline, evitando colisões com o sumário lateral.
  • Renderização de Componentes Starlight: migração de arquivos com imports JSX para extensão .mdx e ajuste da configuração do Astro para execução adequada de <CardGrid>, <Steps> e <Tabs>.
  • Formato de Imagens para o Instalador WiX MSI: geração dos assets msi_banner.bmp (493x58) e msi_dialog_logo.bmp (493x312) no formato nativo Windows Bitmap (.bmp) exigido pelo WiX Toolset / Velopack, corrigindo a falha de empacotamento no GitHub Actions.