Release v1.0.2 – Stromausfall-Schutz

Atomare Schreibvorgänge (schützt vor Dateikorruption durch Stromausfall):
- _atomic_write(): schreibt erst .tmp, sync auf Disk, dann os.replace() (POSIX-atomar)
- save_cfg() / save_state() verwenden _atomic_write statt write_text()
- Update-Install schreibt app.py.tmp, fsync, dann atomares Umbenennen

Korruptionsschutz beim Laden:
- load_cfg() / load_state(): bei JSON-Fehler Warnung loggen, .corrupt-Backup anlegen,
  sicher mit Standardwerten weiterlaufen statt zu crashen

Schutz vor unvollständigen Kopien:
- Jede Datei wird als .picopy_tmp kopiert, erst nach Abschluss atomar umbenannt
- Duplikat-Skip prüft Dateigröße: stimmt sie nicht überein, war die Datei abgeschnitten
  und wird automatisch neu kopiert
- .picopy_incomplete Marker-Datei im Zielordner während des Kopiervorgangs
- Veraltete .picopy_tmp-Dateien werden beim Kopierstart bereinigt
- subprocess.run(['sync']) vor dem Unmounten der Laufwerke

Startup-Bereinigung:
- cleanup_stale_mounts() beim Start: hängende /mnt/picopy-Mounts aus vorherigen
  Abstürzen werden sauber per umount -l entfernt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-09 02:11:18 +02:00
parent b54fe0cd60
commit e96ce8a7d3
2 changed files with 88 additions and 22 deletions

View File

@@ -1 +1 @@
1.0.1
1.0.2