1.2.0 — resync catalog with upstream Solar (1,247 → 1,269 icons) - #6
Merged
Conversation
Solar has added icons in the twelve days since 1.1.0 shipped (2026-08-14). This picks them up and fixes a generator bug that would have deleted 1.1.0's deprecated constants. Added - 22 new icons: the wi-fi family (wi-fi, -high, -low, -none, -off, -cog, -cross), bare UI primitives (add, close, minus, question-mark, exclamation-mark), webcam, webcam-off, videocamera-off, barcode, barcode-scan, binoculars, bot, brain, paint-brush, toolbox. Changed - ticker-star -> ticket-star upstream (typo fix). The old name stays as a @deprecated constant, so legacyAliases now holds 57 entries. - bold/logout is fixed. 1.1.0 shipped it malformed — the door rendered as a clipped crescent. Upstream corrected it; this is the only glyph whose appearance changes, and it changes from wrong to right. - Nothing else changed appearance. All 1,247 icons from 1.1.0 were pixel-diffed in linear, and every asset whose bytes changed was diffed in its own style (26 files across all six). SVGO output is deterministic, so the byte-changed set is a superset of the visually-changed set — coverage is complete across styles. Worst non-logout difference: 0.29%. Fixed - The generator would have deleted every deprecated constant from the previous release. previously_shipped() read only the `all` list, but retired names live in legacyAliases precisely because `all` excludes them — so a regeneration saw 1.1.0's 56 renamed constants as nonexistent and dropped them. SolarIcons.magnifer and 55 others would have vanished, breaking 1.1.0 consumers on upgrade. It now reads both, carries every retired name forward, re-resolves any whose replacement has itself been renamed since, and treats the union of current and retired names as the set it may never drop. Caught by running the sync, seeing "1 deprecated alias" where 57 were expected, and diffing exposed constants before and after. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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 free
to 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.
Summary
Solar has added icons in the twelve days since 1.1.0 shipped (2026-08-14). This picks up 22 new icons (1,247 → 1,269, 7,614 SVG variants) and fixes a generator bug that would have deleted 1.1.0's deprecated constants.
Type of change
Added — 22 icons
wi-fi,wi-fi-high,wi-fi-low,wi-fi-none,wi-fi-off,wi-fi-cog,wi-fi-crossadd,close,minus,question-mark,exclamation-markwebcam,webcam-off,videocamera-offbarcode,barcode-scan,binocularsbot,brain,paint-brush,toolboxAll 23 new names (including
ticket-star) resolve in all 6 styles.Changed
ticker-star→ticket-starupstream (typo fix). Old name kept as a@Deprecatedconstant;legacyAliasesnow holds 57 entries.bold/logoutis fixed. 1.1.0 shipped it malformed — the door rendered as a clipped crescent instead of a closed shape. It is the only glyph whose appearance changes, and it changes from wrong to right.The generator bug this fixes
Running the sync reported "1 deprecated alias" where 57 were expected. Cause:
previously_shipped()read only thealllist, but retired names live inlegacyAliasesprecisely becauseallexcludes them. So a regeneration saw 1.1.0's 56 renamed constants as nonexistent and dropped them —SolarIcons.magniferand 55 others would have vanished, breaking every 1.1.0 consumer on upgrade.It now reads both lists, carries every previously retired name forward, re-resolves any whose replacement has itself since been renamed, and treats the union of current and retired names as the set it may never drop. Verified: 0 constants lost, 1,303 exposed before → 1,326 after.
How "no visual change" was established
A
linear-only sweep would have missedbold/logout. Coverage here is:linear— 0 redraws.Since the SVGO pass is deterministic, a changed glyph necessarily changes bytes, so (2) is a superset of the visual changes and the two together cover every style. Apart from
bold/logoutat 39.7%, the worst difference was 0.29% — anti-aliasing.The comparator self-validates before reporting (identical icons must score ~0%, unrelated icons must score high) and refuses to emit a sweep otherwise, because a broken comparator looks exactly like "everything changed".
Checklist
flutter analyzereports zero errorsflutter testpasses locally (40 tests)CHANGELOG.mdhas an entry describing the changedart formatcleanpub publish --dry-runclean🤖 Generated with Claude Code