2c04d28a9b
EmbedGallery_ViewImage.Thumbnail is a non-pointer string (unlike EmbedVideo_View.Thumbnail), so an empty value would slip through as <meta property="og:image" content="">. Belt-and-suspenders guard in galleryThumbs, with the defensive test extended to cover the case. Also adds a parallel hidden-embed test for gallery alongside the existing images variant. Functionally redundant with the early-return at the top of extractPostMedia, but asserts the contract directly against the gallery branch so it survives any future refactor that moves the hide check into a per-shape branch.