Last modified: 2012-11-26 23:32:21 UTC
When editing an existing link, the link inspector should grab the existing annotation and edit it, rather than starting over with a brand new annotation. Destroying the existing annotation loses metadata we need for preserving syntactical variation (hrefPrefix and origTitle), which means that currently, simply inspecting a link without actually changing its target can cause that link to be changed in the wikitext.
What happens when the annotation type changes from internal to external? We have to create a new object at some point. What about when someone removes an annotation, then adds it back in? Do we then have a diff? I'm suspicious about this being the only way we cleanly round-trip.
Roan and I agree that as long as the annotation isn't re-applied (and meta data stripped) unless we actually changed the target, this behavior is OK. The concept is, if you touch something with the editor we have the right to normalize that bit.