Repository navigation
Cloud saves: pin tak 9b539d8 and turn cloudSaves on (RFC 0016) - #219
Merged
Merged
Conversation
…e migration FishE joins Night Ferry under RFC 0016. A signed-in player can turn on cloud backup from the Saves panel on fishe.play.danielstephenson.dev; until then nothing changes and no /v1/saves request is made. The old alias host never loads cloud.js, so its saves stay in that browser. The pre-slot migration (data/*.json -> slot_1) wrote over slot_1 when slot_1 already held a save, and a test asserted it. With cloud saves a save set brought in from another device could hold both layouts, so the old save now goes into the next free slot (the kit's rule) and an existing slot is never written over; with all 99 slots taken nothing is moved. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
FishE is added to arcade cloud saves (Stephenson-Software RFC 0016), following Night Ferry (Night-Ferry#5).
/tak/cloud.js), on top of the tak#22/Installation Script (Linux) #23 save guard already pinned (1bac386).cloudSaves: truein the page config. Nothing changes for a player until they sign in and press Turn on cloud backup in the Saves panel; until then no/v1/savesrequest is made. IndexedDB is still written first and the cloud is never in the save path.fishe.play.danielstephenson.dev. tak'sonArcadeHost()does not match the oldfishe.danielstephenson.devalias, so that page never loadscloud.jsand its saves stay in that browser; moving them over is Download my saves there and Load saves from a file on the arcade host (an import, which never replaces a save). The page's tip line says where backup is available.migrate_old_save_filesused to movedata/player.json(and its siblings) intoslot_1even whenslot_1already held a save, writing over it;test_migrate_old_save_files_slot1_existsasserted that overwrite. Once saves can arrive from another device, a store can hold both layouts, so the old save is now moved into the next free slot (the kit'sget_next_available_slotrule: any slot holding a file is taken), and with all 99 slots taken nothing is moved. Three tests cover it; a mutation probe that restores the old behaviour fails all three.Arcade-social only accepts uploads for games listed in the gateway's
config/play/saves.yamland, until the off-box backup exists, only from the owner's and the test account; that listing is a separate gateway PR.Before this is merged (merging deploys to arcade), old-format saves are made on the live build in persistent browser profiles, on both the arcade host and the alias host, and are checked byte for byte after the deploy.
Tests:
python -m pytest -qpasses locally with tak 9b539d8.🤖 Generated with Claude Code
drafted by Claude on behalf of Daniel Stephenson