The Rebuild Matter Endpoint Map… dialog and log warn that rebuilding will duplicate accessories in already-paired ecosystems. It cannot.
rebuild() reads the live endpoint set and records their current numbers as the new baseline. It never renumbers an endpoint, so it cannot itself change what any ecosystem sees. The duplication risk belongs to the drift event that already happened — rebuilding only stops reporting it.
Observed live 2026-08-06: after a last-fabric factory reset and a fresh pairing, one stale map entry drifted (indigo-459564566 expected 5, live 2). The map was the wrong party; reality was correct; rebuilding was the right and harmless action — but the dialog reads as though it is about to break the house.
Reword to distinguish the two cases:
- the map disagrees with reality because reality legitimately moved (post-reset) → adopting is correct and harmless
- the map disagrees because storage was lost and ecosystems still hold the old numbers → the accessories are already duplicated; rebuilding accepts that rather than causing it
Files: Server Plugin/MenuItems.xml (the dialog text), plugin.py:menuRebuildEndpointMap, bridge-node/src/endpoint-map.ts:rebuild, and the matching passage in docs/INSTALL.md.
The Rebuild Matter Endpoint Map… dialog and log warn that rebuilding will duplicate accessories in already-paired ecosystems. It cannot.
rebuild()reads the live endpoint set and records their current numbers as the new baseline. It never renumbers an endpoint, so it cannot itself change what any ecosystem sees. The duplication risk belongs to the drift event that already happened — rebuilding only stops reporting it.Observed live 2026-08-06: after a last-fabric factory reset and a fresh pairing, one stale map entry drifted (
indigo-459564566expected 5, live 2). The map was the wrong party; reality was correct; rebuilding was the right and harmless action — but the dialog reads as though it is about to break the house.Reword to distinguish the two cases:
Files:
Server Plugin/MenuItems.xml(the dialog text),plugin.py:menuRebuildEndpointMap,bridge-node/src/endpoint-map.ts:rebuild, and the matching passage indocs/INSTALL.md.