Skip to content

chore: version badges to 1.0.4, fix stale legacy icon_*.png mirror - #6

Merged
lukisch merged 2 commits into
mainfrom
fix/T-20260926-864299616-followup-badges-legacy-icons
Sep 26, 2026
Merged

lukisch merged 2 commits into
mainfrom
fix/T-20260926-864299616-followup-badges-legacy-icons

Conversation

@lukisch

@lukisch lukisch commented Sep 26, 2026

Copy link
Copy Markdown
Contributor

Zusammenfassung

Kleiner Folge-PR zu #5 (T-20260926-864299616), zwei unabhängige Reste:

  1. Versionsbadges/-referenzen nachgezogen 1.0.3 -> 1.0.4:
    README.md/README_DE.md (Badge), WINDOWS_STORE_PREP.md,
    PORTIERUNGSPLAN.md (main.py/pyproject.toml/store_package.json/
    CHANGELOG hatte PR#5 bereits gebumpt). store_assets/AppxManifest.xml
    (1.0.2.0) bewusst NICHT angefasst -- die wird separat beim Paketbau
    geprüft.

  2. Legacy-Icon-Spiegel store_assets/icon_*.png gefixt. Das ist ein
    Spiegel von Square*Logo.png/Wide310x150Logo.png/StoreLogo.png
    unter einer älteren MSIX-Namenskonvention -- trug noch das alte
    Design (Diff 0.35 gegen die Store-Kachel), weil PR#5 nur die
    Desktop-Icon-Kette gefixt hat, die load_app_icon() tatsächlich
    konsumiert. Jede Datei aus ihrer korrekt gebrandeten Entsprechung neu
    erzeugt:

    • icon_44x44.png <- Square44x44Logo.png
    • icon_50x50.png <- StoreLogo.png
    • icon_150x150.png <- Square150x150Logo.png
    • icon_310x150.png <- Wide310x150Logo.png
    • icon_310x310.png <- Square310x310Logo.png

Test

test_window_icon_matches_store_tile_branding prüft jetzt zusätzlich
alle vier quadratischen Legacy-Spiegel gegen die Store-Kachel, sowie
icon_310x150.png gegen die breite Wide310x150Logo.png-Referenz
statt gegen die quadratische Kachel -- ein Quetschen des breiten Bildes
auf einen quadratischen Vergleichsausschnitt verzerrt es sonst und
erzeugt einen falschen Befund selbst bei korrektem Branding (beim
Hinzufügen dieses Checks selbst gefunden). Dasselbe Aspect-Ratio-bewusste
Verhalten wurde im generischen .SOFTWARE/_STORE/icon_consistency_check.py-Gate
nachgezogen (neue WIDE_TILE_CANDIDATES/find_wide_tile_reference,
13/13 Gate-Tests grün, davon 2 neu für genau diesen Fall).

167/167 Projekt-Tests grün.

🤖 Generated with Claude Code

https://claude.ai/code/session_01PTbvD41MCVmnQWaobvHfCk

Follow-up to PR#5 (T-20260926-864299616):

- README.md/README_DE.md version badges, WINDOWS_STORE_PREP.md and
  PORTIERUNGSPLAN.md version references bumped 1.0.3 -> 1.0.4 (the
  store_package.json / main.py / CHANGELOG values PR#5 already bumped).
  store_assets/AppxManifest.xml (1.0.2.0) intentionally left untouched --
  that's verified separately at package-build time.

- store_assets/icon_*.png: a legacy mirror of Square*/Wide*/StoreLogo
  under an older MSIX naming convention, still carrying the pre-fix
  design (diff 0.35 against the Store tile) because PR#5 only fixed the
  desktop-icon lineage load_app_icon() actually consumes. Regenerated
  each from its corresponding correctly-branded source (icon_44x44.png
  <- Square44x44Logo.png, icon_50x50.png <- StoreLogo.png,
  icon_150x150.png <- Square150x150Logo.png, icon_310x150.png <-
  Wide310x150Logo.png, icon_310x310.png <- Square310x310Logo.png).

- Test extended: test_window_icon_matches_store_tile_branding now also
  checks the four square legacy mirrors, plus icon_310x150.png against
  the WIDE Wide310x150Logo.png reference specifically (comparing a wide
  image against the square tile via a square compare_size distorts it
  and false-positives even when correctly branded -- found while adding
  this check).

167/167 project tests green.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PTbvD41MCVmnQWaobvHfCk

@lukisch lukisch left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review (merge-reviewer, claude-opus) auf Head 9f0702e: Assets und Doku in Ordnung, aber die neue Wide-Logik öffnet eine Lücke. Deshalb noch nicht gemergt.

In Ordnung:

  • Die Versionsangaben in beiden README-Badges, WINDOWS_STORE_PREP.md und PORTIERUNGSPLAN.md stehen auf 1.0.4.
  • Legacy-Spiegel gemessen: icon_44/50/150/310 gegen Square310 = 0.000–0.006, icon_310x150 gegen Wide310x150Logo = 0.000. 167 Tests grün, Gate auf dem PR-Stand passed.

Lücke (Gate WIDE_TILE_CANDIDATES/find_wide_tile_reference, gleiches Muster im neuen Test): Wide-Assets werden nur noch relativ zum Wide-Logo geprüft. Das Wide-Logo selbst ist nirgends an die Marke (Square-Kachel) gebunden. Negativkontrollen mit dem alten, falsch gebrandeten icon_310x150.png aus master:

  • B) nur der Spiegel alt → schlägt an (0.72). ✔
  • C) Wide310x150Logo und Spiegel alt → Gate passed. ✘ (Das alte Gate hätte das gefangen, weil es gegen die Square-Kachel verglich.)
  • D) Wide310x150Logo fehlt, Spiegel alt → Gate passed. ✘ Der Spiegel wird dann zu seiner eigenen Referenz und per png_path == reference übersprungen.

