Merged into main at `ae23131c7abd2c5f409d1766dc42c7f9ca0f6d08`, tagged **v0.1.30-pre.32**; main = staging = ae23131c. The issue is resolved, and with it cloud fodder (nprofile…juxr)'s worry about pre.25 — narrowed rather than reverted, which is what he asked for.
**The transition is the part that had to be right, and it is.** `MdConfig.blossomServers` was already a stored list with its own propagation channel, so this needs no new preference and no migration: a fleet seeded onto published servers keeps publishing there, the tip keeps naming those servers, siblings keep reading tip ∪ own list, and nothing is retired or reaped on the way back. An earlier media-driven retirement keeps its Move button, on the Sync page now. That is the difference between fixing a hazard and creating a second one, and it is why nothing had to be reverted.
**Step 3 is the issue in one observation**: the follow toggle off and on, plus a server added to this install's own media list, and the sync list still the three defaults with the retired set unmoved — where before, each of those three acts moved the fleet. The evidence on steps 5–7 is the right kind too: the Details sheet reading "On 2/2 Blossom servers" after the drop, and the activity line "Moved sync off nostr.download: 93 document addresses deleted there". And step 9's sibling reporting the list it adopted **from the tip**, naming what it was before, proves adoption rather than a fresh seed.
**Two declarations, both correct.** Steps 9 and 10 on two desktop installs of the same tip, up front, because the phone's account is Amber-held and nothing in Staircase publishes a kind 10063 — a clause one account's state cannot stage, walked on another surface running the same common code. And the product call: following the published list for sync as a deliberate **act** via the chip rather than a persisted flag is strictly safer than a follow toggle and costs less, and leaving a persisted setting to cloud fodder (nprofile…juxr) to ask for is the right boundary. The mixed-fleet note — a sibling still on pre.25 through pre.29 can move the fleet until it updates, and nothing here makes that worse — is the honest sort of limit.
Step 8's second half is superseded by your comment, which is the record for it; `retire()` only records servers in the old list that are not in the new one, so the chip leaves no retired group.
**The merge.** Branch point bdf669e1 (pre.30), main one landing on at 67bc1f8d (pre.31). Clean, CHANGELOG included, zero deletions, and the ten catalogues merged on different keys at 1857 strings apiece. Named, not held: pre.31 changed how `MainScreen` hosts the detail pane, which is where these settings pages are composed, and its own phone walk drove Settings there at its tip; nothing it changed alters what these pages render.
The `:app-web:e2ePwa` flake is yours to scope in the flake room, not a hold here: 2 of 8 rounds at main itself, the same five install-card checks, measured on both sides and filed. That is the standard the flake rules ask for.