Files
guara/CHANGELOG.pt-BR.md
T
Lucas RayanandClaude Sonnet 5.5 0b9a16e8a0
CI / Format and clippy (push) Successful in 25s
Release / Create release (push) Successful in 13s
CI / Dependency audit (push) Successful in 11s
CI / Check desktop app (Linux) (push) Successful in 1m35s
Release / CLI (linux-x86_64) (push) Successful in 2m31s
Release / CLI (linux-aarch64) (push) Successful in 1m46s
CI / Tests (Linux) (push) Successful in 4m28s
Release / Desktop app (linux-x86_64) (push) Successful in 6m9s
Release / Desktop app (windows) (push) Successful in 4m13s
Release / Desktop app (linux-aarch64) (push) Successful in 9m51s
feat: responsive pause/stop, non-blocking update with progress bar, delete saved sessions (1.5.0)
- carve: check cancellation inside chunks and per hit; reassembly stage is cancellable
- status exposes `stopping`; UI shows "Pausing…" immediately
- Tauri update commands run off the UI thread; download percentage reported
- delete autosaved sessions manually (one/all) and by retention setting
- chore(release): 1.5.0

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 16:36:34 -03:00

27 KiB

Changelog

English · Português

Formato baseado em Keep a Changelog; versões seguem SemVer.

[1.5.0] - 2026-11-03

Adicionado

  • Barra de progresso da atualização. A atualização dentro do app mostra uma barra com a porcentagem real do download, seguida das fases de verificação, instalação e reinício.
  • Apagar sessões salvas. Cada sessão salva sozinha na lateral tem um botão de apagar, além de um botão "apagar todas". As configurações ganharam "Apagar sessões salvas sozinhas após" (nunca, 7, 30 ou 90 dias), aplicado ao abrir. Sessões abertas no app nunca são removidas automaticamente.

Corrigido

  • Atualizar não trava mais o app. A verificação e a instalação rodavam na thread da interface; agora rodam em segundo plano.
  • Pausar e Parar respondem na hora. A varredura por assinatura só checava o pedido a cada bloco de 8 MiB; agora checa continuamente, e a interface mostra "Pausando…" imediatamente.

[1.4.0] - 2026-11-03

Adicionado

  • Navegação por pastas. Uma visualização Pastas, ao lado de grade e lista, mostra o que foi encontrado uma pasta por vez, como num gerenciador de arquivos: primeiro as subpastas, com número de arquivos e tamanho, depois os arquivos, sob um caminho clicável. A árvore de pastas da barra lateral navega nessa visualização, e os filtros continuam valendo.
  • Recuperar pastas inteiras ou partes delas. Pastas e arquivos são marcados por caixas de três estados que continuam ao navegar; uma pasta marcada leva tudo o que está dentro dela, e subpastas ou arquivos desmarcados ficam de fora. Cada pasta marcada é recriada no destino a partir dela mesma (Documentos/Clientes/Projeto → Projeto/...), com o manifesto de hashes de sempre.

[1.3.5] - 2026-10-31

Adicionado

  • Atualização do app desktop em um clique. O botão "Atualizar agora" agora baixa, confere (SHA-256) e instala a versão nova de verdade, em vez de só linkar pra página de Releases. Funciona nos três pacotes do desktop: AppImage (substituição atômica), .deb (dpkg -i, sem pedir senha de novo — o app já roda como root/administrador quando você clica), e o instalador do Windows (instalação silenciosa /S). No Linux o app reabre sozinho; no Windows o instalador roda silencioso mas o app ainda não reabre por conta própria — abra de novo depois que a instalação terminar.

Alterado

  • O repositório se mudou pra organização Ciberfauna (ciberfauna/guara, era lucasrguerra/guara). Aviso importante pra instalações existentes: versões até a 1.3.4 têm o endereço antigo fixo na checagem de atualização e não vão encontrar esta versão sozinhas. Baixe a 1.3.5 manualmente uma vez na nova página de Releases, e as próximas verificações voltam a funcionar pelo novo endereço.

[1.3.4] - 2026-10-31

Corrigido

  • App desktop: só uma janela na abertura. A janela principal ficava visível desde o lançamento, então a instância sem privilégio mostrava a janela normal, piscava enquanto o sistema pedia a senha de administrador, e só depois era substituída pela janela da instância já elevada. Agora a janela fica escondida até a elevação ser resolvida — já elevada, falhou (a janela aí mostra o aviso), ou é a própria instância já relançada como administrador — então só uma janela aparece, igual ao Sabiá.

