-
-
Notifications
You must be signed in to change notification settings - Fork 61
feat(project-system): recover malformed element files without ever rewriting them #2159
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
yuto-trd
wants to merge
35
commits into
main
Choose a base branch
from
fix/malformed-element-recovery
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 7 commits
Commits
Show all changes
35 commits
Select commit
Hold shift + click to select a range
b10445d
feat(project-system): recover malformed element files without ever re…
yuto-trd 1688213
fix(review): harden malformed-element recovery per review findings
yuto-trd b8acc32
fix(review): preserve recovered sidecars as raw bytes and reject bad …
yuto-trd e663648
fix(review): harden recovery detection, identity, and rehome writes
yuto-trd 13d9a62
fix(review): make the rehome write atomic and null-guard generic disc…
yuto-trd 29f8926
fix(review): guard nested discriminators, animation warnings, delete …
yuto-trd be2f05d
fix(review): tighten rehome failure handling, recovered-id determinis…
yuto-trd 59bd61d
fix(review): stabilize recovered identities cross-platform and unbloc…
yuto-trd 0b0eb8f
fix(review): reserve recovered ids scene-wide, persist them authorita…
yuto-trd defc57d
fix(review): project all recovered fallbacks and expose structured re…
yuto-trd e69843f
fix(review): deduplicate recovered elements' descendant ids determini…
yuto-trd c285943
fix(review): survive repairs, migrations, and wrapped IO across the r…
yuto-trd 1f6048e
fix(review): stabilize remap keys, undoable repairs, and richer recov…
yuto-trd ef21083
fix(review): keep lossy elements frozen, surface incident-only recove…
yuto-trd 6e14fe9
fix(review): resume persistence on every repair path and harden claim…
yuto-trd cd491cc
fix(review): migrate reference expressions, resume persistence on eve…
yuto-trd 7ad8efc
fix(review): resume persistence on remove/target assignment, harden e…
yuto-trd eb982ce
fix(review): preserve recovered references and sidecars
yuto-trd cf86c1d
fix(review): close remaining recovery persistence gaps
yuto-trd b7c3029
fix(review): close nested recovery gaps
yuto-trd c559def
fix(review): preserve escaped recovered element ids
yuto-trd 920a767
fix(review): cover extended recovery graphs
yuto-trd 7085180
fix(review): close remaining recovery gaps
yuto-trd 714efed
fix(review): preserve recovery integrity
yuto-trd ccf5e4d
fix(review): close recovery gaps
yuto-trd 4402ffb
fix(review): harden recovered sidecar state
yuto-trd c532e37
fix(review): resume persistence for cleared presenter targets
yuto-trd 1a0b98d
fix(review): harden recovery migrations and edits
yuto-trd b01b8b9
fix(review): close recovery traversal gaps
yuto-trd 400f7a9
fix(review): complete recovery graph handling
yuto-trd d0db527
fix(review): harden recovery boundaries
yuto-trd cbb2493
fix(review): preserve recovered reference state
yuto-trd 81cfb0c
refactor!: harden malformed-element recovery
yuto-trd 5dd66cd
style: satisfy format check
yuto-trd 9c0ccf9
fix: preserve recovery repair workflows
yuto-trd File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
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
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
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
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| namespace Beutl.Serialization; | ||
|
|
||
| /// <summary> | ||
| /// Thread-local tally of fallback substitutions, letting a caller detect fallbacks created in | ||
| /// positions a hierarchical traversal of the deserialized result cannot reach (e.g. plain | ||
| /// property values such as keyframe values). | ||
| /// </summary> | ||
| internal static class DeserializationIncidents | ||
| { | ||
| [ThreadStatic] | ||
| private static int t_fallbackCount; | ||
|
|
||
| internal static int FallbackCount => t_fallbackCount; | ||
|
|
||
| internal static void RecordFallback() => t_fallbackCount++; | ||
| } |
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
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| namespace Beutl; | ||
|
|
||
| /// <summary> | ||
| /// The retained on-disk bytes of an object the serializer must not regenerate, together with the | ||
| /// location those bytes came from. The source location is never rewritten; any other location | ||
| /// receives a verbatim copy. | ||
| /// </summary> | ||
| internal sealed record SuppressedStorageSource(byte[] RawBytes, Uri SourceUri); |
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
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
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.