Skip to content

fix(GameManager): repair protocol dispatch for install and move (refs #289) - #290

Open
bcupello wants to merge 1 commit into
MythicApp:mainfrom
bcupello:fix/gamemanager-dispatch-defects
Open

bcupello wants to merge 1 commit into
MythicApp:mainfrom
bcupello:fix/gamemanager-dispatch-defects

Conversation

@bcupello

Copy link
Copy Markdown

Two pre-existing defects in StorefrontGameManager witnesses, found while writing a new manager against them.

EpicGamesGameManager.install(game:qualityOfService:) recursed until the stack died. The typed overload requires forPlatform: and offers no default, so the call inside the witness re-selected the witness itself (EpicGamesGame is a Game). StorefrontGameManager.install is therefore unusable for Epic today — the UI only works because EpicGamesGameInstallationView calls the five-argument overload directly. The witness now resolves a platform from getSupportedPlatforms(), preferring Windows.

LocalGameManager.move(game:to:) built its operation with type .uninstall and never called queueOperation, so the returned operation was inert: its function never ran and moving a local game silently did nothing.

No behaviour changes for anything that already worked.

`EpicGamesGameManager.install(game:qualityOfService:)` recursed until the
stack died. The typed overload requires `forPlatform:` and offers no
default, so the call inside the witness re-selected the witness itself
(`EpicGamesGame` is a `Game`). `StorefrontGameManager.install` is therefore
unusable for Epic today; the UI only works because
`EpicGamesGameInstallationView` calls the five-argument overload directly.
The witness now resolves a platform from `getSupportedPlatforms()`,
preferring Windows.

`LocalGameManager.move(game:to:)` built its operation with type
`.uninstall` and never called `queueOperation`, so the returned operation
was inert -- its `function` never ran and the move silently did nothing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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