Files
Vault/CHANGELOG.md

53 lines
3.0 KiB
Markdown
Raw Permalink Normal View History

2026-01-30 07:07:11 +01:00
# 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