chore(docs): update roadmap and add Sync Fix report, remove desktop-app from compose config

- Marked Phase 3 of roadmap as complete and adjusted next steps.
- Added detailed report documenting the Sync type mismatch resolution.
- Commented out the `desktop-app` service from `dc-gui.yaml`.
This commit is contained in:
2026-02-01 18:48:00 +01:00
parent aa0c07904f
commit f00cc7681f
5 changed files with 61 additions and 30 deletions
@@ -0,0 +1,33 @@
---
type: Report
date: 2026-02-01
author: Curator
status: FINAL
---
# Report: Fix Sync Type Mismatch (String vs Long)
## 1. Problembeschreibung
Es wurde eine kritische Inkonsistenz im Delta-Sync-Mechanismus zwischen Frontend und Backend festgestellt.
* **Frontend:** Der generische `SyncManager` nutzte einen String-Cursor (UUIDv7), was zu einem Typ-Fehler führte.
* **Backend:** Der `PingController` erwartete strikt einen `Long` (Timestamp) für den Parameter `lastSyncTimestamp`.
## 2. Durchgeführte Maßnahmen
### 2.1 Backend (`ping-service`)
* **Parameter-Umbenennung:** Der Parameter im `PingController` wurde von `lastSyncTimestamp` zu `since` umbenannt, um der Konvention des Frontend-SyncManagers zu entsprechen.
* **Tests:** Unit- und Integrationstests (`PingControllerTest`) wurden aktualisiert.
### 2.2 Frontend (`meldestelle-portal`)
* **Repository-Anpassung:** `PingEventRepositoryImpl` holt nun explizit den `last_modified` Timestamp aus der Datenbank (via neuer SQL-Query `selectLatestPingEventTimestamp`).
* **Typ-Konvertierung:** Der Timestamp wird als String an den `SyncManager` übergeben, der ihn als URL-Parameter anhängt. Spring Boot konvertiert diesen String automatisch zurück in einen `Long`.
### 2.3 Contracts (`ping-api`)
* Das Interface `PingApi` wurde aktualisiert: `syncPings(since: Long)`.
## 3. Ergebnis
* Die Typ-Sicherheit ist hergestellt.
* Tests im Backend laufen erfolgreich durch.
* Der Sync-Mechanismus ist nun robust und bereit für den produktiven Einsatz.
## 4. Status
**RESOLVED**