Only notify clients actually affected by a conflict
Bisher bekam jeder Arbeitsplatz, der den Konflikt-Kontakt im Adressbuch hat, den Hinweis - auch wenn er den Wert gar nicht selbst gepflegt hat. Jetzt zeigt ein Client eine fremde Konflikt-Notiz nur, wenn er den Kontakt hat UND sein eigener Feldwert vom uebernommenen (Gewinner-)Wert abweicht. Die Pruefung laeuft VOR dem Sync (gegen den eigenen Mapping-Snapshot), bevor der Sync den Stand auf den Gewinner-Wert angleicht. - FieldConflict/ConflictNotice: stabiler FieldKey zusaetzlich zum Anzeige-Label. - ContactMerger: GetValue/ValuesEqual per FieldKey (telefon-normalisiert). - ConflictNotifier.GetPending: Filter "eigener Wert != Gewinner-Wert", bekommt StarfaceId -> eigener Kontaktstand. - MainForm zeigt die Hinweise jetzt vor dem Sync und liefert den eigenen Stand aus den Mapping-Snapshots. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+6
-5
@@ -40,11 +40,12 @@ Versionsschema ist `x.x.x.x` (siehe `release.sh`).
|
||||
|
||||
- **Clientuebergreifende Konflikt-Hinweise (Mehrplatz).** Wird ein echter
|
||||
Feld-Konflikt aufgeloest, legt der Client eine Notiz im gemeinsamen Verzeichnis
|
||||
(`conflicts/`) ab - verschluesselt nach Kontakt (StarfaceId). Jeder andere
|
||||
Arbeitsplatz, der denselben Kontakt pflegt, bekommt die Meldung beim naechsten
|
||||
Sync als Tray-Hinweis angezeigt (auch der, dessen Wert ueberschrieben wurde).
|
||||
Bereits gezeigte Notizen merkt sich jeder Client lokal; alte Notizen werden
|
||||
nach 7 Tagen aufgeraeumt.
|
||||
(`conflicts/`) ab - zugeordnet nach Kontakt (StarfaceId). Ein anderer
|
||||
Arbeitsplatz zeigt die Meldung beim naechsten Sync nur an, wenn er den Kontakt
|
||||
selbst hat UND sein eigener Feldwert vom uebernommenen Wert abweicht - so wird
|
||||
der ueberschriebene Arbeitsplatz gewarnt, waehrend bereits aktuelle Clients
|
||||
nicht benachrichtigt werden. Bereits gezeigte Notizen merkt sich jeder Client
|
||||
lokal; alte Notizen werden nach 7 Tagen aufgeraeumt.
|
||||
- **Clientuebergreifende Sync-Sperre (Mehrplatz).** In den Einstellungen laesst
|
||||
sich ein gemeinsames Verzeichnis (Netzlaufwerk/UNC) hinterlegen. Synct ein
|
||||
Arbeitsplatz, legt er dort eine Lock-Datei an (atomar via `CreateNew`); andere
|
||||
|
||||
Reference in New Issue
Block a user