emrg: gen-assets — fall back to next renderer when icon renders transparent - #722
Merged
Merged
Conversation
…parent Build Release v0.2.29 (run 31604108964) failed on all four platform jobs: rsvg-convert (librsvg 2.58) renders icon.svg 99.2% transparent — even the opaque background rect does not paint. The #705 opacity gate correctly caught the blank icon, but gen-assets.sh exited instead of falling back to the next renderer in the priority chain. Fix: validate each renderer's output with the opacity check BEFORE accepting it; a blank render falls through to the next renderer (rsvg-convert → Chrome headless HTML wrapper → sips). Only when ALL renderers produce blank output do we fail loudly. Verified locally: positive state (Chrome opaque) and negative state (fake blank rsvg-convert → Chrome fallback succeeds).
argszero
commented
Aug 12, 2026
argszero
left a comment
OwnerAuthor
There was a problem hiding this comment.
✅ LGTM — cycle. Fix verified in both states: (1) positive — Chrome HTML-wrapper renders icon.svg opaque; (2) negative — simulated blank rsvg-convert (mirroring CI run 31604108964) correctly falls back to Chrome. bash -n clean. This unblocks the v0.2.29 release build.
argszero
commented
Aug 12, 2026
argszero
left a comment
OwnerAuthor
There was a problem hiding this comment.
✅ LGTM — cycle. Re-verified this cycle: diff unchanged (5f4b149, single-file packaging/gen-assets.sh), CI test PASS (31606448698), MERGEABLE. Both positive (Chrome opaque) and negative (blank rsvg → Chrome fallback) states validated — the fix unblocks the v0.2.29 Build Release.
Uh oh!
There was an error while loading. Please reload this page.
This was referenced Aug 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes Build Release v0.2.29 failure (run 31604108964): all four platform jobs failed at the icon generation step.
Root cause
rsvg-convert(librsvg 2.58 on Ubuntu 24.04 / Homebrew / Windows) renderspackaging/assets/icon.svg99.2% transparent — even the opaque background rect does not paint. The #705 opacity gate correctly caught the blank icon, butgen-assets.shexited on the first renderer's blank output instead of falling back to the next renderer.Fix
Each renderer's output is now validated by the opacity check before being accepted; a blank render falls through to the next renderer in the priority chain (
rsvg-convert→ Chrome/Edge headless HTML wrapper →sips). Only when all renderers produce blank output do we fail loudly.Verification (both states, per #455 lesson)
rsvg-convert(fully-transparent 1024x1024 PNG, mirroring CI) → script detects blank, falls back to Chrome headless → succeeds.bash -nsyntax clean.