Conversation
Three changes to how the incoming side behaves. No confirmation step. The status bar task already says what is happening and the copy is additive rather than destructive, so stopping to ask only added a click to something the user did not choose to start. Completion is a notification carrying the reload action, since copied extensions load on the next boot. A dialog now appears for one reason only, an error. The dialog could previously reappear on every boot. Declining wrote nothing and the done flag was only written on success, so saying no or losing the connection part way meant being asked again next time, indefinitely. Attempts are now counted the moment a transfer starts rather than when it finishes, so an attempt that dies hard still burns its slot: one attempt, one retry, then the automatic path stops for good and the error names the exact Help menu entry to use. That entry is built from the same format call the menu itself uses, so the two cannot drift apart. A failure before the transfer starts, meaning the handshake or scan, still costs nothing and stays silent. Being offline for two boots must not permanently cost someone their migration, and those retries are invisible anyway, bounded by the sunset date. An interrupted run also used to fail silently unless it had been started from the menu, so someone who saw a task appear on boot and then nothing had no way to know. Failures are now reported whichever path started them. Metrics were count only, which told us nothing about volume or cost. Adds file and byte counts recorded before the run, so the size of what is out there is known even from failures, plus duration, per file cost, failure counts, and the skip reasons. Safari is counted too: without it there is no way to tell "nobody there needed this" from "we never offered it to them". Sunset date is 2026-09-01.
|
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.



Three changes to how the incoming side behaves.
No confirmation step. The status bar task already says what is happening and the copy is additive rather than destructive, so stopping to ask only added a click to something the user did not choose to start. Completion is a notification carrying the reload action, since copied extensions load on the next boot. A dialog now appears for one reason only, an error.
The dialog could previously reappear on every boot. Declining wrote nothing and the done flag was only written on success, so saying no or losing the connection part way meant being asked again next time, indefinitely. Attempts are now counted the moment a transfer starts rather than when it finishes, so an attempt that dies hard still burns its slot: one attempt, one retry, then the automatic path stops for good and the error names the exact Help menu entry to use. That entry is built from the same format call the menu itself uses, so the two cannot drift apart.
A failure before the transfer starts, meaning the handshake or scan, still costs nothing and stays silent. Being offline for two boots must not permanently cost someone their migration, and those retries are invisible anyway, bounded by the sunset date.
An interrupted run also used to fail silently unless it had been started from the menu, so someone who saw a task appear on boot and then nothing had no way to know. Failures are now reported whichever path started them.
Metrics were count only, which told us nothing about volume or cost. Adds file and byte counts recorded before the run, so the size of what is out there is known even from failures, plus duration, per file cost, failure counts, and the skip reasons. Safari is counted too: without it there is no way to tell "nobody there needed this" from "we never offered it to them".
Sunset date is 2026-09-01.