Skip to content

fix: protect analyzed sources from JSON export - #5

Merged
lukisch merged 2 commits into
masterfrom
fix/codex-json-source-guard-20260930
Sep 30, 2026
Merged

lukisch merged 2 commits into
masterfrom
fix/codex-json-source-guard-20260930

Conversation

@lukisch

@lukisch lukisch commented Sep 30, 2026 •

Copy link
Copy Markdown
Collaborator

Bei --file source.py --json-output source.py überschreibt der JSON-Export bisher die analysierte Quelle; dasselbe gilt für Projektdateien, Hard Links und symbolische Links.

Die CLI prüft das Ausgabeziel vor dem Schreiben gegen analysierte Dateien mit aufgelösten Pfaden und Dateidentität. Projektdateien mit Syntaxfehlern werden ebenfalls geschützt. Ein Konflikt liefert Exit-Code 1; Quelle und Alias bleiben unverändert. Normale JSON-Exporte und Snippet-Ausgaben bleiben möglich.

Validierung: fünf neue Regressionen vor Fix fehlgeschlagen. Nach Fix lokal 215 bestanden, zwei Symlink-Fälle mangels Windows-Rechten übersprungen, vier erwartete Latin-1-Warnungen. Ruff, git diff --check und 20 Metadatenprüfungen bestanden. Symlink-Prüfungen sind für Linux/macOS in der CI enthalten.

Grenze: Pfadprüfung bietet keine Sperre gegen gleichzeitige externe Pfadänderungen. Der generische JSON-Schreibpfad wird hier nicht atomar umgestellt. Keine Versionsänderung oder Release-/Store-Aktion.

CI-Abnahme: finaler Head 660be8e; alle acht Windows/Linux/macOS-Testjobs und CodeQL erfolgreich. Testlauf 36773453773. Linux Python 3.13: 217 bestanden, inklusive beider Symlink-Regressionen (Job 110085689939).

@github-actions

Copy link
Copy Markdown

Welcome! 👋 Thanks for your first pull request in this repository.

A maintainer will review it soon. Please make sure:

  • Your changes are tested
  • Documentation is updated if needed
  • The PR description explains what and why

Thanks for contributing!

@lukisch
lukisch merged commit 9325846 into master Sep 30, 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