@gargron In a recent nightly build I fixed an issue with bad parsing of the ostatus:conversation element due to namespace confusion (different libs used in different circumstances): https://git.gnu.io/gnu/gnu-social/commit/07458e5375e23f5732c705045ee2e9d0788fa49c#34617f1bb9822ee6ce7b4a69fda8db6ffb8a46f0_54_55

Since that patch the <ostatus:conversation> element - not the weird <link rel="ostatus:conversation"> is the goto place for Conversation URI and URL (ref and href respectively, as your code also perfectly portrays it).

I don't know if the people who have been giving you hell about the conversation breakage know about this patch, and I barely know what they were on about even... As soon as you implemented ostatus:conversation in the Atom output I myself considered the issue null and void.