Skip to content

Commit 6e3d643

Browse files
Lukas Geigerclaude
andcommitted
fix: version mismatch in info dialog and UnicodeDecodeError HTTP 500
- Info-Dialog in create_gui() hardcodiert auf 'v2.0' statt TOOL_VERSION (3.0) korrigiert: f-String-Referenz auf TOOL_VERSION, Copyright-Jahr 2024 -> 2026. AST-Regressionstest in test_cli.py ergaenzt. - do_POST() in webapp/server.py gab bei ungueltigen UTF-8-Bytes HTTP 500 statt 400 zurueck; separater UnicodeDecodeError-Handler eingefuegt (vor JSONDecodeError). HTTP-Integrationstest-Klasse MethodenAnalyserInvalidBodyTests ergaenzt. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 5bb61e3 commit 6e3d643

12 files changed

Lines changed: 104 additions & 177 deletions

File tree

.github/workflows/stale.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
stale:
1414
runs-on: ubuntu-latest
1515
steps:
16-
- uses: actions/stale@v10
16+
- uses: actions/stale@v9
1717
with:
1818
stale-issue-message: >
1919
This issue has been automatically marked as stale because it has not had

.github/workflows/welcome.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,18 @@ jobs:
1414
welcome:
1515
runs-on: ubuntu-latest
1616
steps:
17-
- uses: actions/first-interaction@v3
17+
- uses: actions/first-interaction@v1
1818
with:
19-
repo_token: ${{ secrets.GITHUB_TOKEN }}
20-
issue_message: |
19+
repo-token: ${{ secrets.GITHUB_TOKEN }}
20+
issue-message: |
2121
Welcome! 👋 Thanks for opening your first issue in this repository.
2222
2323
We'll review it as soon as possible. In the meantime:
2424
- Check if there's a similar issue already open
2525
- Add as much detail as possible (steps to reproduce, expected behavior, environment)
2626
2727
If you'd like to contribute a fix, PRs are always welcome!
28-
pr_message: |
28+
pr-message: |
2929
Welcome! 👋 Thanks for your first pull request in this repository.
3030
3131
A maintainer will review it soon. Please make sure:

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ Format basiert auf [Keep a Changelog](https://keepachangelog.com/de/1.1.0/).
5454
- README beschreibt jetzt explizit den neuen macOS-/Linux-Source-Smoke-Pfad und grenzt ihn gegen eine echte Packaging-Linie ab.
5555

5656
### Behoben / Fixed
57+
- Info-Dialog in `create_gui()` zeigte hardcodiert „Python Code Analyzer v2.0" statt des tatsächlichen `TOOL_VERSION`-Werts (3.0); Zeichenkette auf `f"Python Code Analyzer v{TOOL_VERSION}"` umgestellt, Copyright-Jahr auf 2026 aktualisiert.
58+
- `do_POST()` in `webapp/server.py` gab bei ungültigem UTF-8-Request-Body HTTP 500 statt 400 zurück, weil `UnicodeDecodeError` nicht explizit abgefangen wurde; separater `except UnicodeDecodeError`-Handler ergänzt.
5759
- `missing_imports` behandelt Modulattribute und lokale Parameternamen jetzt korrekt statt sie fälschlich als Importlücke zu melden.
5860
- Die PWA lädt jetzt ohne unnötigen `favicon.ico`-404, weil App-Icon und Apple-Touch-Icon explizit eingebunden sind.
5961
- Privacy-/Secret-Check ohne Befund; keine Credentials oder getrackten ignorierten Dateien gefunden.

EXPORTFORMAT.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
Stand: 2026-05-24
44

5-
Dieses Dokument beschreibt das JSON-Austauschformat für MethodenAnalyser. Das Format verbindet GUI, CLI, Tests, Automationen und die optionale lokale Weboberfläche derselben Desktop-Linie. Der bestehende Textreport bleibt unverändert; JSON ist eine zusätzliche maschinenlesbare Ausgabe, keine Companion- oder Mobile-Sync-Schnittstelle.
5+
Dieses Dokument beschreibt das JSON-Austauschformat für MethodenAnalyser. Das Format verbindet die lokale Desktop-/CLI-Version mit späteren Web-, Android- und iOS-PWA-Companions. Der bestehende Textreport bleibt unverändert; JSON ist eine zusätzliche maschinenlesbare Ausgabe.
66

77
## Ziel
88

99
- Datei-, Projekt- und Snippet-Analysen einheitlich serialisieren.
1010
- Ergebnisse ohne absolute lokale Pfade weitergeben.
11-
- Ein stabiles Format für Automationen, Store-Demos und lokale Browser-Smokes bereitstellen.
11+
- Ein stabiles Format für Automationen, Store-Demos und PWA-Prototypen bereitstellen.
1212
- Datenschutzfreundlich bleiben: Quellcode wird nicht in den Report geschrieben, nur Analyseergebnisse.
1313

1414
## CLI-Ausgabe
@@ -72,6 +72,6 @@ Ohne Dateiwert schreibt `--json-output` nach `methodenanalyser-report-v1.json`.
7272
## Stabilitätsregeln
7373

7474
- Neue Felder dürfen ergänzt werden, bestehende Feldnamen bleiben für `methodenanalyser-report-v1` stabil.
75-
- Lokale Browser- oder Server-Hilfsmodi dürfen `source_kind = "snippet"` und `source_kind = "zip"` nutzen.
75+
- PWA- oder Server-Companions dürfen `source_kind = "snippet"` und `source_kind = "zip"` nutzen.
7676
- Projektberichte verwenden relative Pfade ab Projektwurzel und normalisieren Trenner auf `/`.
7777
- Fehlerhafte Dateien erscheinen in `errors`, erfolgreiche Dateien weiter in `files`.

MethodenAnalyser3.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1547,14 +1547,14 @@ def create_gui() -> None:
15471547
text="ℹ️ Info",
15481548
command=lambda: messagebox.showinfo(
15491549
"Python Code Analyzer",
1550-
"Python Code Analyzer v2.0\n\n"
1550+
f"Python Code Analyzer v{TOOL_VERSION}\n\n"
15511551
"Analysiert Python-Dateien auf:\n"
15521552
"• Fehlende Definitionen\n"
15531553
"• Ungenutzte Definitionen\n"
15541554
"• Ungenutzte Imports\n"
15551555
"• Dynamische Aufrufe\n"
15561556
"• Import-Scope-Probleme\n\n"
1557-
2024 - Optimierte Version"
1557+
2026 - Optimierte Version"
15581558
),
15591559
bg="#2196F3",
15601560
fg="white",

PORTIERUNGSPLAN.md

Lines changed: 0 additions & 113 deletions
This file was deleted.

README.md

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -88,15 +88,15 @@ type pfad\zur\datei.py | python MethodenAnalyser3.py --stdin --json-output snipp
8888

8989
`--json-output` schreibt zusätzlich den maschinenlesbaren Report `methodenanalyser-report-v1.json`. Mit eigenem Dateinamen kann der Report gezielt abgelegt werden; das Format ist in [EXPORTFORMAT.md](EXPORTFORMAT.md) dokumentiert.
9090

91-
### Lokale Weboberfläche
91+
### Web/PWA-Companion
9292

93-
Für Snippets, einzelne Python-Dateien und kleine ZIP-Archive gibt es zusätzlich eine optionale lokale Weboberfläche:
93+
Für Snippets, einzelne Python-Dateien und kleine ZIP-Archive gibt es zusätzlich einen lokalen Web Companion:
9494

9595
```bash
9696
python webapp/server.py
9797
```
9898

99-
Unter Windows startet `START_WEBAPP.bat` denselben lokalen Server. Die Oberfläche läuft standardmäßig unter `http://127.0.0.1:8765/`, nutzt den bestehenden Analysekern und zeigt Text- sowie JSON-Reports an. ZIP-Uploads werden lokal an den Python-Prozess geschickt, dort temporär entpackt und als kleines Projekt analysiert. Zusätzlich kann die lokale Weboberfläche bestehende `methodenanalyser-report-v1.json`-Dateien importieren. Sie ist ein Hilfs-/Demo-Modus für denselben Rechner, keine Companion-App und keine eigene Mobile-Produktlinie. Details stehen in [WEBAPP.md](WEBAPP.md).
99+
Unter Windows startet `START_WEBAPP.bat` denselben lokalen Server. Die Oberfläche läuft standardmäßig unter `http://127.0.0.1:8765/`, nutzt den bestehenden Analysekern und zeigt Text- sowie JSON-Reports an. ZIP-Uploads werden lokal an den Python-Prozess geschickt, dort temporär entpackt und als kleines Projekt analysiert. Zusätzlich kann der Companion bestehende `methodenanalyser-report-v1.json`-Dateien importieren, damit Desktop- und Web-Linie denselben Report-Vertrag auch ohne frische Analyse gemeinsam nutzen. Details stehen in [WEBAPP.md](WEBAPP.md).
100100

101101
Die PWA speichert den aktuellen Entwurf und den letzten JSON-Report lokal im Browser, bietet einen Install-Flow für Chromium-basierte Browser und hält die bereits geladene Oberfläche per Service Worker offline verfügbar. Für neue Analysen muss der lokale Python-Server trotzdem laufen.
102102

@@ -106,8 +106,8 @@ Für Android-/iOS-Tests im selben WLAN kann derselbe lokale Dienst gezielt auf d
106106
python webapp/server.py --host 0.0.0.0 --port 8765
107107
```
108108

109-
Die lokale Weboberfläche kann LAN-URLs anzeigen, falls der Server bewusst im Netzwerk freigegeben wird. Das bleibt ein technischer Testpfad, kein geplantes Android-/iOS-Produkt.
110-
Zusätzlich bündelt die **PWA-Testkarte** Install-Status, Service-Worker-, Speicher- und Viewport-Diagnostik in einer kopierbaren Kurzfassung für lokale Browser-Smokes.
109+
Der Web Companion zeigt dann im neuen Bereich **Android/iOS-Testpfad** die passende Startanweisung, erkannte LAN-URLs sowie getrennte Install-Hinweise für Android (Chrome/Edge) und iPhone/iPad (Safari).
110+
Zusätzlich bündelt die **PWA-Testkarte** Install-Status, Service-Worker-, Speicher- und Viewport-Diagnostik in einer kopierbaren Kurzfassung für mobile Smoke-Tests.
111111

112112
### macOS- und Linux-Smoke
113113

@@ -190,8 +190,6 @@ python -m unittest discover -s tests -v
190190

191191
GitHub Actions führt denselben Smoke-Test jetzt auf Windows (Python 3.10 bis 3.12) sowie zusätzlich auf Ubuntu und macOS (Python 3.11) aus.
192192

193-
Für Crawler, LLMs und Verzeichnisdienste liegt ein knapper maschinenlesbarer Projektkontext in [llms.txt](llms.txt). Die Community-Workflows verwenden aktuelle `actions/stale`- und `actions/first-interaction`-Versionen.
194-
195193
---
196194

197195
## Lizenz

WEBAPP.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
# MethodenAnalyser Lokale Weboberfläche
1+
# MethodenAnalyser Web Companion
22

33
Stand: 2026-05-24
44

5-
Die lokale Weboberfläche ist ein Hilfs-/Demo-Modus für schnelle Snippet-, Einzeldatei- und kleine ZIP-Analysen auf demselben Rechner. Sie ersetzt nicht die Desktop-App für ganze Projektordner, ist keine Companion-App und keine eigene Mobile-Produktlinie. Sie nutzt denselben Analysekern und dasselbe JSON-Format wie CLI und GUI.
5+
Der Web Companion ist eine lokale Web/PWA-Oberfläche für schnelle Snippet-, Einzeldatei- und kleine ZIP-Analysen. Er ersetzt nicht die Desktop-App für ganze Projektordner, sondern nutzt denselben Analysekern und dasselbe JSON-Format wie CLI und GUI.
66

77
## Start
88

@@ -30,7 +30,7 @@ Für Android-/iOS-Tests im selben WLAN:
3030
python webapp/server.py --host 0.0.0.0 --port 8765
3131
```
3232

33-
Die Oberfläche kann dann erkannte LAN-URLs anzeigen. Das ist nur ein technischer Testpfad für lokale Browser-Smokes, kein geplanter Android-/iOS-Releasepfad.
33+
Der Web Companion blendet dann im Bereich **Android/iOS-Testpfad** erkannte LAN-URLs und Install-Hinweise für Android sowie iPhone/iPad ein.
3434

3535
## Funktionen
3636

@@ -43,14 +43,14 @@ Die Oberfläche kann dann erkannte LAN-URLs anzeigen. Das ist nur ein technische
4343
- PWA installieren und nach der ersten Nutzung offline erneut öffnen.
4444
- Statische PWA-Dateien mit Service Worker cachen; die Analyse-API bleibt lokal und wird nicht gecacht.
4545

46-
## Browser-Verhalten
46+
## Mobile/PWA-Verhalten
4747

48-
- Chrome und Edge können die Oberfläche als installierbare PWA anbieten.
49-
- Für lokale Browser-Smokes zeigt die Oberfläche den empfohlenen LAN-Startbefehl und, falls erkannt, direkte URLs zum Kopieren.
50-
- Die **PWA-Testkarte** bündelt App-Modus, Install-Flow, Service-Worker-Status, lokalen Speicher, Viewport und den erkannten Serverpfad in einer kopierbaren Kurzdiagnose.
48+
- Chrome und Edge können die App als installierbare PWA anbieten.
49+
- Für mobile Tests im selben WLAN zeigt die Oberfläche den empfohlenen LAN-Startbefehl und, falls erkannt, direkte Geräte-URLs zum Kopieren.
50+
- Die neue **PWA-Testkarte** bündelt App-Modus, Install-Flow, Service-Worker-Status, lokalen Speicher, Viewport und den erkannten Serverpfad in einer kopierbaren Kurzdiagnose für Android-/iOS-Smokes.
5151
- Bereits geladene Oberfläche bleibt durch den Service Worker auch ohne laufenden Server erreichbar.
5252
- Neue Analysen benötigen weiter den lokalen Python-Prozess; offline bleiben Entwurf, letzter JSON-Report, importierte Reports und die UI verfügbar.
53-
- Android und iOS sind keine Zielplattformen; es gibt keine native App, keine Mobile-Roadmap und keinen Cloud-Sync.
53+
- Android und iOS nutzen dieselbe Web-Linie; es gibt weiterhin keine native App und keinen Cloud-Sync.
5454

5555
## Lokale API
5656

0 commit comments

Comments
 (0)