The empty-message guard only checked the reply's own body/hasMedia, so a caption-less quote of a cached image (no text, no media of its own) was dropped even though extractBridgeEvent had already resolved quotedMediaUrls for it.
The empty-message guard only checked the reply's own body/hasMedia, so a caption-less quote of a cached image (no text, no media of its own) was dropped even though extractBridgeEvent had already resolved quotedMediaUrls for it.