3.4 KiB
3.4 KiB
Changelog
1.0.1 (2026-01-30)
GUI
- dialogs/about.py - Dialog "O programu" zobrazující název, verzi, autora a popis. Červený DEV badge pokud je aktivní vývojářský režim (ENV_DEBUG)
- tray_app.py - Položka "O programu..." v tray menu
Interní
- version.py - Modul pro získání verze z pyproject.toml s fallbackem do _version.py
- _version.py - Automaticky aktualizovaný fallback soubor s poslední známou verzí
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