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))
- 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