Skip to content

Commit 71de821

Browse files
committed
chore(release): prepare v2.4.0
- Update build.gradle.kts comment: v2.3.2 → v2.4.0 Sync Reliability - Add CHANGELOG.md and CHANGELOG.de.md entries for v2.4.0 and v2.3.1 - Add fastlane changelogs en-US/32.txt and de-DE/32.txt
1 parent 26cdf47 commit 71de821

5 files changed

Lines changed: 170 additions & 2 deletions

File tree

CHANGELOG.de.md

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,81 @@ Das Format basiert auf [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
88

99
---
1010

11+
## [2.4.0] - 2026-05-04
12+
13+
### ✨ Neue Features
14+
15+
**Persistentes Sync-Debug-Log** ([1de5fdb](https://github.com/inventory69/simple-notes-sync/commit/1de5fdb), [1234f6c](https://github.com/inventory69/simple-notes-sync/commit/1234f6c), [d8d4284](https://github.com/inventory69/simple-notes-sync/commit/d8d4284), [13defa9](https://github.com/inventory69/simple-notes-sync/commit/13defa9), [62e75e7](https://github.com/inventory69/simple-notes-sync/commit/62e75e7))
16+
- 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))
38+
- Redundanten onResume-Sync-Cooldown entfernt ([69a7b05](https://github.com/inventory69/simple-notes-sync/commit/69a7b05))
39+
40+
**Einstellungen & Logging**
41+
- Debug-Log-Export auf allen Geräten robust (SAF-Edge-Cases behandelt) ([bbf466b](https://github.com/inventory69/simple-notes-sync/commit/bbf466b))
42+
- Der „Logs löschen"-Button löscht jetzt auch `sync_debug.log` ([caa329e](https://github.com/inventory69/simple-notes-sync/commit/caa329e))
43+
44+
### ♻️ Intern
45+
46+
**WebDAV-Server-Migration** ([41ecb13](https://github.com/inventory69/simple-notes-sync/commit/41ecb13))
47+
- Self-hosted Referenz-Server von `bytemark/webdav` auf `hacdias/webdav` migriert — aktive Wartung und bessere Protokoll-Abdeckung
48+
- Keine Auswirkungen für App-Nutzer; betrifft nur den optionalen mitgelieferten Server in `server/`
49+
50+
### 🌍 Übersetzungen
51+
52+
- **Neue Sprache: Indonesisch (`in`)** — danke an [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))
53+
- **Neue Sprache: Norwegisch Bokmål (`nb`)** — danke an [xdpirate](https://hosted.weblate.org/user/xdpirate/) ([3ce9164](https://github.com/inventory69/simple-notes-sync/commit/3ce9164), [d11b34d](https://github.com/inventory69/simple-notes-sync/commit/d11b34d))
54+
- **Neue Sprache: Italienisch (`it`)** — danke an [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+
- **Neue Sprache: Hindi (`hi`)** — danke an [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))
56+
- **Neue Sprache: Russisch (`ru`)** — danke an [PONYATIN](https://hosted.weblate.org/user/PONYATIN/) ([4078a59](https://github.com/inventory69/simple-notes-sync/commit/4078a59), [f96055e](https://github.com/inventory69/simple-notes-sync/commit/f96055e), [1eeebc1](https://github.com/inventory69/simple-notes-sync/commit/1eeebc1))
57+
- **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
83+
84+
---
85+
1186
## [2.3.0] - 2026-04-18
1287

1388
### 🛡️ Sicherheit

CHANGELOG.md

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,81 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
88

99
---
1010

11+
## [2.4.0] - 2026-05-04
12+
13+
### ✨ New Features
14+
15+
**Persistent Sync Debug Logger** ([1de5fdb](https://github.com/inventory69/simple-notes-sync/commit/1de5fdb), [1234f6c](https://github.com/inventory69/simple-notes-sync/commit/1234f6c), [d8d4284](https://github.com/inventory69/simple-notes-sync/commit/d8d4284), [13defa9](https://github.com/inventory69/simple-notes-sync/commit/13defa9), [62e75e7](https://github.com/inventory69/simple-notes-sync/commit/62e75e7))
16+
- 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))
53+
- **New language: Norwegian Bokmål (`nb`)** — thanks to [xdpirate](https://hosted.weblate.org/user/xdpirate/) ([3ce9164](https://github.com/inventory69/simple-notes-sync/commit/3ce9164), [d11b34d](https://github.com/inventory69/simple-notes-sync/commit/d11b34d))
54+
- **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))
56+
- **New language: Russian (`ru`)** — thanks to [PONYATIN](https://hosted.weblate.org/user/PONYATIN/) ([4078a59](https://github.com/inventory69/simple-notes-sync/commit/4078a59), [f96055e](https://github.com/inventory69/simple-notes-sync/commit/f96055e), [1eeebc1](https://github.com/inventory69/simple-notes-sync/commit/1eeebc1))
57+
- **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
83+
84+
---
85+
1186
## [2.3.0] - 2026-04-18
1287

1388
### 🛡️ Security

android/app/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ android {
2020
applicationId = "dev.dettmer.simplenotes"
2121
minSdk = 24
2222
targetSdk = 36
23-
versionCode = 32 // 🆕 v2.3.2 - Sync Debug
24-
versionName = "2.4.0" // 🆕 v2.3.2 - Sync Debug
23+
versionCode = 32 // 🆕 v2.4.0 - Sync Reliability
24+
versionName = "2.4.0" // 🆕 v2.4.0 - Sync Reliability
2525

2626
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
2727
// 🆕 v2.4.0: Diagnostic phase finished (long-run log validated all v2.4.0 fixes).
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
🔧 v2.4.0 — Zuverlässigerer Sync
2+
3+
• Sync startet nach WLAN-Wechsel & langen Pausen wieder zuverlässig
4+
• Kein falscher Fehler-Banner mehr bei automatischen Hintergrund-Syncs
5+
• Optionales Sync-Log für Problemmeldungen (standardmäßig aus, in Einstellungen)
6+
• Neue Sprachen: Italienisch, Hindi, Russisch, Indonesisch, Norwegisch Bokmål
7+
• Chinesisch aktualisiert
8+
9+
Danke an Jean-Pierre, Silent Coder, PONYATIN, Arif Budiman, xdpirate & heretic43!
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
🔧 v2.4.0 — More reliable sync
2+
3+
• Sync now resumes reliably after WiFi reconnects & long app breaks
4+
• No more false error alerts during quiet background retries
5+
• Optional sync log for reporting issues (off by default, enable in Settings)
6+
• New languages: Italian, Hindi, Russian, Indonesian, Norwegian Bokmål
7+
• Chinese translation updated
8+
9+
Thanks to Jean-Pierre, Silent Coder, PONYATIN, Arif Budiman, xdpirate & heretic43!

0 commit comments

Comments
 (0)