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