Vorschlag zur Verankerung: Das Wide-Logo zusätzlich an der Kachel prüfen, dazu das mittige Quadrat ausschneiden (Breite = Höhe) und mit der Square-Kachel vergleichen. Gemessen: korrektes Wide-Logo 0.24, altes 0.54. Eine eigene Schwelle von etwa 0.35 trennt das sicher, bitte kalibrieren. Außerdem darf icon_310x150.png nicht Wide-Referenz werden, wenn das Wide-Logo fehlt, sondern muss dann selbst gegen die Kachel (Mittelquadrat) geprüft werden. Dieselbe Verankerung gehört in den neuen Test. Negativtests für C und D bitte ergänzen.

merge-reviewer's review of #6 (9f0702e) found a real gap in the
wide-asset check: comparing icon_310x150.png only against
Wide310x150Logo.png (as its "wide reference") leaves two cases
undetected --

  (C) both the wide logo and its mirror stale relative to the Store
      tile -- they still agree with each other, so nothing was flagged
  (D) the wide logo missing -- the mirror then became its own
      reference (`png_path == reference`) and was skipped outright

Fix: every wide asset (Wide310x150Logo.png and its icon_310x150.png
mirror) is now anchored DIRECTLY to the one authoritative square tile,
via its own center-square crop (same aspect as the tile, no distortion,
no indirection through another wide asset). Calibrated on the real
files: the correct Wide310x150Logo.png's center crop differs from the
tile by 0.24, the pre-fix mirror by 0.54 -- threshold set to 0.35.

Same fix mirrored in the shared .SOFTWARE/_STORE/icon_consistency_check.py
gate (new check_wide_png_matches_store_tile()/_center_square_crop(),
WIDE_TILE_CANDIDATES/find_wide_tile_reference() removed -- no longer
needed since nothing is compared against another wide asset anymore),
with two new negative-control tests reproducing gaps C and D against
the real b26390d files (15/15 gate tests green).

167/167 project tests green.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PTbvD41MCVmnQWaobvHfCk
@lukisch

lukisch commented Sep 26, 2026

Copy link
Copy Markdown
Contributor Author

Re-Review (merge-reviewer, claude-opus) auf Head 356b5c0: Merge. Negativkontrollen mit dem alten icon_310x150 aus master wiederholt: B (nur Spiegel alt), C (Wide-Logo und Spiegel alt), D (Wide-Logo fehlt, Spiegel alt) und zusätzlich E (nur Wide-Logo alt) schlagen alle an (Mittelquadrat 0.54, Schwelle 0.35). Der korrekte PR-Stand besteht. Im Gate gibt es keine Verweise mehr auf WIDE_TILE_CANDIDATES/find_wide_tile_reference (nur eine historische Erwähnung im Test-Kommentar), keine undefinierten Namen (ruff F: nur ein ungenutztes import sys, Kleinigkeit), 15/15 Gate-Tests. Der Projekttest verankert ebenfalls über den Mittelquadrat-Crop, 167 passed, CI grün.

@lukisch
lukisch merged commit 15565d4 into main Sep 26, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant