Repository navigation
Merge dev: games from your devices set themselves up again - #135
Merged
Merged
Conversation
The catalogue check on dev (2e9cb42) lets a game arriving from a peer be tracked at a folder the save catalogue names for it. Inside the game's install folder that went too far: "<base>/**/*.sav" and "<base>/<storeUserId>/..." stand for save files, but matched as a folder they took in any subfolder of the install - Binaries, Engine - and a paired device could then sync files into the game's own program folder. About 110 catalogue entries have such a pattern. Inside an install folder a folder is now vouched for only as the catalogue names it, never through a wildcard, and never when it already holds a program or library. Outside install folders nothing changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…again sivadaboi's dev branch, brought onto dev-public: - A game arriving from a paired device is tracked by itself wherever this device can vouch for the folder as that game's save: where the save catalogue or Steam says the game keeps its saves here, as well as a folder a scan noted or an emulator's save folder. Otherwise it is still offered on Home. - "Trust it to choose folders" on Devices (opensave peers trust), off by default, asks first, and is dropped when the device is unpaired. Only a device its signature proved counts. Migration 0038_peer_folder_trust. - An offered game's folder is looked for straight away, not at the next hourly scan. - The catalogue index is kept in memory, built once for everyone who needs it, and a caller can say how long it may wait. - The broad-folder check is case-insensitive on every system. Conflicts: - p2p/routes.go: the manifest query is kept for the held-state check (#106), and the proven device is passed for folder trust. - presets/ludusavi.go: dev's in-memory index cache replaces #102's separate no-wait path; loadManifestIndexNoWait is now manifestIndex(0), the same behaviour. #102's tests use the cache. - CHANGELOG.md: dev's entries folded into [Unreleased]. - The version stays 2.4.1 until the release sets it.
A game from a paired device is tracked by itself at a folder the save
catalogue gives that game here. A catalogue location whose folder is a
bare wildcard ("<winAppData>/*") stands for any folder at all, and would
have vouched for every folder in application data, Microsoft's included,
for the other device to write into. No current catalogue entry does
this, but the catalogue is downloaded weekly. Such a location now
vouches for nothing; a wildcard with a name around it ("JustADream*")
still names the game's own folder.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
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.
Brings sivadaboi's
devbranch ontodev-publicfor the next release.What
devadds:opensave peers trust <device> on). Off by default, asks before turning on, dropped when the device is unpaired. Only a device proven by its signature counts (LAN signature or relay MAC). Migration0038_peer_folder_trust.Conflicts resolved:
p2p/routes.go: the manifest query is kept for sync: a first meeting with a save one side has held is not asked about #106's held-state check, and the proven device is passed for folder trust.presets/ludusavi.go:dev's in-memory index cache replaces Don't hold the window for a game database rebuild #102's separate no-wait path.loadManifestIndexNoWaitis nowmanifestIndex(0), which behaves the same. Don't hold the window for a game database rebuild #102's tests now go through the cache, with longer waits so they don't flake under load.CHANGELOG.md:dev's entries folded into[Unreleased].dev-public(devhad 2.4.2); the release sets it.One addition (second commit): a catalogue location whose folder is a bare wildcard (
<winAppData>/*) no longer vouches for anything. It stood for any folder at all and would have vouched for every folder in application data, Microsoft's included. No current catalogue entry does this (checked: only prefix wildcards likeJustADream*, which still work), but the catalogue is downloaded weekly.TestCatalogueSaveLocation_ABareWildcardVouchesForNothingfails without it.Checks: full unit suite, frontend tests and build, and the full e2e suite pass locally. Apart from the two CLI tests that clash with a running OpenSave on the default port, and one Windows "file in use" flake that passes on rerun.