[1.3.3] - 2026-10-30

Arquitetura de atualizador unificada com o Sabiá: migração do tauri-plugin-updater assinado para consulta direta à API de Releases do Gitea e autoatualização com verificação de SHA-256.

Alterado

  • Novo mecanismo de atualização: O atualizador foi reescrito para seguir o modelo do Sabiá. As atualizações agora consultam diretamente a API de Releases do Gitea, conferem a integridade via .sha256 e não dependem mais de latest.json nem de chaves minisign.
  • Autoatualização do CLI (guara update): O CLI agora conta com guara update (para verificar novas versões) e guara update --apply (que baixa, confere o SHA-256 e substitui o binário atomicamente).
  • Aviso no app desktop: O app desktop consulta o Gitea ao abrir e direciona para os novos pacotes da release.
  • Aviso importante para instalações existentes: Versões até a 1.3.2 usavam o mecanismo assinado do tauri-plugin-updater baseado em latest.json. Como esse mecanismo foi descontinuado, instalações anteriores não encontrarão a versão 1.3.3 sozinhas: baixe a versão 1.3.3 manualmente uma vez nas Releases do Gitea, e as próximas verificações funcionarão pelo novo mecanismo unificado.
  • Removidos a dependência tauri-plugin-updater, a configuração createUpdaterArtifacts e o job de CI updater (Build latest.json).

[1.3.2] - 2026-10-30

O projeto saiu do GitHub para o Gitea, e a verificação de atualização foi junto.

Alterado

  • As atualizações agora vêm do Gitea. O cartão de atualização do app desktop lê o latest.json em git.lucasrguerra.dev.br, e não mais as Releases do GitHub. As versões até a 1.3.1 ainda olham o GitHub, que não responde mais, e por isso não enxergam esta release: baixe a 1.3.2 uma vez, e as próximas atualizações são automáticas.
  • O CLI é publicado só para Linux x86_64 e aarch64, compilado pelo CI do Gitea quando uma tag v* é enviada, com um .sha256 ao lado de cada pacote. Não há mais CLI para Windows. O app desktop continua saindo para Linux (AppImage, .deb) e Windows (.exe NSIS, compilado a partir do Linux). Não há build para macOS: exige o SDK e a assinatura da Apple, que o CI deste projeto (um único runner Linux) não tem.

[1.3.1] - 2026-10-23

Alterado

  • Logo oficial nova: o guará dentro do anel laranja, desenhado pelo autor do projeto, com fundo transparente para a mesma arte servir aos temas claro e escuro. Ela substitui a logo antiga das trilhas de disco no app (barra lateral, topo e tela inicial), no favicon, nos ícones do app desktop e no README.
  • O guara ui serve os novos guara.png e guara-s.png; o scripts/gerar-logo.py deriva a logo pequena e o ícone do app da arte oficial.
  • Desenvolvimento: o scripts/verificar.sh roda localmente o que o CI roda, com um hook opcional de pre-push (scripts/instalar-hooks.sh), e o CI deixa de rodar em mudanças só de documentação.

Notas

  • Nenhuma mudança na varredura, na recuperação, na assinatura ou em qualquer outro comportamento. É a primeira versão depois do atualizador do app: um app na 1.3.0 deve oferecer Atualizar agora.
  • Os screenshots em docs/img/ ainda mostram a logo antiga e serão refeitos.

[1.3.0] - 2026-10-23

