The web deleted a tag's row outright (delete, and merge's source), so the change
feed never carried it and linked devices kept the tag. A device's delete left a
tombstone that the web still listed, matched by name on create and rename, minted
#tags onto, and accepted in a picker.
- labeling.tombstone_label is the one way a tag is deleted: drop its links, set
purged_at. REST delete, merge and sync's op=delete all use it.
- labeling.live(owner) is the one definition of a tag that exists; every catalog
read uses it (list, lookup, create/rename matching, #tag minting, picker ids,
export, and sync's name-clash check).
- 0040: (owner_id, name) is unique among live tags only, so a tombstone gives its
name back and #grocery can be made again, on the web or from a device.
Fixes#5382.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>