You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+8-3Lines changed: 8 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,15 +9,18 @@ Format basiert auf [Keep a Changelog](https://keepachangelog.com/de/1.1.0/).
9
9
-**UX-002 / Welle-1 U1** (`MethodenAnalyser3.py`, `locales/translations.json`): Sichtbarer Sprachschalter in der Menüleiste („Sprache / Language" → „Deutsch" / „English"). Menü, Schaltflächen, Tastaturhinweis und Willkommenstext stellen sich sofort um; die Auswahl wird pro Benutzer in `%APPDATA%\MethodenAnalyser\config.json` (bzw. `~/.config/MethodenAnalyser/config.json`) persistiert und beim nächsten Start wiederhergestellt. Das bisher ungenutzte `translator.py` / `locales/translations.json` ist damit im UI erreichbar. Regressionstests in `tests/test_language_switch.py`.
10
10
11
11
### Build / Packaging
12
+
-`releases/v3.0.0/PROVENANCE.md` dokumentiert den tatsächlichen lokalen Artefaktstand. Das historische v3.0.0-Bundle ist wegen fehlender Commitkette und einer vom gespeicherten Wert abweichenden EXE-SHA-256 bis zu einem reproduzierbaren Neubuild gesperrt; es wurde weder gelöscht noch durch eine neue Version ersetzt.
12
13
-`build_exe.bat` ergänzt einen reproduzierbaren PyInstaller-Build mit lokalem Workpath (lokales Build-Verzeichnis), zentralem Build-Exclude-Scanner und Kopie der fertigen EXE nach `dist\MethodenAnalyser.exe` sowie `MethodenAnalyser.exe`.
13
14
-`START.bat` startet unter Windows bevorzugt die gebaute EXE und fällt erst danach auf den Python-Start zurück.
14
15
-`MethodenAnalyser.spec` nutzt relative Projektpfade, bündelt Icon und `locales/` und deaktiviert UPX.
15
16
- GitHub-Actions-Smoke-Matrix pinnt Windows auf `windows-2025-vs2026` und macOS auf `macos-26`, damit die 2026-Runner-Migration vor dem Stichtag validiert wird.
16
17
17
18
### Fehlerbehebungen / Bug Fixes
18
-
-`webapp/server.py`: Statische Dateien werden nur noch über strikt normalisierte
19
-
Pfade unterhalb der erlaubten Roots ausgeliefert; Content-Types kommen aus
20
-
einer festen Endungs-Whitelist statt aus frei abgeleiteten Pfadwerten.
19
+
-`webapp/server.py`: Statische Dateien werden nur noch über strikt normalisierte Pfade unterhalb der erlaubten Roots ausgeliefert; Content-Types kommen aus einer festen Endungs-Whitelist statt aus frei abgeleiteten Pfadwerten.
20
+
-**A11Y-002** (`webapp/static/index.html`, `webapp/static/app.js`): Die Quelltyp-Umschaltung im Web Companion (`Snippet`, `Datei`, `ZIP`) markiert den aktiven Modus jetzt zusätzlich mit `aria-pressed`; Screenreader können den Segmentzustand damit erkennen, ohne dass die kompakte Oberfläche sichtbare Zusatzbeschriftungen braucht. Regressionstest in `tests/test_webapp_server.py`.
21
+
-**BS27-1** (`MethodenAnalyser3.py`): `run_project_analysis()` rief `output_widget.update()` auf (Zeilen 1529 + 1534), wodurch User-Events (z. B. Button-Klicks) während der laufenden Projektanalyse verarbeitet wurden — re-entranter Aufruf der Funktion war möglich. Fix: beide Aufrufe auf `update_idletasks()` geändert (verarbeitet nur Render-/Layout-Jobs, keine User-Events). Regressionstests in `tests/test_bugsweep_gui_threading_export_20260627.py`.
22
+
-**BS27-2** (`MethodenAnalyser3.py`): `analyze_project()` ignorierte `UnicodeDecodeError` in der `total_lines`-Zählschleife kommentarlos (kein Latin-1-Fallback) — Zeilenzahl für Latin-1-kodierte `.py`-Dateien wurde als 0 gezählt. Fix: Latin-1-Fallback konsistent mit `analyze_file()` ergänzt. Regressionstest in `tests/test_bugsweep_gui_threading_export_20260627.py`.
23
+
-**BS27-3** (`MethodenAnalyser3.py`): `run_analysis()` verwendete das Emoji `📄` im Widget-Insert für den Datei-Header (Zeile 1095) — inkonsistent mit dem vorherigen Emoji-Cleanup in `get_summary()`. Fix: `📄` durch `[DATEI]` ersetzt.
21
24
-**UX-001** (`MethodenAnalyser3.py`): Die Hauptaktionen der Tkinter-GUI hatten keine sichtbaren Tastaturhinweise und keine direkten Shortcuts. Fix: kompakte Shortcut-Zeile (`Alt+D`, `Alt+P`, `Alt+F`, `F1`) ergänzt, globale Tastaturkürzel gebunden und die Initialansicht auf Tastaturnutzung vorbereitet. Regressionstests in `tests/test_cli.py` sichern Hinweistext und Shortcut-Bindings ab.
22
25
-**B-004** (`MethodenAnalyser3.py`): `auto_fix_unused_imports` las Dateien ausschließlich als UTF-8, was bei Latin-1-kodierten Quellcode-Dateien zu `UnicodeDecodeError` führte. Fix: UTF-8-First mit `latin-1`-Fallback via `readlines()` (Zeilennummern bleiben mit `ast.lineno` synchron). 9 Regressionstests in `tests/test_cli.py` ergänzt.
23
26
-**B-005** (`MethodenAnalyser3.py`): `analyze_project` fing nur `IOError`/`OSError`, nicht `UnicodeDecodeError` — Latin-1-Dateien brachen den gesamten Projekt-Scan ab. Fix: `UnicodeDecodeError` in denselben `except`-Block aufgenommen.
@@ -44,6 +47,8 @@ Format basiert auf [Keep a Changelog](https://keepachangelog.com/de/1.1.0/).
44
47
-`releases/windowsstore/store_settings.json`, `BUILD.md` und die DE/EN-Store-Listings sind auf den realen Projektstand, aktuelle GitHub-URLs und den dokumentierten Pretest-Workflow synchronisiert.
45
48
46
49
### Hinzugefügt / Added
50
+
-`tests/test_webapp_server.py` sichert jetzt die HTTP-Request-Grenze (413), ungültiges Base64, beschädigte und Python-lose ZIPs, Einzeldatei-/Gesamtgrößen, Dateianzahl sowie Windows-Backslash-Traversal ab.
51
+
- Die lokale Web-Runtime weist für den bewussten LAN-Testmodus auf lokales HTTP ohne Authentifizierung/TLS hin. WEBAPP, README-Paar, Portierungsplan und Privacy-Policy halten den Loopback-Standard, die vertrauenswürdige-LAN-Grenze und den Nicht-Ziel-Status der Mobile-Produktlinie konsistent fest.
47
52
- GitHub-Actions-Smoke-Matrix prüft den Quellstand jetzt auf Windows (Python 3.10-3.12) sowie zusätzlich auf Ubuntu und macOS (Python 3.11), inklusive Compile-, Tkinter-Import- und `unittest`-Smoke.
48
53
- Lokaler Web/PWA-Companion unter `webapp/` mit Snippet-/Einzeldatei-Analyse über den bestehenden Python-Analyse-Kern.
49
54
- Web/PWA-Companion kann jetzt auch kleine ZIP-Archive mit `.py`-Dateien lokal hochladen, temporär entpacken und als Mini-Projekt analysieren.
Copy file name to clipboardExpand all lines: PRIVACY_POLICY.md
+10-2Lines changed: 10 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Privacy Policy — MethodenAnalyser
2
2
3
-
**Last updated:**March 13, 2026
3
+
**Last updated:**July 22, 2026
4
4
**Publisher:** Geiger
5
5
6
6
## Overview
@@ -21,6 +21,10 @@ The application analyzes Python source files that you choose to open or scan. Al
21
21
22
22
MethodenAnalyser does not connect to any external services or the internet. It is a fully offline application.
23
23
24
+
## Optional Local Web Helper
25
+
26
+
The optional browser helper listens on `127.0.0.1` by default and processes uploaded code only in the local Python process. An explicit `--host 0.0.0.0` start is a technical LAN test mode, not a cloud service or mobile product. It uses local HTTP without authentication or TLS; use it only on a trusted private network and do not submit sensitive code from an untrusted network.
27
+
24
28
## Local Storage
25
29
26
30
The application may store user preferences (e.g., window size, last opened directory) locally on your device. No data is synced to external servers.
@@ -43,7 +47,7 @@ For questions about this privacy policy:
43
47
44
48
# Datenschutzrichtlinie — MethodenAnalyser
45
49
46
-
**Zuletzt aktualisiert:**13. März 2026
50
+
**Zuletzt aktualisiert:**22. Juli 2026
47
51
**Herausgeber:** Geiger
48
52
49
53
## Überblick
@@ -64,6 +68,10 @@ Die Anwendung analysiert Python-Quelldateien, die Sie öffnen oder scannen möch
64
68
65
69
MethodenAnalyser stellt keine Verbindung zu externen Diensten oder dem Internet her. Es handelt sich um eine vollständig offline nutzbare Anwendung.
66
70
71
+
## Optionaler lokaler Web-Hilfsmodus
72
+
73
+
Der optionale Browser-Hilfsmodus bindet standardmäßig an `127.0.0.1` und verarbeitet hochgeladenen Code nur im lokalen Python-Prozess. Ein expliziter Start mit `--host 0.0.0.0` ist ein technischer LAN-Testmodus, kein Cloud-Dienst und keine Mobile-Produktlinie. Er nutzt lokales HTTP ohne Authentifizierung oder TLS; deshalb nur in einem vertrauenswürdigen privaten Netz verwenden und keinen sensitiven Code aus einem fremden/offenen Netz übermitteln.
74
+
67
75
## Lokale Speicherung
68
76
69
77
Die Anwendung kann Benutzereinstellungen (z. B. Fenstergröße, zuletzt geöffnetes Verzeichnis) lokal auf Ihrem Gerät speichern. Es werden keine Daten mit externen Servern synchronisiert.
For further details, consult [WEBAPP.md](WEBAPP.md).
117
+
This deliberate LAN test mode uses local HTTP without authentication or TLS. Use it only on a trusted private network; it is neither a cloud service nor a mobile product line. For further details, consult [WEBAPP.md](WEBAPP.md).
118
118
119
119
### 5. macOS and Linux Source Verification
120
120
While the GUI is optimized for Windows (using Tkinter), the codebase is fully verified to run from source on macOS and Linux. You can run unit tests and compile checks with:
MethodenAnalyser operates 100% locally. Your Python code, local file paths, and analysis results are never sent over the internet. There are no analytics, cloud integrations, telemetry features, or third-party tracking scripts.
175
+
MethodenAnalyser operates 100% locally. Your Python code, local file paths, and analysis results are never sent over the internet. There are no analytics, cloud integrations, telemetry features, or third-party tracking scripts. The optional web helper binds to `127.0.0.1` by default. Its explicit `--host 0.0.0.0` LAN test mode has no authentication or TLS and must be used only in a trusted private network.
176
176
177
177
Build, packaging, and sign-related files are configured in`.gitignore` to stay outside of the version control system.
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.
118
+
Dieser bewusste LAN-Testmodus nutzt lokales HTTP ohne Authentifizierung oder TLS und gehört ausschließlich in ein vertrauenswürdiges privates Netz. Er ist weder ein Cloud-Dienst noch eine Mobile-Produktlinie. Details stehen in [WEBAPP.md](WEBAPP.md).
118
119
Zusätzlich bündelt die **PWA-Testkarte** Install-Status, Service-Worker-, Speicher- und Viewport-Diagnostik in einer kopierbaren Kurzfassung für lokale Browser-Smokes.
MethodenAnalyser arbeitet vollständig lokal. Der ausgewählte Python-Code, Dateipfade und Analyseergebnisse werden nicht an den Entwickler oder externe Dienste übertragen.
175
+
MethodenAnalyser arbeitet vollständig lokal. Der ausgewählte Python-Code, Dateipfade und Analyseergebnisse werden nicht an den Entwickler oder externe Dienste übertragen. Der optionale Web-Hilfsmodus bindet standardmäßig an `127.0.0.1`; sein expliziter LAN-Testmodus `--host 0.0.0.0` hat keine Authentifizierung und kein TLS und darf nur in einem vertrauenswürdigen privaten Netz verwendet werden.
175
176
176
177
Release-Artefakte wie EXE-Dateien, lokale Builds und Store-Pakete bleiben außerhalb des Git-Repositorys und gehören in lokale `releases/`-Ordner oder GitHub Releases.
Copy file name to clipboardExpand all lines: RELEASES.md
+15-7Lines changed: 15 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
# RELEASES - MethodenAnalyser
2
2
3
-
Stand: 2026-05-01
4
-
Aktuelles lokales EXE-Bundle:`v3.0.0`
3
+
Stand: 2026-07-22
4
+
Direktdownload-Bundle `v3.0.0`: **gesperrter Legacy-Stand, nicht aktuell freigegeben**.
5
5
6
6
## Struktur
7
7
@@ -16,15 +16,23 @@ releases/
16
16
`-- ...
17
17
```
18
18
19
-
## Aktueller Stand
19
+
## Aktueller Stand und Abgrenzung
20
20
21
-
-`dist/MethodenAnalyser.exe` ist der frische lokale Build aus dem aktuellen Quellstand.
22
-
-`releases/v3.0.0/` enthält die lokalen GitHub-/Direktdownload-Artefakte.
21
+
-`releases/v3.0.0/` enthält historische lokale GitHub-/Direktdownload-Artefakte. Ihr genauer Auditstand steht in [`releases/v3.0.0/PROVENANCE.md`](releases/v3.0.0/PROVENANCE.md).
22
+
-`dist/MethodenAnalyser.exe` ist derzeit nicht vorhanden. Ein Root-EXE oder ein historisches v3.0.0-EXE darf deshalb nicht als frischer `dist`-Build ausgegeben werden.
23
+
- Das v3.0.0-EXE weicht von der gespeicherten SHA-256-Zeile ab; Source-ZIP und Changelog haben keinen belegten Quellcommit. Bis zu einem sauberen Neubuild mit Commit- und Hashnachweis ist das Bundle nicht für Direktdownload oder Promotion freigegeben.
23
24
-`releases/windowsstore/` bleibt getrennt für den MSIX-/Store-Workflow.
25
+
- Das MSIX-/WACK-Gate ist ein eigener Ablauf und ersetzt keine Direktdownload-Provenienz.
24
26
- Der Ordner `releases/` ist absichtlich per `.gitignore` ausgeschlossen. Verteilbare Binärartefakte gehören in lokale Release-Ordner oder GitHub Releases, nicht in den Git-Quellbaum.
25
27
28
+
## Nächster freigegebener Buildablauf
29
+
30
+
1. Einen konkreten, geprüften Quellcommit und die Buildumgebung festhalten.
31
+
2. EXE, Source-ZIP und Changelog aus genau diesem Stand erzeugen und ihren Start-/Inhaltscheck dokumentieren.
32
+
3. Erst dann `SHA256SUMS.txt` ausschließlich aus diesem vollständigen Artefaktsatz erzeugen, gegenlesen und eine neue Aktualitätsentscheidung treffen.
33
+
4. Store/MSIX nur als separaten, zusätzlich zu belegenden Gate-Schritt behandeln.
34
+
26
35
## Letzte Pflege
27
36
28
-
- 2026-04-29: Lokales EXE-Bundle, Source-ZIP und Checksummen aus dem aktuellen Arbeitsstand aktualisiert.
37
+
- 2026-07-22: Provenienz-Audit: v3.0.0 wegen fehlender Commit-Kette und abweichender EXE-Checksumme gesperrt; keine Dateien gelöscht, keine neue Version oder neue Checksumme erzeugt.
29
38
- 2026-05-01: Release-Dokumentation an die GitHub-Policy angepasst: Artefakte bleiben lokal oder in GitHub Releases.
30
-
- 2026-05-16: GitHub-Hygiene geprüft; Build-, Cache-, Coverage- und Signierartefakte bleiben ignoriert, verteilbare Dateien weiterhin außerhalb des Quellbaums.
Copy file name to clipboardExpand all lines: WEBAPP.md
+7-5Lines changed: 7 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# MethodenAnalyser Lokale Weboberfläche
2
2
3
-
Stand: 2026-05-24
3
+
Stand: 2026-07-22
4
4
5
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.
6
6
@@ -30,7 +30,7 @@ Für Android-/iOS-Tests im selben WLAN:
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
+
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. Der LAN-Modus nutzt bewusst nur lokales HTTP: Es gibt keine Authentifizierung und kein TLS. Deshalb nur in einem vertrauenswürdigen, eigenen Netz starten und keinen Quellcode oder Bericht über fremde/offene Netze senden.
34
34
35
35
## Funktionen
36
36
@@ -83,12 +83,14 @@ Response:
83
83
}
84
84
```
85
85
86
-
## Datenschutz
86
+
## Datenschutz und LAN-Grenze
87
87
88
-
Der Web Companion läuft auf `127.0.0.1`. Code wird an den lokalen Python-Prozess gesendet, nicht an externe Dienste. Es gibt keine Telemetrie, keine Cloud-Synchronisierung und keine externen CDN-Abhängigkeiten.
88
+
Der Standardstart bindet ausschließlich an `127.0.0.1`; damit ist die Oberfläche nur auf diesem Rechner erreichbar. Code wird an den lokalen Python-Prozess gesendet, nicht an externe Dienste. Es gibt keine Telemetrie, keine Cloud-Synchronisierung und keine externen CDN-Abhängigkeiten.
89
+
90
+
`--host 0.0.0.0` oder eine andere LAN-Adresse ist eine bewusste Ausnahme für einen technischen Test im selben vertrauenswürdigen Netz. Der Server bietet dabei weder Authentifizierung noch TLS und ist kein Internet-Deployment. Alle Clients, die die LAN-URL erreichen, können die lokale Analyse-API verwenden; keine sensitiven Dateien oder Berichte über ein fremdes/offenes Netz übertragen.
89
91
90
92
## Grenzen
91
93
92
94
- Große Projektordner bleiben Aufgabe der Desktop-/CLI-Version.
93
95
- ZIP-Uploads sind bewusst klein gehalten: nur `.py`-Dateien, begrenzte Archivgröße und keine beliebigen Binärdateien.
94
-
- Android und iOS sollen über dieselbe PWA-Linie getestet werden; native Apps sind weiterhin kein Ziel.
96
+
- Android und iOS können nur über diesen technischen PWA-/Browser-Smoke im selben WLAN geprüft werden; native Apps und eine Mobile-Produktlinie sind weiterhin Nicht-Ziele.
0 commit comments