Adicionado

  • Atualização dentro do app desktop. Ao abrir, o app pede ao GitHub o latest.json da release; havendo versão nova, um cartão oferece Atualizar agora. Ele baixa o pacote, confere a assinatura minisign com a chave pública embutida no app, instala e reabre (o AppImage é substituído no lugar; Windows e macOS usam o instalador). Instalações por .deb ou .rpm só mostram o aviso. Configurações desliga a consulta ao abrir e tem o botão Verificar agora. A consulta é uma requisição HTTP e não envia nada seu.
  • Assinatura digital (Ed25519): guara sign keygen | file | verify | recovery. Com uma chave configurada, recover e report assinam sozinhos o manifesto e o relatório. guara sign recovery confere a assinatura do manifesto e o hash de cada arquivo recuperado (e recusa caminhos do manifesto que saem da pasta). É Ed25519 comum sobre uma mensagem documentada, então o openssl também confere. Comparar a impressão digital da chave (--trust) diz de quem ela é; a hora assinada é a do relógio local, não um carimbo de terceiros.
  • Discos virtuais: QCOW2 com arquivo de apoio, snapshots de VMDK (pai por nome ou, no VirtualBox, por UUID; o filho é recusado se o CID do pai mudou) e DMG com chunks LZFSE.
  • CI com imagens de referência reais em Linux, macOS e Windows (antes eram puladas) e uma imagem XFS apagada pelo kernel de verdade, gerada com sudo no runner Linux.
  • Pipeline de release: os pacotes de atualização são assinados com uma chave guardada no ambiente release do repositório (só tags v*), e o latest.json é montado de uma vez por scripts/make-latest-json.py.

Alterado

  • O XFS passa a 🟡. Num XFS real (v5, exclusão do kernel) o inode e a lista de extensões são zerados, então o caminho por metadados não acha nada; o conteúdo de arquivos com estrutura reconhecível volta por carving, sem nome nem pasta. O caminho anterior só funcionava na exclusão simulada. O teste de nome e pasta fica ignored até o diário ser lido.
  • Os passos de apt do CI usam .deb em cache, tempo limite por tentativa e nova tentativa (levavam até 28 minutos num dia de espelho lento).
  • Dependências: ctutils 0.4.5 (RUSTSEC-2026-0385); novas ed25519-compact, lzfse_rust e tauri-plugin-updater.
  • O README e o ROADMAP passam a dizer que a verificação de atualização é o único uso da rede por padrão.

Notas

  • As versões anteriores à 1.3.0 não têm o atualizador: da 1.2.0, troque o AppImage à mão uma última vez. A primeira atualização dentro do app é da 1.3.0 para a próxima versão.
  • Ainda faltam: DMG com senha, conferência da identidade do pai em VHD, VHDX e QCOW2, carimbo de tempo de terceiros (RFC 3161), leitura do diário do XFS e validação de APFS com exclusão real (precisa de imagem de um Mac de verdade).
  • A saída da CLI continua em português.

[1.2.0] - 2026-10-22

Adicionado

  • Contêineres de disco virtual (somente leitura): QCOW2 (v2 e v3, clusters comprimidos com deflate ou zstd), VMDK (esparso, streamOptimized e descritores de texto com extensões flat e zero), VHD e VHDX (fixo, dinâmico e diferencial, seguindo a cadeia de pais) e DMG (UDIF com chunks zerados, brutos, ADC, zlib e bzip2). Abrem pelo mesmo caminho do E01 e do AFF4, então partições, sistemas de arquivos e volumes cifrados funcionam dentro deles. Imagens que seriam lidas errado são recusadas com o motivo: QCOW2 com arquivo de apoio ou cifrado, VMDK com pai ou em SEsparse, DMG protegido por senha, DMG com chunks LZFSE. O log do VHDX não é reproduzido.
  • Trilha de auditoria (auditoria.jsonl, guara audit): toda ação sobre a evidência (inspect, scan, recover, image, hash, search, verify, exportações e sessões) é registrada com hora UTC, usuário do sistema, máquina, versão e detalhes, encadeada por SHA-256. guara audit --verify aponta a entrada onde a cadeia quebra. Defina GUARA_EXAMINER para registrar o perito; senhas e chaves nunca são gravadas.
  • Relatório em PDF: guara report saida.pdf (e o botão de relatório da interface, pela extensão do arquivo) gera um PDF A4 com as mesmas seções do HTML, com gerador próprio, fontes padrão e nenhuma dependência nova. Os dois formatos passam a mostrar a situação da trilha de auditoria e o hash da última entrada.
  • Mapa de espaço livre do APFS: o gerenciador de espaço do contêiner (spaceman), os chunk-info blocks e os bitmaps são lidos, e a varredura profunda de um volume APFS cobre só os blocos não alocados. Contêineres que usam blocos de endereço de chunk-info voltam a varrer o volume todo, com aviso.
  • scripts/fetch-testdata.sh também baixa as imagens de disco virtual do dfvfs usadas nos testes dos contêineres.

