Skip to content

feat: point migration at phcode.dev now that it serves migrateAssist - #3154

Merged
abose merged 2 commits into
mainfrom
ai
Aug 29, 2026
Merged

feat: point migration at phcode.dev now that it serves migrateAssist#3154
abose merged 2 commits into
mainfrom
ai

Conversation

@abose

@abose abose commented Aug 29, 2026

Copy link
Copy Markdown
Member

LEGACY_ORIGIN was staging while the flow was validated end to end. phcode.io now ships migrateAssist.html and the Filer bundle at the paths the migration expects, so the origin actually holding the unmigrated data becomes the source and the comments that described it as staging go with it.

The pinned literal in the constants spec is updated alongside. It is not an incidental fixture: LEGACY_ORIGIN is not exported, so that literal is what would catch a staging origin reaching production and quietly pointing the migration at the wrong storage.

Note the ordering this implies: web.phcode.dev now frames phcode.dev for the handshake, so until the phcode.io build is deployed there the handshake times out and migration no ops. Boot is unaffected either way.

abose added 2 commits August 29, 2026 13:45
LEGACY_ORIGIN was staging while the flow was validated end to end. phcode.io
now ships migrateAssist.html and the Filer bundle at the paths the migration
expects, so the origin actually holding the unmigrated data becomes the
source and the comments that described it as staging go with it.

The pinned literal in the constants spec is updated alongside. It is not an
incidental fixture: LEGACY_ORIGIN is not exported, so that literal is what
would catch a staging origin reaching production and quietly pointing the
migration at the wrong storage.

Note the ordering this implies: web.phcode.dev now frames phcode.dev for the
handshake, so until the phcode.io build is deployed there the handshake times
out and migration no ops. Boot is unaffected either way.
The move is happening now rather than on an announced schedule, so the dialog
on the outgoing origin no longer counts down to a cutoff. It states that the
move is under way and leaves it there, which is also the honest thing to show:
naming a date we might not hold to is worse than naming none.

That removes SUNSET_DATE along with daysToSunset and isPastSunset, the two
countdown strings, and the specs covering them.

The guard this takes out of migrator was not cosmetic. It disabled automatic
migration once past SUNSET_DATE, which was three days away, so the feature
would have switched itself off almost immediately after the move began. What
it was really protecting against, probing an origin that is gone on every
boot forever, is already covered by MAX_AUTO_ATTEMPTS, and covered better:
one attempt and one retry per user, rather than one global date that has to
be guessed correctly in advance.

MIGRATE_MANUAL_DOWNLOAD_NOTE pointed Safari users at "the date above", which
no longer exists, so it now just asks them to download their projects.

The sunset-dialog module name and its metric event names are kept as they
are. No date is involved in either, and renaming the events would break
continuity with what has already been collected.
@sonarqubecloud

Copy link
Copy Markdown

@abose
abose merged commit b58c51d into main Aug 29, 2026
12 of 21 checks passed
@abose
abose deleted the ai branch August 29, 2026 09:25
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