You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Neuer persistenter `SyncDebugLogger`, der strukturierte Einträge in `sync_debug.log` schreibt — hilft beim Diagnostizieren von Hintergrund-Sync-Problemen
17
+
- Loggt jedes `SyncWorker`-Ergebnis (Start, Erfolg, Soft-Fehler, Retry, finales Scheitern)
18
+
- Schema um `attempt`-Zähler und `holder` (Prozess-Tag) erweitert, um App-/Worker-Kontexte zu unterscheiden
19
+
- WIFI_CONNECT-Events mit `first|change`-Grund annotiert
20
+
- Expliziter finaler Status, wenn WorkManager Retries verwirft — keine unsichtbaren Fehler mehr
21
+
-**Standardmäßig deaktiviert** ([26cdf47](https://github.com/inventory69/simple-notes-sync/commit/26cdf47)) — in den Einstellungen → Debug aktivierbar, um beim Melden von Sync-Problemen Logs zu sammeln
22
+
23
+
**Cold-Start-Guard nach langer Prozess-Pause überspringen** ([17d57d5](https://github.com/inventory69/simple-notes-sync/commit/17d57d5))
24
+
- Nach längerer Inaktivität (z. B. über Nacht) wird der Cold-Start-Sync-Guard übersprungen, damit der erste Sync sofort beim Resume läuft
25
+
26
+
### 🐛 Fehlerbehebungen
27
+
28
+
**Zuverlässiger WiFi-Connect-Sync-Trigger**
29
+
- Validiertes WiFi (nicht nur SSID) erforderlich, bevor Sync ausgelöst wird ([a03eadf](https://github.com/inventory69/simple-notes-sync/commit/a03eadf))
30
+
- WiFi-Trigger-Sync wird bei vorübergehender Nicht-Erreichbarkeit erneut versucht ([bea0558](https://github.com/inventory69/simple-notes-sync/commit/bea0558))
31
+
- Globaler Cooldown wird für WiFi-Connect-Trigger umgangen — der erste Sync nach Reconnect läuft tatsächlich ([5195ee0](https://github.com/inventory69/simple-notes-sync/commit/5195ee0))
32
+
- WiFi-Trigger-Backoff bei 30 s linear gedeckelt, um ausufernde Verzögerungen zu vermeiden ([5ff2a70](https://github.com/inventory69/simple-notes-sync/commit/5ff2a70))
33
+
- WiFi-Fallback-Intervall auf 30 min verkürzt für schnellere Process-Death-Recovery ([42e6a64](https://github.com/inventory69/simple-notes-sync/commit/42e6a64))
34
+
35
+
**Günstigere, robustere Erreichbarkeits-Prüfung**
36
+
- Günstiger Reachability-Check vor teurem PROPFIND ([f46f326](https://github.com/inventory69/simple-notes-sync/commit/f46f326))
37
+
-`monitoringStartTime` als volatile markiert und auf `elapsedRealtime()` umgestellt — vermeidet Wall-Clock-Drift ([7f980fb](https://github.com/inventory69/simple-notes-sync/commit/7f980fb))
-**Chinesisch (Vereinfacht) aktualisiert** — danke an [heretic43](https://hosted.weblate.org/user/heretic43/) ([7a2defb](https://github.com/inventory69/simple-notes-sync/commit/7a2defb))
58
+
- Neue Locales `in` und `nb` in `locales_config.xml` registriert ([349e972](https://github.com/inventory69/simple-notes-sync/commit/349e972)); `ru`, `it`, `hi` in [84a5282](https://github.com/inventory69/simple-notes-sync/commit/84a5282)
59
+
60
+
### 🙏 Danksagungen
61
+
62
+
Ein riesiges Dankeschön an die Weblate-Übersetzer, die Simple Notes Sync in immer mehr Sprachen verfügbar machen:
63
+
-**Arif Budiman** — Indonesisch
64
+
-**xdpirate** — Norwegisch Bokmål
65
+
-**Jean-Pierre** — Italienisch
66
+
-**Silent Coder** — Hindi
67
+
-**PONYATIN** — Russisch
68
+
-**heretic43** — Chinesisch (Vereinfacht)
69
+
70
+
---
71
+
72
+
## [2.3.1] - 2026-04-24
73
+
74
+
> Nur als Beta-Release im Google Play veröffentlicht. Nicht auf F-Droid erschienen; die Änderungen sind in v2.4.0 enthalten.
75
+
76
+
### 🐛 Fehlerbehebungen
77
+
78
+
**Sichtbarkeits-bewusster Fehler-Banner bei Soft-Sync-Fehlern** ([c4a40f8](https://github.com/inventory69/simple-notes-sync/commit/c4a40f8))
79
+
- Stille Hintergrund-Sync-Fehler erscheinen nicht mehr als roter Fehler-Banner — sie setzen sauber zu IDLE zurück
80
+
- Fehler werden nur dann zu einem sichtbaren Banner, wenn der Nutzer die App tatsächlich aktiv ansieht
81
+
- Neue `SyncStateManager.errorIfVisible()`-API wird von `SyncWorker` und `MainViewModel.triggerAutoSync` für alle Soft-Fehler-Pfade verwendet
82
+
- Verhindert verwirrende kurzzeitige Warnungen bei Hintergrund-Retries
- New persistent `SyncDebugLogger` writing structured entries to `sync_debug.log` for diagnosing background-sync issues
17
+
- Logs every `SyncWorker` outcome (start, success, soft errors, retries, final failure)
18
+
- Schema enriched with `attempt` counter and `holder` (process tag) to distinguish app/worker contexts
19
+
- WIFI_CONNECT events annotated with `first|change` reason for clarity
20
+
- Explicit final outcome emitted when WorkManager drops retries, so failures aren't invisible
21
+
-**Disabled by default** ([26cdf47](https://github.com/inventory69/simple-notes-sync/commit/26cdf47)) — enable in Settings → Debug to collect logs when reporting sync issues
22
+
23
+
**Bypass Cold-Start Guard After Long Process Gap** ([17d57d5](https://github.com/inventory69/simple-notes-sync/commit/17d57d5))
24
+
- After a long period without app process activity (e.g. overnight), the cold-start sync guard is bypassed so the first sync runs immediately on resume
25
+
26
+
### 🐛 Bug Fixes
27
+
28
+
**Reliable WiFi-Connect Sync Trigger**
29
+
- Require validated WiFi (not just SSID) before triggering sync ([a03eadf](https://github.com/inventory69/simple-notes-sync/commit/a03eadf))
30
+
- Retry WiFi-trigger sync on transient unreachability ([bea0558](https://github.com/inventory69/simple-notes-sync/commit/bea0558))
31
+
- Bypass global cooldown for WiFi-connect trigger so the first sync after reconnect actually runs ([5195ee0](https://github.com/inventory69/simple-notes-sync/commit/5195ee0))
32
+
- Cap WiFi-trigger backoff at 30 s linear to avoid runaway delays ([5ff2a70](https://github.com/inventory69/simple-notes-sync/commit/5ff2a70))
33
+
- Shorten WiFi-fallback interval to 30 min for faster process-death recovery ([42e6a64](https://github.com/inventory69/simple-notes-sync/commit/42e6a64))
34
+
35
+
**Cheaper, More Robust Reachability**
36
+
- Cheap reachability check before expensive PROPFIND ([f46f326](https://github.com/inventory69/simple-notes-sync/commit/f46f326))
37
+
-`monitoringStartTime` made volatile and switched to `elapsedRealtime()` to avoid wall-clock skew ([7f980fb](https://github.com/inventory69/simple-notes-sync/commit/7f980fb))
38
+
- Drop redundant onResume sync cooldown ([69a7b05](https://github.com/inventory69/simple-notes-sync/commit/69a7b05))
39
+
40
+
**Settings & Logging**
41
+
- Make debug-log export robust on all devices (handles SAF edge cases) ([bbf466b](https://github.com/inventory69/simple-notes-sync/commit/bbf466b))
42
+
- Clear `sync_debug.log` on the Delete-Logs button so users can reset the log easily ([caa329e](https://github.com/inventory69/simple-notes-sync/commit/caa329e))
43
+
44
+
### ♻️ Internal
45
+
46
+
**WebDAV Server Migration** ([41ecb13](https://github.com/inventory69/simple-notes-sync/commit/41ecb13))
47
+
- Self-hosted reference server migrated from `bytemark/webdav` to `hacdias/webdav` for active maintenance and better protocol coverage
48
+
- No user-visible change for app users; affects the optional bundled server in `server/`
49
+
50
+
### 🌍 Translations
51
+
52
+
-**New language: Indonesian (`in`)** — thanks to [Arif Budiman](https://hosted.weblate.org/user/aribudiman/) ([c537455](https://github.com/inventory69/simple-notes-sync/commit/c537455), [6bc7a4e](https://github.com/inventory69/simple-notes-sync/commit/6bc7a4e))
-**New language: Italian (`it`)** — thanks to [Jean-Pierre](https://hosted.weblate.org/user/Jeannot/) ([3467756](https://github.com/inventory69/simple-notes-sync/commit/3467756), [4bf449c](https://github.com/inventory69/simple-notes-sync/commit/4bf449c))
55
+
-**New language: Hindi (`hi`)** — thanks to [Silent Coder](https://hosted.weblate.org/user/silentcoder/) ([2c54735](https://github.com/inventory69/simple-notes-sync/commit/2c54735), [9ba64fd](https://github.com/inventory69/simple-notes-sync/commit/9ba64fd), [ecfb129](https://github.com/inventory69/simple-notes-sync/commit/ecfb129))
-**Chinese (Simplified) updated** — thanks to [heretic43](https://hosted.weblate.org/user/heretic43/) ([7a2defb](https://github.com/inventory69/simple-notes-sync/commit/7a2defb))
58
+
- New locales `in` and `nb` registered in `locales_config.xml` ([349e972](https://github.com/inventory69/simple-notes-sync/commit/349e972)); `ru`, `it`, `hi` registered in [84a5282](https://github.com/inventory69/simple-notes-sync/commit/84a5282)
59
+
60
+
### 🙏 Acknowledgements
61
+
62
+
A huge thank you to the Weblate translators making Simple Notes Sync available in more languages:
63
+
-**Arif Budiman** — Indonesian
64
+
-**xdpirate** — Norwegian Bokmål
65
+
-**Jean-Pierre** — Italian
66
+
-**Silent Coder** — Hindi
67
+
-**PONYATIN** — Russian
68
+
-**heretic43** — Chinese (Simplified)
69
+
70
+
---
71
+
72
+
## [2.3.1] - 2026-04-24
73
+
74
+
> Beta-only release on Google Play. Not published on F-Droid; the changes are included in v2.4.0.
75
+
76
+
### 🐛 Bug Fixes
77
+
78
+
**Visibility-Aware Error Banner on Soft Sync Errors** ([c4a40f8](https://github.com/inventory69/simple-notes-sync/commit/c4a40f8))
79
+
- Silent background sync errors no longer surface as a red error banner — they reset cleanly to IDLE
80
+
- Errors are only promoted to a visible banner when the user is actively viewing the app
81
+
- New `SyncStateManager.errorIfVisible()` API used by `SyncWorker` and `MainViewModel.triggerAutoSync` for all soft-error paths
82
+
- Prevents user-confusing transient warnings during background retries
0 commit comments