Alterado

  • O aviso da partição APFS deixa de dizer que não há suporte a metadados; informa que o mapa de espaço livre é lido e que volumes cifrados (FileVault) precisam da chave.
  • O diálogo de relatório da interface explica que a extensão do arquivo escolhe PDF ou HTML.

Notas

  • Os contêineres foram conferidos por hash contra um leitor independente (7-Zip) em imagens reais do dfvfs e do VirtualBox, inclusive VHD e VHDX diferenciais; os fixtures pequenos de tests/fixtures/vdisk rodam no CI.
  • A exclusão no APFS continua testada só em simulação, por isso o APFS segue 🟡 no roadmap.
  • A saída da CLI continua em português.

[1.1.0] - 2026-10-20

Adicionado

  • Verificação automática da tradução (scripts/check-ui-i18n.mjs): varre o JS e o HTML da interface e os rótulos emitidos pelo núcleo em Rust, falha quando há texto em português sem entrada em inglês e quando há chave duplicada no dicionário. Roda no job de lint do CI.
  • Grupo RustCrypto no Dependabot: sha2, sha1, md-5, hmac, pbkdf2, ripemd, aes, argon2, cipher e digest passam a chegar numa única atualização, porque as traits só são compatíveis quando as versões andam juntas.

Alterado

  • Interface em inglês para mensagens do núcleo: os erros mais comuns do núcleo agora têm padrões com {n} no dicionário, então caminhos e tamanhos também são traduzidos.
  • Notificações no idioma escolhido: o núcleo monta as notificações de varredura e recuperação usando o idioma salvo da interface (ui_lang segue lang ou o locale do sistema quando não definido).
  • Datas em ISO 8601: as datas de metadados EXIF, PDF e MP4 saem como YYYY-MM-DDTHH:MM:SS (MP4 com Z) e são formatadas pela interface no locale escolhido, em vez de uma data brasileira já pronta.
  • RustCrypto em digest 0.11 / cipher 0.5: aes 0.9, sha2 0.11, sha1 0.11, md-5 0.11, hmac 0.13, pbkdf2 0.13, ripemd 0.2 e argon2 0.6. BitLocker, LUKS e FileVault 2 foram conferidos contra as imagens de referência.
  • Fluxo de release: tauri-action atualizado para v1; o job de publicação restaura o nome e as notas do CHANGELOG depois dos builds do desktop, para a v1 não sobrescrevê-las.
  • Documentação do Docker: --device=...:r foi verificado com um dispositivo de loop (inspect, scan, recover leem; escritas são recusadas). O texto sobre SMART/SYS_RAWIO agora diz o que foi e o que não foi verificado.
  • Workspace do Superset: setup, Run e teardown foram verificados em workspaces reais; duas interfaces recebem portas diferentes, e apagar um workspace encerra o guara ui.

Corrigido

  • Oito chaves duplicadas em apps/gui/ui/i18n-en.js (a última vencia em silêncio).
  • Trechos sem tradução separados por tags inline, rótulos de metadados e mensagens da pré-visualização que a passada manual anterior não pegou.

Notas

  • Nenhuma mudança na lógica de varredura ou recuperação. Os testes de volumes cifrados passam com GUARA_REQUIRE_FIXTURES=1.
  • A saída do terminal continua em português.

[1.0.1] - 2026-10-20

Adicionado

  • Imagem Docker do terminal (Dockerfile, docs/pt-BR/docker.md): para hospedeiros Linux, servidores sem desktop e arquivos de imagem forense. A interface gráfica não é servida pelo container.
  • Telas da interface no README e na nova docs/pt-BR/interface.md, tiradas da interface real sobre uma imagem de teste sintética.
  • Configuração de workspaces do Superset (.superset/): scripts de setup, run e teardown para workspaces em paralelo.

Alterado

  • Documentação: o inglês passa a ser o idioma principal. As versões em português ficam em *.pt-BR.md e docs/pt-BR/, com seletor de idioma no topo de cada arquivo.
  • Interface em inglês completada: opções de varredura, diálogo de imagem de disco, rótulos de metadados (EXIF, PDF, MP4), tipos de arquivo, campos de saúde do disco, contadores de seleção e mensagens da pré-visualização ainda apareciam em português.
  • Troca de idioma: o explorador agora se redesenha ao mudar o idioma em Configurações, e as datas e os títulos de mês acompanham.
  • Dependências: getrandom 0.4 e windows-sys 0.61. GitHub Actions atualizadas (checkout 7, setup-node 7, github-script 9).

