Preserve libraries and backups after failed reads - #2
Merged
Merged
Conversation
|
Welcome! Thanks for your first pull request in this repository. A maintainer will review it soon. Please make sure:
Thanks for contributing! |
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.
Wenn eine Bibliotheksdatei vorübergehend nicht lesbar ist, behandeln die bisherigen Speicherpfade sie als leer und können vorhandene Prompts oder Boards beim nächsten Speichern überschreiben. Der Fix bricht alle Änderungen und Gesamtexporte bei solchen Ladefehlern ab und erhält bestehende Daten und Sicherungen.
Prompt- und Versionslöschungen lesen beide Bibliotheksdateien vor dem ersten Schreiben. Direkte Save-APIs prüfen ihren vorhandenen Bestand; Änderungen desselben Storage-Objekts verwenden einen gemeinsamen Lock. Speicherdialoge bleiben bei Fehlern offen und ändern geteilte Modelle erst nach erfolgreichem Speichern. Beide Wege zum Entfernen einer Board-Kachel verwenden den ergänzten Storage-Pfad.
Validierung: 273 Python-Tests bestanden; drei bekannte Auslassungen für zwei nicht mitgelieferte Release-Artefakte und echtes Rendering in der offscreen-Umgebung. Alle 46 Node-Web-Tests bestanden. 80 neue Tests prüfen Lesefehler, beschädigte Strukturen, beide Löschdateien, vorhandene Exporte, Wiederherstellung, parallele Änderungen und die tatsächlichen Qt-Speichern-Buttons. Die Originalfehler wurden separat gegen master 775b296 reproduziert; Unabhängige Abnahme für db46765 abgeschlossen; alle fünf CI-Jobs erfolgreich (Python 3.10 bis 3.13 und Web).
Grenzen: Die beiden JSON-Dateien bilden keine gemeinsame Transaktion. Andere Storage-Objekte oder Prozesse sowie Rechnerausfälle sind nicht abgesichert. Diese Änderung erzeugt keine neue EXE und enthält keine Browser-, Geräte- oder Store-Abnahme. Unterstützte Legacy-Defaults bleiben erhalten. Hinweise zur Wiederherstellung: LIBRARY_SAFETY.md.