I want get rid of the need to drop connections whenever config changes relevant to folders happen. It looks pretty straight forward to do, but it’s against BEP v1:
Additional Cluster Config messages MUST NOT be sent after the initial exchange.
My proposal is to allow multiple CCs, which means BEP v2. To avoid a major version bump in Syncthing, add a field to the hello message where a client can signify which versions of the BEP it speaks, going ahead with the highest common version or dropping the connection if incompatible. It’s very simple to support both BEP v1 (single CC) and v2, that’s just one condition that decides whether a second CC is sent or the connection closed and one in the protocol connection on whether to allow multiple CCs or not. Thus a release with this improvement can still sync with older releases (missing hello field means BEP v1).
Does that sound like a sensible plan?