Corrigido

  • Texto branco sobre fundo branco nas listas de Idioma e Ordenar com o tema escuro (inclusive Auto com o sistema em escuro).
  • O campo "Formato" do diálogo de imagem de disco era traduzido como "Form factor" em inglês.

Notas

  • Nenhuma mudança na lógica de varredura ou de recuperação. As atualizações de dependências tocam o token do servidor local da interface (getrandom) e as ligações de dispositivo do Windows (windows-sys).
  • Mensagens de erro do núcleo, notificações e a saída do terminal continuam em português.

[1.0.0] - 2026-10-19

Adicionado

  • Sistemas de arquivos com metadados: ext4 (inodes apagados e cópias antigas no diário), HFS+ (sobras de nós e diário), Btrfs (versões antigas das árvores; extensões zlib, zstd e lzo), XFS (inodes liberados e nomes de entradas liberadas) e APFS (instantâneos e nós antigos). ReFS ainda é só detectado.
  • Volumes cifrados: BitLocker (senha, chave de recuperação, .BEK, chave limpa), LUKS1/LUKS2 e FileVault 2 (Core Storage) abrem com a senha ou a chave e são varridos por dentro. As senhas nunca vão para o arquivo de sessão.
  • RAID e LVM: RAID 0, 1, 4, 5, 6, 10 e linear a partir de superblocos do mdadm, inclusive degradado; descoberta automática de nível, faixa, layout e ordem quando não há metadados; LVM2 (linear, em faixas, espelhado e RAID).
  • Imagens forenses: leitura de E01/Ex01 e AFF4; gravação de E01 e AFF4; comando guara verify.
  • Carving: JPEG fragmentado remontado (até três fragmentos), reconstrução do índice de MP4/MOV sem moov (H.264/HEVC, com vídeo de referência) e 24 formatos reconhecidos pela estrutura.
  • Interface: campos de senha, RAID, vídeo de referência e formato da imagem.

Corrigido

  • Abrir de novo uma sessão recente já aberta não cria mais cópias iguais na aba de sessões.

Limitações

  • Storage Spaces e ReFS (metadados) não suportados; XFS e APFS testados com exclusões simuladas; áudio não é reconstruído em MP4 sem moov.

[0.6.0] - 2026-10-18

Adicionado

  • Saúde do disco no estilo do CrystalDiskInfo: a tela do dispositivo mostra o estado (Bom, Atenção, Ruim) com a % de vida útil restante em SSD, temperatura, horas ligado, vezes ligado, total lido e total gravado. Também traz a ficha do dispositivo (modelo, firmware, nº de série, interface, modo de transferência, capacidade, rotação, formato e recursos como TRIM) e a tabela completa de atributos SMART, com ID, valor atual, pior, limite e bruto, e um indicador por atributo. Funciona com discos ATA/SATA e NVMe (nos NVMe, os campos do log de saúde viram a tabela).
  • Partições: ao abrir uma partição (/dev/sda1, /dev/nvme0n1p2, /dev/disk2s1), o SMART é lido do disco que a contém, e a tela avisa isso.
  • Comando guara health no terminal, com saída legível ou --json.

Alterado

  • Um atributo SMART com valor normalizado no limite de falha (ou abaixo dele) agora marca o disco como "Ruim", mesmo que a autoavaliação geral ainda passe.
  • Nova logo: a cabeça do lobo-guará recortada das trilhas de um disco, inteiras de um lado (recuperado) e quebradas do outro (perdido), nas cores do app. Na interface ela acompanha o tema escolhido (claro ou escuro).

[0.5.0] - 2026-10-18

