Skip to content

fix: protect GUI report exports from write errors and collisions - #7

Merged
lukisch merged 1 commit into
masterfrom
fix/codex-atomic-text-report-20260930
Sep 30, 2026
Merged

lukisch merged 1 commit into
masterfrom
fix/codex-atomic-text-report-20260930

Conversation

@lukisch

@lukisch lukisch commented Sep 30, 2026 •

Copy link
Copy Markdown
Collaborator

GUI-Textberichte wurden bisher direkt geschrieben. Ein Formatierungsfehler hinterließ einen Teilbericht; Projektberichte konnten bei Schreibfehlern beschädigt werden. Die freie Namenswahl für Einzelberichte war außerdem nicht exklusiv und konnte zwischenzeitlich erstellte Dateien überschreiben.

GUI und JSON nutzen nun dieselbe vollständig geschriebene und fsync-geprüfte temporäre Berichtsdatei. Projektberichte werden atomar ersetzt. Einzelberichte werden per Hard Link exklusiv veröffentlicht; bei Kollision wird ein neuer nummerierter Name gewählt. Die Namenssuche berücksichtigt auch defekte Symlinks. Formatierung findet vor Schreiboperationen statt; bestehende GUI-Fehleranzeigen bleiben wirksam.

Validierung: drei ursprüngliche GUI-Prüfungen vor Fix fehlgeschlagen; sechs neue Prüfungen für Formatierung, Replace-/fsync-/Link-Fehler, konkurrierenden Export und erfolgreichen Projektbericht. Finale Suite lokal 231 bestanden, drei Symlink-Skips mangels Windows-Rechten, vier erwartete Latin-1-Warnungen. Ruff und git diff --check bestanden. Bestehende elf JSON-Schreibregressionen bleiben grün. README DE/EN und llms.txt ergänzt.

Grenzen: exklusive Einzelberichte benötigen Hard-Link-Unterstützung; bei fehlender Unterstützung sichtbarer Exportfehler, kein überschreibender Fallback. Kein Lock gegen dauerhafte konkurrierende Writer, keine directory-fsync-Crash-Durability-Zusage. Keine Versionsänderung, kein Release/Store-Update.

CI-Abnahme: finaler Head c7387aa; alle acht Windows/Linux/macOS-Testjobs und CodeQL erfolgreich (Run 36775909007). Linux Python 3.13: 234 bestanden, alle sechs neuen GUI-Exportprüfungen PASSED (Job 110093621997).

@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 4ef3b06 into master Sep 30, 2026
13 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