Files
Vault/CHANGELOG.md

3.0 KiB

Changelog

1.0.0 (2026-01-30)

První kompletní verze aplikace Vault.

Core

  • file_entry.py - Immutable dataclass pro reprezentaci souboru (cesta, SHA-256 hash, velikost, timestampy)
  • manifest.py - Správa vault metadat (vault_id, lokace replik, seznam souborů). Ukládání/načítání z .vault/manifest.json. Deduplikace lokací s resolved cestami
  • lock.py - Exkluzivní přístup k vault pomocí fcntl (LOCK_EX). Detekce PID vlastníka
  • image_manager.py - Vytváření sparse .vault souborů, formátování exFAT (mkfs.exfat), resize (truncate + fsck), dotaz na info
  • container.py - Mount/unmount přes udisksctl (loop device, bez root oprávnění)
  • file_watcher.py - Detekce změn souborů přes watchdog/inotify (create, modify, delete, move). Podpora ignore patterns
  • file_sync.py - Kopírování souborů s progress callbackem (chunked, 1MB). Sync na úrovni jednotlivých souborů (SHA-256 + timestamp porovnání)
  • sync_manager.py - Orchestrace synchronizace mezi replikami. Real-time propagace změn přes file watcher. Manifest-based porovnání pro reconnect sync. Pause/resume
  • vault.py - Hlavní třída Vault orchestrující vše:
    • Otevření/zavření vault s lock managementem
    • Automatické mountování sekundárních replik z manifestu
    • Přidání/odebrání replik s full sync
    • Manuální synchronizace
    • Resize všech replik (unmount → resize → remount)
    • Detekce zaplnění (>90% varování)
    • Polling dostupnosti replik (30s) s auto-reconnect
    • Konzistentní porovnání cest pomocí Path.resolve()
    • Graceful shutdown (SIGINT/SIGTERM)

GUI (System Tray)

  • tray_app.py - System tray daemon s kontextovým menu:
    • Vytvořit/otevřít/zavřít vault
    • Přidat repliku, spravovat repliky
    • Synchronizovat, zvětšit vault
    • Stavy ikon: šedá (zavřeno), zelená (otevřeno), žlutá (částečné repliky), modrá (sync), červená (chyba)
    • 5s status update timer, 30s replica check timer
    • Varování při zaplnění >90%
  • notifications.py - Systémové notifikace přes notify-send
  • dialogs/new_vault.py - Dialog pro vytvoření vault (název, cesta, velikost s quick buttony 1/5/10/50 GB)
  • dialogs/open_vault.py - Dialog pro otevření existujícího .vault souboru
  • dialogs/manage_replicas.py - Tabulka replik se statusem (primární/sekundární, připojeno/odpojeno) a tlačítkem pro odebrání
  • dialogs/sync_progress.py - Progress dialog se progress barem, aktuálním souborem, logem a cancel tlačítkem
  • dialogs/resize_vault.py - Dialog pro zvětšení vault s aktuálním využitím a spinnerem pro novou velikost

Testy

  • 130 unit testů pokrývajících všechny core moduly
  • test_file_entry, test_manifest, test_lock, test_image_manager, test_container
  • test_file_watcher, test_file_sync, test_sync_manager, test_vault

Bugfix

  • Oprava duplicitního zobrazení replik při otevření sekundárního kontejneru - všechny cesty se nyní porovnávají přes Path.resolve() pro kanonickou formu