Adicionado

  • Visualizador de bancos de dados: arquivos SQLite (.db, .sqlite, .sqlite3, .db3, .sdb, .sqlitedb, .storedata) abrem na pré-visualização com esquema, tabelas paginadas, blobs e datas reconhecidas. Leitor próprio, só leitura, tolerante a arquivos truncados ou corrompidos. Também recupera linhas apagadas a partir do espaço livre das páginas.
  • Saúde do disco (SMART): antes de varrer, o Guará consulta o smartctl (quando instalado) e o contador de erros do kernel. Se o disco parece com defeito, recomenda criar a imagem primeiro e pede confirmação antes da varredura profunda.
  • Notificação do sistema quando uma varredura longa ou uma recuperação termina, ou pausa por desconexão.
  • Retomar recuperação interrompida: um diário na pasta de destino faz o Guará pular o que já foi copiado e conferido; o resultado mostra quantos foram pulados.
  • Mapa das fotos com GPS no painel de detalhes (opcional, usa a internet) e botão para abrir no OpenStreetMap.
  • Interface em inglês, com escolha de idioma (Auto, Português, English) na nova janela de Configurações, que também controla notificações e mapas online.
  • Fechar a janela durante a varredura pergunta se você quer pausar e sair, sair sem pausar ou continuar.

Notas

  • Mensagens de erro vindas do núcleo e o terminal continuam em português.

[0.4.0] - 2026-10-18

Adicionado

  • Reconexão do disco: se o disco foi desconectado e voltou com outro nome (por exemplo /dev/sda virando /dev/sdb), o Guará o reconhece sozinho pelo tamanho e pela impressão digital do conteúdo (primeiro e último MiB) e religa a sessão. Se não conseguir, a tela mostra "Reconectar o disco" e "Escolher a origem…", com a lista dos discos conectados e o selo "mesmo disco". Uma origem com conteúdo diferente é recusada, a menos que você marque "usar mesmo assim" (útil para cópias).
  • Desconexão no meio da varredura: se as leituras falharem várias vezes seguidas, a varredura pausa sozinha com o ponto exato salvo e avisa para reconectar e continuar, em vez de seguir pulando blocos e terminar com buracos.
  • Sessões salvas automaticamente de tempos em tempos durante a varredura e ao terminar ou pausar, na pasta de configuração do usuário, e listadas em "Recentes" na barra lateral (guara sessions no terminal). Gravação atômica, sem risco de corromper a sessão se o programa fechar no meio.
  • Organização ao recuperar: pastas originais, por tipo, por data (ano e mês) ou tudo na mesma pasta (--organize no terminal).
  • Verificação de espaço livre no destino antes de copiar, com mensagem clara se não couber.

Corrigido

  • Em sessões pausadas não havia como escolher outra origem; só "Continuar", que falhava sem o disco.

[0.3.2] - 2026-10-18

Corrigido

  • Travamento ao clicar em um vídeo no app para Linux. O AppImage traz o WebKitGTK sem os plugins de mídia do GStreamer: ao criar um <video> ou <audio> o processo da página morria e a janela ficava congelada. Agora o app para Linux nunca cria esses elementos; vídeo e áudio têm o botão "Abrir no player do sistema", que copia o arquivo para uma pasta temporária do usuário e o abre no player padrão (inclusive quando o Guará roda como administrador). No navegador (guara ui) e nos demais sistemas o vídeo continua tocando dentro do app, mas só na tela grande, nunca no painel pequeno.

Alterado

  • Clicar na pré-visualização do painel de detalhes abre a visualização grande (imagem, PDF, documento e demais tipos), agora maior (até 98% da largura e 95% da altura da janela).

[0.3.1] - 2026-10-18

Adicionado

  • Filtros "Ocultar arquivos pequenos (menos de 30 KB)" e "Mais de 1 megapixel" no explorador, para separar fotos de ícones e miniaturas quando há milhares de imagens.

Corrigido

  • Abrir uma sessão salva falhava por inteiro quando a origem (por exemplo /dev/sdb) não estava acessível, e a mensagem de erro era vaga. Agora a sessão sempre abre: dá para navegar, exportar e gerar relatório, e o botão "Escolher a origem…" reconecta o disco ou uma imagem para voltar a pré-visualizar e recuperar.
  • Mensagens claras quando o arquivo de sessão não pode ser lido (por exemplo, criado como administrador em /root) ou não é uma sessão válida.
  • Teste automático garante que sessões gravadas pela v0.1.0 continuam abrindo.
  • Carving de PNG: texto ASCII logo após um PNG truncado era lido como um bloco de ~1,9 GB e gerava "fotos" gigantes de confiança baixa. Agora o bloco precisa ser plausível (tipo válido, tamanho razoável, dentro do disco) e o arquivo termina no último bloco válido.
  • Retomar uma varredura de sessão sem a origem disponível agora avisa na hora, em vez de falhar depois.
  • Rodando como administrador (sudo/pkexec), as pastas sugeridas passam a ser as do usuário que abriu o Guará e tudo que ele grava (sessões, CSV, relatórios, imagens e arquivos recuperados, com as pastas criadas) fica com o dono e as permissões desse usuário, e não do root.

