Individuals being removed with no replacements on trivial property updates
Changing a simple property on an individual (e.g. by calling
change_is_favourite()) does not cause the corresponding property on the instance to be updated. Instead, the
Individual.removed signal is emitted by the instance with no replacement (i.e. the
replacement_individual arg for the signal emission is null). If the individual is re-looked-up in the aggregator, a new instance is found with the property updated.
This feels like a bug, because it's a) pretty surprising, b) super inconvenient, and c) the docs don't mention this is likely to happen. It also leads to Contacts behaving rather badly (try changing the name of a contact and the contact details disappears until you re-select it from the list). I'd have assumed it was a bug in Contacts, but I get the same thing happening when updating favourite status from Geary, and when listening across processes (e.g. updating favourite in Contacts and seeing the removed signal in Geary).
The default backend is (presumably) an EDS Google address book, configured via GOA, since that is what shows up as selected in Contacts. Folks 0.11.4 from the current Ubuntu Disco beta.