fix: .md-Dateisymbol (Platte) + Store-Dateityp-Zuordnung, Version 1.0.5 - #7
Merged
Merged
Conversation
…ne Dateityp-Zuordnung (1.0.5) T-20260927-699609650. Gemessen, nicht vermutet: - .md -> ProgId CleanMarkdown.mdfile -> DefaultIcon "<CleanMarkdown.exe>,0". Das Symbol ist also das in die EXE eingebackene Icon. Die ausgelieferte 1.0.3-EXE traegt das Plattendesign aus e712d9d (byte-identisch zum CleanMarkdown.ico von b26390d, Abweichung 0.35 zur Store-Kachel). PR #5 hat das nur im Quellbaum behoben, 1.0.4 wurde nie ausgeliefert. - Das installierte 1.0.3-MSIX hat keine FileTypeAssociation, kein resources.pri und keine targetsize/unplated-Varianten: _STORE/msstore_build_msix.ps1 erzeugte das Manifest selbst und ignorierte store_package.json file_types (Builder ausserhalb des Repos mitgefixt). Fix: Version 1.0.5; Square44x44Logo.targetsize-{16..256} je plain, altform-unplated, altform-lightunplated aus der Store-Kachel (scripts/gen_targetsize_icons.py); Regressionstest; STORE_ISSUES korrigiert. Gate (_STORE/icon_consistency_check.py --package) prueft jetzt das gebaute MSIX: rot gegen das installierte 1.0.3 (4 Befunde), gruen gegen 1.0.5. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PTbvD41MCVmnQWaobvHfCk
… Installation T-20260927-699609650, Blocker D aus der astra-Abnahme von PR #7 (81dacc6): - install_local.ps1 registriert eine eigene ProgID (CleanMarkdown.mdfile, DefaultIcon auf die lokale EXE). Diese Installation blieb nach einem Store-Update unverändert bestehen und "gewann" weiterhin die .md-Zuordnung -- das MSIX ersetzt sie nicht automatisch. uninstall_local.ps1 ist das Gegenstück: bricht ab, wenn kein Store-Paket installiert ist, sichert die betroffenen Registry-Zweige per reg export und entfernt danach nur, was install_local.ps1 selbst angelegt hat (ProgID, DefaultIcon, .md-Verweis, OpenWithProgids, Applications-Key, UserChoice falls zutreffend, Startmenü- Verknüpfung, Installationsordner). README/README_DE dokumentieren jetzt, dass lokale und Store-Installation nicht parallel bestehen sollen. - gen_targetsize_icons.py erzeugte für unplated/lightunplated-Varianten byte-identische, opake Kopien der plated-Variante -- ein Nebenbefund der Gate-Härtung in _STORE/icon_consistency_check.py (siehe dortigen Commit): das jetzt strengere --package-Gate hätte den eigenen 1.0.5-Build andernfalls selbst abgelehnt. Fix: kleiner transparenter Eckpatch pro Variante -- genug für echte Transparenz, klein genug, um innerhalb der bereits kalibrierten Diff-Schwelle von test_assets_and_icons.py zu bleiben (ein voller 12%-Rand ergab 0.22 bei 16px, Schwelle 0.20). Verifiziert: 168 Projekttests grün; echter 1.0.5-MSIX-Neubau über das gehärtete _STORE/msstore_build_msix.ps1 (inkl. erzwungenem icon_consistency_check.py --package) läuft mit Exit 0 durch. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PTbvD41MCVmnQWaobvHfCk
T-20260927-699609650, Head 9596928 wurde von gpt-6-astra (effort high) mit "NICHT OK" bewertet (voller Bericht: _codex/ASTRA-REABNAHME_T-20260927-699609650.md). Alle 5 Blocker sind behoben und gegen astras real reproduzierte Manipulationen verifiziert (Details: _codex/FIX-C1-C2-D1-D2-D3_T-20260927-699609650.md): - C1: Gate pruefte nur 5 von 14 ausgelieferten Icon-Groessen -- jetzt werden alle tatsaechlich im Paket/resources.pri vorhandenen Varianten erkannt und geprueft, nicht nur eine feste Pflichtliste. - C2: Das reale 1.0.5-MSIX enthielt den onedir-Laufzeitordner (_internal, Python-DLLs) nicht -- die App waere nicht gestartet. Kopierschritt erkennt jetzt onedir-Layout und uebernimmt den kompletten Ordner. - D1: uninstall_local.ps1 loeschte beim UserChoice-Rueckbau den gesamten Explorer-Elternzweig FileExts\.md samt fremden Geschwisterzweigen -- jetzt nur noch der UserChoice-Unterschluessel selbst. - D2: Fehlgeschlagene Registry-Backups stoppten die Loeschung nicht -- jeder Export wird jetzt geprueft, ein Fehlschlag bricht vor jeder Aenderung ab. - D3: Jede installierte Store-Version wurde akzeptiert, auch die real installierte 1.0.3 ohne .md-FileTypeAssociation -- das Manifest wird jetzt geprueft, eine Version ohne Handler wird abgelehnt. D1-D3 zusaetzlich per gemocktem PowerShell-Testlauf verifiziert (kein echter Registry-Zugriff). Store-Gate-Tests 27/27 gruen, Projekt-Testsuite 168/168 gruen, realer 1.0.5-MSIX-Neubau ueber das gehaertete msstore_build_msix.ps1 gruen. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PTbvD41MCVmnQWaobvHfCk
T-20260927-699609650, 3. Abnahme (Fable, schreibgeschuetzt) fand: mein D1-Fix `Remove-ItemProperty -Name "(Default)"` schlaegt gegen den PowerShell- Registry-Provider fehl (verifiziert in pwsh 7.6.6 und Windows PowerShell 5.1), `-ErrorAction SilentlyContinue` machte das unsichtbar. Folge: HKCU:\Software\ Classes\.md zeigte nach dem Rueckbau weiter auf die bereits geloeschte ProgID CleanMarkdown.mdfile -- schlimmer als der vorherige Set-Item -Value "" (der den Verweis wenigstens leerte). Fix: echte Entfernung ueber die .NET-Registry-API ([Microsoft.Win32.Registry]::CurrentUser...DeleteValue), die den PowerShell- Provider umgeht. Verifiziert in einem Wegwerf-Schluessel (angelegt, geprueft, wieder entfernt -- keine dauerhafte Aenderung am Host). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PTbvD41MCVmnQWaobvHfCk
…isieren merge-reviewer-Befund vor dem Merge von PR #7: Das Repo ist public. _codex/ enthielt interne Abnahmeberichte mit lokalen Pfaden, Hostnamen und Reviewernamen -- nach einem Squash-Merge waeren die dauerhaft in der main-Historie gelandet. - _codex/ aus dem Git-Tracking entfernt (git rm --cached), lokal behalten, in .gitignore aufgenommen. - README.md/README_DE.md: interne Ticket-ID und Reviewername ("astra abnahme review") aus der Nutzer-Doku entfernt/neutralisiert. Die Ticket-ID bleibt wie besprochen im CHANGELOG stehen. Fachliche Pruefung wird durch diesen Commit nicht beruehrt (reine Bereinigung, kein Verhaltensunterschied). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PTbvD41MCVmnQWaobvHfCk
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.
T-20260927-699609650
Ursache (gemessen)
.md→ ProgIdCleanMarkdown.mdfile→DefaultIcon = <CleanMarkdown.exe>,0: Das Dateisymbol ist das in die EXE eingebackene Icon. Die ausgelieferte 1.0.3-EXE trägt das Plattendesign aus e712d9d (Abweichung 0,35 zur Store-Kachel). PR fix: window/EXE-Icon zeigte altes Design nach Store-Update 1.0.3 #5 hat das nur im Quellbaum behoben, 1.0.4 wurde nie ausgeliefert.FileTypeAssociation, keinresources.priund keine targetsize-/unplated-Varianten, weil der gemeinsame Builder_STORE/msstore_build_msix.ps1das Manifest selbst erzeugte (außerhalb dieses Repos mitkorrigiert).Fix
Square44x44Logo.targetsize-{16…256}je plain,altform-unplatedundaltform-lightunplated, erzeugt aus der Store-Kachel (scripts/gen_targetsize_icons.py)Gate
_STORE/icon_consistency_check.py <root> --package <msix|ordner>prüft das gebaute Paket. Gegen das installierte 1.0.3 ist es rot (4 Befunde), gegen das gebaute 1.0.5-MSIX grün. Die Gate-Tests laufen mit 21 passed, die Projekttests mit 168 passed.🤖 Generated with Claude Code
https://claude.ai/code/session_01PTbvD41MCVmnQWaobvHfCk