# HANDOFF — 2026-11-01 (the exe is LlamaCasty.exe; the depot folder builds and verifies) ## State - Branch `main`, level with `origin` through `8f79b20`; this unit (the artifact rename) is local. - **The shipped exe is `LlamaCasty.exe`.** `AssemblyName` renamed; four pack URIs fixed (the docs said three — `KeepBroadcastDialog.xaml:5` was the fourth); manifest, MSIX script and `StorePackagingTests` follow. Guarded by `ytLive.Tests/AssemblyIdentityTests.cs`. - **`scripts/publish.sh`** stages `artifacts/steam-stage` and refuses to finish if `ffmpeg\`, the licence, privacy or notices file is missing, or test assemblies leaked in. Output 257 MB. - **Distribution is Steam-exclusive** (creator ruling 2026-10-31): free app + paid edition as a Steam **DLC**; the **$10/month** plan sold off-Steam by Polar and *stated, never sold*, in-app. `commercial.md` → Channels is policy; `Distribution.md` is depot mechanics. - **Entitlement is `steamDlcOwned || polarKeyValid`**; `steam_api64.dll` ships beside the exe and the app must start without Steam, falling back to free. - **Site is live with Steam** (`a9d07ce`). `www.llamacasty.com` 301s to the apex. ## Next action 1. **OutputProfile gate** — ≤921,600 px / ≤30 fps for the stream **and** the recorder, greyed tier entries, plus the TASK 53 geometry tests that pin every tier. 2. Then the **entitlement seam** (`IEntitlement`, Steam DLC path behind a fake, Polar path) and the licence UI. 3. Steamworks: App ID waiting on identity verification; then depot, store page (public 2 weeks before release) and the DLC app. ## Landmines - **⛔ `ExcludeFromSingleFile="true"` on the ffmpeg content** — without it the publisher bundles libav\*.dll into the exe and the app ships unable to find ffmpeg. Recipe in `MyMistakes.md`. - **Nothing may gate a feature.** The only paid delta is the output profile; `ShowBrandFlash` stays `false` and entitlement must never enable it. - **No checkout inside a Steam build** — the Wallet rule. The monthly is named, never sold, in-app. - **The org access token never ships.** `organization_id` is public; the token is not. - **The site publishes the model, never the numbers**, and never takes payment or links a checkout. - **No self-updater and no version banner**: Steam updates the app. - Pre-existing: the **full test suite hangs** (WASAPI teardown) — per-class runs only; and `ytLive.Tests` carries 3 xUnit analyzer warnings the app-only gate does not see. - Not every hex is a theme colour — `BorderColorPalette`/chat defaults are USER DATA; on-stream graphics come from `OutputPalette`. A red settings control is still a bug.