Files
ESP32_Serial_Swiss_Army_Knife/docs/icon_provenance.md
T
Commander1024 cdc4d4a8df Add Phase 9 validation and advisory review
Record the finite dependency search, Wi-Fi maintenance blocker, and
pinned
icon provenance. Add bounded host orchestration and fixture coverage,
and
update release documentation with current evidence.
2026-09-16 16:26:46 +02:00

7.1 KiB

Exact USB and Wi-Fi icon provenance

Reviewed 2026-09-16. This record resolves the identity of the two retained preferred-form SVG sources at Material Design Icons 7.4.47, not all project artwork, historical authorship of manual edits, or release compliance. No firmware, mockup, web asset, or generated asset was changed or regenerated.

Official pinned source and licenses

Official SVG distribution: https://github.com/Templarian/MaterialDesign-SVG. Its upstream README identifies this as the production SVG distribution and points to the main MaterialDesign repository for issues. The main repository URL with tag v7.4.47 returned 404; it is not used as version evidence.

  • Distribution tag: v7.4.47.
  • Annotated tag object: 5edde266e281d26a03dcfa89fb651183cbab0f2e.
  • Peeled commit: 9e04201d4557e729822fb57f62a316c3dea1d4a8.
  • Upstream package.json: @mdi/svg, version 7.4.47, license Apache-2.0.
  • Tag timestamp: 2023-12-26T23:33:26Z; GitHub reports it unsigned. HTTPS retrieval and content pins are evidence, not signature authentication.

Unmodified upstream SVGs, LICENSE, README, package metadata, complete meta.json, and GitHub tag/tree responses are retained in third_party/material-design-icons/upstream-7.4.47/. downloads.json records exact retrieval URLs, sizes and SHA-256 hashes. Raw source URLs use the immutable commit, not a moving branch or tag. API responses are retained as fetched; future API formatting is not assumed stable. The full metadata/tree files intentionally preserve the evidence behind the per-icon selections and absence check, rather than only project-written claims.

The existing third_party/material-design-icons/LICENSE is byte-identical to the pinned upstream Pictogrammers Free License summary and remains unchanged. It distinguishes icon Apache-2.0/respective grants from code MIT terms. The package declares Apache-2.0; the two metadata entries contain authors but no per-icon alternate grant. This is the scoped upstream licensing evidence for these two SVGs, not a blanket conclusion about every icon in the collection. upstream-7.4.47/Apache-2.0.txt supplies the full Apache-2.0 text, fetched from https://www.apache.org/licenses/LICENSE-2.0.txt (SHA-256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30). It is a separately sourced license text, not a file falsely attributed to the upstream icon tree. The retained non-truncated recursive tree has no path containing notice (case-insensitive); no upstream NOTICE was found in this pinned distribution and none is fabricated here. This does not audit unrelated repositories or assert that a NOTICE is mandatory for every Apache work.

Icon Metadata attribution Stable icon ID First-version metadata SVG SHA-256
usb Google 25033E0B-3AD4-414D-9972-559F2690FC1D 1.5.54 c9918e9a983fbd788378ca4c524e7a07a0d5eedcaeff73d19814e6f6ae221f22
wifi-strength-4 Simran 41B86B22-7245-4A97-9BAA-3E9EBD44CEB0 2.3.50 89d14daf863076b0f73c76d913212875f2e9bcddaaf49c9e5d1825e0b2dc2d5f

The metadata version fields describe icon introduction versions, not a contradiction of package 7.4.47. Matching these sources to that release does not prove they originated in that release or were originally downloaded from it.

Exact comparison to project derivatives

  1. Retained SVGs: third_party/material-design-icons/usb.svg (403 bytes) and wifi-strength-4.svg (219 bytes) are each byte-for-byte identical to the pinned upstream originals, including every path command, coordinate, arc flag and viewBox. Each has one path, viewBox="0 0 24 24", and no transform on the root or path. No coordinate rounding, normalization or visual-match inference was used. The files remain unchanged.

  2. USB mockup: docs/phase7c_icon_mockup.svg symbol usb has exactly the upstream d string and 24-by-24 viewBox, without symbol/path transforms. Its two direct use definitions are (x,y,width,height)=(150,4,30,30) inside reusable status, and (8,72,30,30) on the broker page. These apply uniform scale 30/24 = 1.25 and the stated translations. Status is instantiated in page groups translated by (62,98), (592,98), (62,438), (592,438); the broker use is in (62,438). Thus status USB geometry maps as (X,Y)=(pageX+150+1.25*x, pageY+4+1.25*y) and broker USB as (X,Y)=(62+8+1.25*x,438+72+1.25*y). CSS adds presentation fill/stroke; this is path geometry equivalence, not pixel/rendering equivalence.

  3. Wi-Fi mockup: symbol wifi in that same mockup uses a different, segmented path starting M1 8q11-9 22 0. It is not an exact copy of wifi-strength-4 (which starts M12,3C7.79,3). No exact affine derivation or upstream provenance for that distinct mockup path is established here.

  4. Actual firmware: src/local_status_ui.c explicitly calls the USB mask hand-rasterized and the Wi-Fi masks compact segmented adaptations. The exact editable row bytes are:

    s_icon_usb:        18 3c 18 5a 3e 18 3c 18
    s_icon_wifi_full:  7e 81 3c 42 18 24 00 18
    s_icon_wifi_three: 00 00 3c 42 18 24 00 18
    s_icon_wifi_two:   00 00 00 00 18 24 00 18
    s_icon_wifi_one:   00 00 00 00 00 00 00 18
    

    These manual 8-by-8 masks are not SVG coordinates or exact scaled vector paths. No deterministic rasterizer, sampling/threshold rule or edit history establishes an exact upstream-to-mask transform. Their declared design provenance is supported by the now-verified retained sources, but exact mechanical derivation of the firmware masks remains unresolved. Preserve the C arrays as the preferred editable form of those manual modifications, together with both original SVGs; do not substitute an invented generator. The existing source comment is the adaptation notice. This dated record documents the inspected modifications; it does not invent their edit date.

Offline checks and release boundary

python3 tests/release_notices/run.py verifies the pinned source bytes and Git blob identities, version/author metadata, catalog inclusion, exact SVG geometry, USB mockup placement/ancestry, distinct Wi-Fi mockup path, and current manual mask bytes. Negative checks reject coordinate and transform changes. Tests do not regenerate artwork or claim raster equivalence.

The notice catalog retains all previous inputs and adds the two existing SVGs, these source originals, licensing/metadata evidence and this record. The bundle is still not corresponding source or release clearance. Firmware C arrays and the full mockup remain in the project, not copied into this bounded notice bundle; include them in a separately reviewed corresponding-source delivery where required. Radio-blob/source-exception questions, wolfSSH packaging, recipient notice/source delivery and other release gates remain open.

Older global inventory/packaging/memory documents describe the pre-verification state and counts. They were intentionally not edited in this scoped task; this record and the current catalog provide the narrower updated evidence.