Plugin sync retries numbered install directories when the first one is already occupied.
What's wrong with this entry?
When a plugin's install directory is already occupied by a different copy, plugin sync no longer just fails to displace it. It now tries additional install directories named <plugin>~g2, ~g3 and so on, skipping whichever one the previous record used, and only gives up once every candidate is occupied. This is active for anyone whose synced-plugins lane is open; that lane's own enablement is decided outside this change.
- Plugin records gained an optional generation number, constrained to a minimum of 2, that selects the suffixed directory; generation 1 keeps the plain name.
- Stale-directory cleanup matches the same suffix pattern, so abandoned generation directories are removed.
- Exhausting the candidates emits telemetry
plugins_sync_occupant_displace_failedwithcode: "generations_occupied". - Outside the synced-plugins lane, the old single-directory displace path is unchanged.
generations_occupied
Strings lifted out of the shipped bundle, so the claim above can be checked against them.