I've been working on a way to clean preferences, roughly how preferences show up if you paste this into the filter of about:config?
/^ldap_2.server.*(lastSync|gContactSync(Username|lastSync|readOnly|writeOnly|myContacts|myContactsName|Plugin|Disabled|syncGroups|updateGoogleInConflicts|lastBackup|reset|Primary))/The button so far will delete anything there if and only if the preference ID (what comes after ldap_2.servers. and before any trailing ., for example ldap_2.servers.GoogleApps.filename -> GoogleApps) isn't used by any current address book.
The filter shown above doesn't take that into consideration, but it is unlikely that anything for a current address book will show up unless you specifically name an address book something like "gContactSyncUsername" or "lastSync".
Needless to say, gContactSync will backup prefs.js before removing anything, and this will only be run if the user presses a button on the Advanced tab.
The next group of preferences I'd like to find are old prefs from deleted ABs. I do not think I will be able to make an about:config filter to find those preferences.
Now, if they'd only finish killing off mork and switch to sqlite for the ABs, that will hopefully make maintaining gContactSync easier for you... or will it matter?
Ideally, a change in the implementation of an interface shouldn't have any effect on anything using that interface, but that isn't quite the case (although TB 3 is far better than TB 2). Switching to sqlite would hopefully remove some bugs, especially with mailing lists. Any progress on mailing list "sanity" would go a long way in helping me work on and support gContactSync. However, I have a feeling that isn't going to happen anytime soon and gContactSync will probably have to support old versions of Thunderbird for a while.