Conversation
Cutting the bridge mid transfer produced "Migration complete", listed the 816 files that failed as a footnote, and set the done flag. Eight of 824 files had copied, the user was told it succeeded, and the automatic path would never try again. The cause is that per file errors are caught inside the loop so one unreadable file cannot kill the whole run. A bridge that dies therefore looks like 800 separate file failures rather than one crash, so the interrupted path never fired, which is the exact case it was written for. Only a clean run now records the done flag; anything less stays retryable and is reported as a failure, with the count missing and either the retry promise or the Help menu entry to use. The dialogs also said too little. "All done." left the user asking what was done, and "did not finish" did not say how far it got. Success now names what came across and where from, as a list of projects, extensions and settings with a file total. Failures lead with how many of how many files copied, and state that what did copy has been kept. Recent projects came across unusable. The list is absolute paths, and three kinds were broken on arrival: /mnt entries are File System Access mounts whose handles are origin bound and were never migrated, anything that failed to copy is not there either, and the same project could appear twice because ProjectManager hands out a trailing slash while RecentProjects stores none, so the two spellings did not compare equal and one of them failed to open. Entries are now normalised, filtered against what is actually on disk, and merged with the list this origin already had rather than replacing it. The task list also opens itself when the transfer starts. Nothing else announces the migration now that there is no dialog up front, so without it a user looking elsewhere never learns why the app is busy.
|
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.



Cutting the bridge mid transfer produced "Migration complete", listed the 816 files that failed as a footnote, and set the done flag. Eight of 824 files had copied, the user was told it succeeded, and the automatic path would never try again.
The cause is that per file errors are caught inside the loop so one unreadable file cannot kill the whole run. A bridge that dies therefore looks like 800 separate file failures rather than one crash, so the interrupted path never fired, which is the exact case it was written for. Only a clean run now records the done flag; anything less stays retryable and is reported as a failure, with the count missing and either the retry promise or the Help menu entry to use.
The dialogs also said too little. "All done." left the user asking what was done, and "did not finish" did not say how far it got. Success now names what came across and where from, as a list of projects, extensions and settings with a file total. Failures lead with how many of how many files copied, and state that what did copy has been kept.
Recent projects came across unusable. The list is absolute paths, and three kinds were broken on arrival: /mnt entries are File System Access mounts whose handles are origin bound and were never migrated, anything that failed to copy is not there either, and the same project could appear twice because ProjectManager hands out a trailing slash while RecentProjects stores none, so the two spellings did not compare equal and one of them failed to open. Entries are now normalised, filtered against what is actually on disk, and merged with the list this origin already had rather than replacing it.
The task list also opens itself when the transfer starts. Nothing else announces the migration now that there is no dialog up front, so without it a user looking elsewhere never learns why the app is busy.