--- name: project-naechste-schritte description: "Stand der Sync-Arbeit + offene Punkte (aktualisiert 2026-06-03)" metadata: node_type: memory type: project originSessionId: da22c6d7-9f9f-4834-b8f6-bdd06d220c38 --- **Sync ist abgearbeitet (2026-06-03, Branch development):** - Inflight-Recovery bei init: erledigt (`outbox.recoverInflight()` in `init`). - finalize-Status-Semantik neu: SUCCESS/WARNING -> reconcile (WARNING zusätzlich über injizierten Notifier -> Toast severity WARNING via `outbox.setNotifier` in main.js), FAILED -> badBox (terminal), QUEUED -> zurück in die Outbox + `sendCount++`, kein reconcile. - Retry/Backoff im `background-sync`: transiente Sendefehler + QUEUED brechen den Loop ab und planen verzögerten Re-Nudge (exponentiell `min(1s*2^(n-1),60s)`+Jitter aus `sendCount`), Aufgabe nach 8 Versuchen -> badBox. Commit `42a595a`. - Tests TDD: frontend-common 43 grün (`backoff.spec`, `outbox.spec`, `background-sync.spec`). **Wichtige Einschränkung (latent):** Das BE emittiert weiterhin nur SUCCESS/FAILED (`command.service.ts:51`, `domain-exception.util.ts:14`). WARNING/QUEUED kommen produktiv noch NICHT vor — die neue Behandlung ist Vorsorge für den Tag, an dem das BE asynchron/mit Hinweis antwortet. Wenn das gebaut wird, braucht der FE-Sync keine Änderung mehr. **Migration ist abgeschlossen** (Commit `8e98c10` + Doku `docs/migration-regeln.md`, Commit `f269137`): Kunden-Mobile aus Kontakt-Telefon, Keyless-Hash-Dedup für Kontakte/Adressen. Siehe [[project-sap-mock-fixtures]]. **Noch offen / mögliche nächste Themen:** origin-Semantik (SAP-Abgleich vs. Länder-Mapping, siehe [[project_montag_offen]]), und die Folgethemen aus [[project-cleanup-timeline]] (User-DB, Postgres-Umstieg). „Näheres zur Lift-Regel" wollte Marcus noch nachliefern.