[0.3.0] - 2026-10-18

Adicionado

  • Explorador de arquivos: grade de miniaturas e lista com rolagem virtual (milhares de itens), agrupamento por dia/mês, navegação lateral por tipo, data da foto, pasta, câmera e confiança, seleção com Ctrl/Shift/teclado, painel de detalhes e visualização rápida em tela cheia.
  • Miniaturas rápidas geradas no núcleo (JPEG com redução na decodificação, PNG, GIF, BMP, WebP), com orientação EXIF e uso da miniatura embutida quando a imagem está danificada.
  • Metadados: EXIF (câmera, lente, datas, GPS), PDF, Office/OpenDocument e MP4/MOV; datas de criação, modificação e acesso do NTFS, FAT e exFAT.
  • Perícia: hashes MD5, SHA-1 e SHA-256, guara hash, guara search (texto no disco inteiro em UTF-8 e UTF-16), guara export (CSV), guara report (relatório HTML com cadeia de custódia) e detecção de duplicadas. Tudo também na interface gráfica.
  • Nova identidade visual: logo de pixels que se juntam num lobo-guará de silhueta lisa.

Alterado

  • A barra inferior e o painel de progresso não são mais recriados a cada atualização.
  • Textos sem travessões.

[0.2.0] - 2026-10-18

Adicionado

  • Pré-visualização completa: imagem (zoom), vídeo (MP4 e outros), áudio, PDF (pdf.js incluso, funciona offline), texto, Word/Excel/PowerPoint/OpenDocument, conteúdo de ZIP e hexadecimal; tela cheia com navegação por teclado (↑ ↓ ← → Espaço Esc). O conteúdo é lido sob demanda com suporte a Range, sem gravar em disco.
  • Seletor de tema Auto / Claro / Escuro; a escolha é salva e vale também no app reiniciado como administrador.
  • Nova identidade visual em verde-azulado, com logo de pixels que se juntam até formar um lobo-guará.

Corrigido

  • Reiniciar como administrador no Linux: no AppImage o executável fica num ponto de montagem inacessível ao root; agora usa o próprio .AppImage, mostra o motivo se falhar e fecha o app antigo só quando o novo abre.
  • Barra de ações inferior piscava a cada atualização; agora é criada uma vez e só atualiza o texto. O painel de progresso também deixou de ser recriado a cada ciclo.
  • FAT32 em mídias pequenas (menos de 65 525 clusters) não era reconhecido.
  • O tema não acompanhava a escolha ao abrir como root (o WebView do root usava outro tema do sistema).

[0.1.0] - 2026-10-18

Adicionado

  • Núcleo em Rust, somente leitura na origem: acesso a dispositivos e imagens (Windows, Linux, macOS).
  • Leitura de MBR/GPT, detecção de partições perdidas e de espaço não particionado.
  • Metadados de NTFS, FAT12/16/32 e exFAT: arquivos apagados com nome, pasta e data.
  • Carving por estrutura de JPEG, PNG, GIF, BMP, PDF, ZIP e derivados (DOCX, XLSX, PPTX, ODF, EPUB, APK, JAR), MP4/MOV/HEIC, AVI/WAV/WebP, SQLite, 7z, OLE, MP3 e PE.
  • Mapa de blocos livres do ext2/3/4 para varrer apenas o espaço livre.
  • Fusão sem duplicatas e confiança (alta/média/baixa) por arquivo.
  • Detecção de volumes cifrados (BitLocker, LUKS) e aviso de TRIM em SSD.
  • Imagem forense tolerante a setores ruins, pausar/retomar varredura e sessões salvas.
  • Recuperação com SHA-256 e manifesto; recusa de destino no disco de origem.
  • CLI guara e interface gráfica (Tauri) com tema claro/escuro e layout responsivo; modo guara ui no navegador.
  • CI (Linux/Windows/macOS) e releases automáticas por tag.