Repository navigation
CI grün: fehlender json-Import, undefinierte Variable, flake8-Fehlalarme - #2
Merged
Merged
Conversation
Der flake8-Schritt der GitHub-Action bricht seit Anfang Juli bei jedem Lauf mit 7 F821-Fehlern ab, dadurch läuft pytest nie an. Zwei der Meldungen sind echte Laufzeitfehler: editor/controller/snippet_controller.py json.load/json.dump werden benutzt, ohne dass json importiert ist. Folge: „Markierten Code als Snippet speichern" scheitert mit Speicherfehler, gespeicherte Snippets werden nie geladen. → import json ergänzt. ui/manager.py _filter_makros prüft `if inhalt_modus:` — die Variable existiert nirgends im Projekt. Folge: NameError, sobald im Makro-Browser ein Suchbegriff eingegeben wird. Die Statuszeile soll dort immer erscheinen, deshalb die Bedingung entfernt. InitGui.py Fehlalarm: _MODDIR wird über globals() gesetzt, weil FreeCAD die Datei per exec(code, globals, locals) ausführt und eine normale Zuweisung in exec-locals landen würde, wo Klassen-Methoden sie nicht sehen. Statische Prüfer erkennen das nicht — die vier Verwendungen bekommen „# noqa: F821" plus erklärenden Kommentar. tests/conftest.py (neu) test_editor_live.py importiert PySide6/PySide2 beim Laden. Ohne Qt — wie auf dem Actions-Runner — bricht pytest schon beim Einsammeln ab. Fehlt Qt, wird die Datei jetzt übersprungen. Beide CI-Schritte lokal geprüft: flake8 endet mit 0, pytest meldet 53 bestandene Tests. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SaJk9iHXDogxEwuRLiJ3ao
nullforge86
pushed a commit
that referenced
this pull request
Aug 12, 2026
Das Feature war mit PR #1 gemergt und mit PR #3 wieder entfernt worden, weil CI rot war. Die roten Läufe kamen jedoch von Altlasten auf main (fehlender json-Import, undefinierte Variable, flake8-Fehlalarme) und nicht von diesem Feature — auch der Lauf direkt nach dem Revert war noch rot. Behoben wurden sie mit PR #2; seitdem ist main grün. Dieser Commit stellt den ursprünglichen Stand unverändert wieder her: Projektkarte des gewählten Ordners im Prompt, Nachladen einzelner Dateien auf Anforderung der KI, drei Projekt-Werkzeuge und die Bedienung im KI-Panel unter „Projekt-Kontext". Beide CI-Schritte lokal mit Feature und Fixes zusammen geprüft: flake8 endet mit 0, pytest meldet 84 bestandene Tests. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SaJk9iHXDogxEwuRLiJ3ao
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.
Der
flake8-Schritt der GitHub-Action bricht seit Anfang Juli bei jedem Lauf aufmainmit 7F821-Fehlern ab. Dadurch läuftpytestnie an. Zwei der Meldungen sind echte Laufzeitfehler, eine ist ein Fehlalarm.Echte Bugs
editor/controller/snippet_controller.pyjson.loadundjson.dumpwerden benutzt, ohne dassjsonimportiert ist.Auswirkung: „💾 Markierten Code als Snippet speichern" schlägt mit Speicherfehler fehl, und gespeicherte Snippets werden beim Start nie geladen — der Fehler wird von
except Exceptionverschluckt und landet nur alsprintim Log.→
import jsonergänzt.ui/manager.py_filter_makrosprüftif inhalt_modus:— diese Variable existiert nirgends im Projekt.Auswirkung:
NameError, sobald im Makro-Browser ein Suchbegriff eingegeben wird. Die Trefferanzeige soll dort immer erscheinen, deshalb die Bedingung ersatzlos entfernt.Fehlalarm
InitGui.py_MODDIRwird überglobals()['_MODDIR'] = …gesetzt, weil FreeCAD die Datei perexec(code, globals, locals)ausführt — eine normale Zuweisung landete in exec-locals, wo Klassen-Methoden sie nicht sehen. Statische Prüfer erkennen das nicht.→ Die vier Verwendungen bekommen
# noqa: F821, dazu ein Kommentar am Zuweisungsblock, damit später niemand das „aufräumt".Damit pytest durchläuft
tests/conftest.py(neu)test_editor_live.pyimportiert PySide6 bzw. PySide2 schon beim Laden der Datei. Ohne Qt — wie auf dem Actions-Runner — bricht pytest bereits beim Einsammeln der Tests ab. Fehlt Qt, wird die Datei jetzt übersprungen; die Qt-freien Tests laufen unberührt weiter.Nebenwirkung: Sollte Qt später auf dem Runner installiert werden, braucht
test_editor_live.pyzusätzlich eine Anzeige (QT_QPA_PLATFORM=offscreen). Das ist hier bewusst nicht vorweggenommen.Geprüft
Beide CI-Schritte lokal exakt so ausgeführt wie in
.github/workflows/python-app.yml:Ohne Bezug zu #25 — die Änderungen sind unabhängig davon mergebar.
Generated by Claude Code