Check Steam ownership of the paid app with BIsSubscribedApp; keep Debug fake ownership out of Release. Ref: https://partner.steamgames.com/doc/api/ISteamApps#BIsSubscribedApp
1.7 KiB
1.7 KiB
HANDOFF — 2026-11-02 (Steam ownership check)
State
main; local work unit, not pushed.- Distribution plan: one paid Steam app ($79 announced launch price, then $99) plus its associated free Demo. Same code; no subscription, DLC purchase, or GitHub binary.
IEntitlement.IsAppOwnedfeeds the app-wideMainViewModel.IsAppOwnedflag. Debug uses a fake owned result; the fake is excluded from Release.- Release ownership uses
BIsSubscribedApp(paidAppId)and fails closed when the ID or Steam is unavailable. The paid app ID is not configured yet; the Steamworks application is pending. - Steam's private-use clause is not, by itself, a proven blocker. EULA wording should expressly
allow commercial/monetized streaming; OBS is the relevant Steam software precedent. See
MyMistakes.md→ Steam distribution.
Next action
Day 1: grey out higher tiers for non-owners and link to the paid Steam page; then the system-message strip. The queued Debug-only test-access rule also needs checking. Keep one integration test per change.
Landmines
- The Demo has its own App ID. Ownership must check the paid app ID, never the Demo ID or test ID
480. - No fake ownership code or developer panel in Release.
- No Steam checkout in the app; Steam handles purchase and updates.
- The paid app ID is not available yet; Release stays fail-closed until it is configured.
verify.shclean app build passes;EntitlementTestspasses 5/5. Full suite currently has 13–14 UI/content failures; connection to this change is unconfirmed, investigate separately.- Bundled FFmpeg must stay outside the single-file exe (
ExcludeFromSingleFile="true"). - Build with Windows
dotnet.exe; run tests per class (the whole suite can hang in WASAPI teardown).