Files
LlamaCasty/HANDOFF.md
T
gramps 6208cb9409 feat(ui): route locked tiers through About
Keep non-owner resolution choices visible but muted. Selecting one preserves the free tier and opens About; external navigation is only the explicit llamacasty.com link. Ref: https://streamlabs.com/desktop
2026-11-02 09:41:38 -08:00

1.7 KiB
Raw Blame History

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.IsAppOwned feeds the app-wide MainViewModel.IsAppOwned flag. 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 next: 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.sh clean app build passes; EntitlementTests passes 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).