Skip to content

fix(export): protect SQLite sources and preserve outputs on failure - #2

Merged
lukisch merged 3 commits into
masterfrom
fix/codex-export-transaction-20261001
Oct 1, 2026
Merged

lukisch merged 3 commits into
masterfrom
fix/codex-export-transaction-20261001

Conversation

@lukisch

@lukisch lukisch commented Oct 1, 2026 •

Copy link
Copy Markdown
Collaborator

Beim Export auf die gerade geöffnete Datenbank überschrieben CSV und JSON die SQLite-Datei trotz schreibgeschützter Verbindung und meldeten Erfolg. Beide Exportwege schützen jetzt Haupt- und eingebundene Datenbanken samt Standardbegleitdateien und Dateialiasen. Daten und Herkunft werden vor dem Dateidialog festgehalten; neu eingebundene Dateien werden vor Veröffentlichung erneut berücksichtigt.

Ausgaben entstehen vollständig in einer exklusiven eigenen temporären Datei im Zielverzeichnis und ersetzen das Ziel erst nach Synchronisierung, Schließen und erneuter Schutzprüfung. Fehler erhalten vorhandene Ausgaben. CSV- und JSON-Formate bleiben erhalten.

Lokal: 99 Tests bestanden, darunter 39 neue Exportregressionen; separater Source-Smoke 7 Tests bestanden. Ruff, actionlint und Diff-Prüfung erfolgreich. Am finalen Commit 5518f2e sind alle sechs CI-Matrixjobs unter Windows/Linux/macOS und Python 3.11/3.12 erfolgreich (Lauf 36886104571); jeder Job führt Source-Smoke/Metadaten und die vollständige Suite getrennt aus.

Unabhängige Abnahme am finalen Commit: 62 Prüfungen bestanden, zwei native Symlink-Skips wegen Windows-Berechtigung 1314, Controller Exit 0. Native Readonly-, Sharing-, Junction-, Hardlink-, ATTACH- und Fehlererhaltfälle bestanden. Vier zunächst rote Gegenproben für Windows-Namen mit abschließendem Punkt/Leerzeichen sind nach Korrektur grün; mehrdeutige Namen werden vor Staging abgewiesen, lexikalisch reservierte Sidecarnamen bleiben geschützt. Keine offenen P1/P2 im geprüften Umfang. Die simulierte Symlink-Auflösung ersetzt keine native Symlink-Abnahme.

Kein Schutzversprechen gegen gleichzeitige externe Dateisystemänderungen zwischen letzter Prüfung und Ersetzung oder Stromausfall. Der Schutz umfasst die Standard-Sidecars -wal/-shm/-journal; besondere VFS-/Superjournal-Dateien und App-Einstellungen bleiben außerhalb dieses Vertrags. Keine Versions-, EXE-, Installations- oder Store-Änderung.

@github-actions

github-actions Bot commented Oct 1, 2026

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 007e92b into master Oct 1, 2026
10 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