feat: BRB backdrop seed + docs refresh + Polar org ID
- Add brb-backdrop.jpg asset, SeedBrbBackdrop() mirrors Starting pattern - Update HANDOFF.md (was stale), TASKS.md (TASK 10 ready, TASK 15 2/5), ai.md (org ID) - Polar org ID c05fb364 obtained via OAT, recorded in CREDENTIALS.md
This commit is contained in:
@@ -704,17 +704,20 @@ free — the only difference between free and paid is the watermark.
|
||||
**Polar product:** `d105dfa1-497e-423b-8cd4-e0ee2e3abbc0` (LlamaCasty, $99/yr, currently `private`)
|
||||
**Checkout:** `llamacasty.com` → Polar hosted page (~80% configured)
|
||||
**Discounts:** `LLAMAFOUNDER` (100% off, 50 uses, `once`), `LLAMA50` (50% off, 12 months, unlimited)
|
||||
**Org ID:** `c05fb364-b967-4f6c-adf2-8a144e46d085` (org-scoped OAT — `organization_id` can be omitted from API calls)
|
||||
**Key prefix:** `LCYT-`
|
||||
**Validate endpoint:** `POST https://api.polar.sh/v1/customer-portal/license-keys/validate` (no auth required for client-side validation)
|
||||
|
||||
### Status: 🔶 Scoped — Polar infra live, in-app plumbing not built
|
||||
### Status: 🔶 Ready to execute — Polar infra live, org ID obtained, in-app plumbing not built
|
||||
|
||||
1. ✅ **Billing provider** — Polar (polar.sh) chosen and configured. Product, price, license key benefit, discounts, checkout link all created.
|
||||
2. ☐ **License key entry + verification UI** — About overlay or dedicated dialog; key entry field + validate against Polar API
|
||||
3. ☐ **Offline entitlement** — cached license state in `LayoutStore` (schema bump); online check at startup, offline grace period
|
||||
4. ☐ **BrandFlash → watermark toggle** — `BrandFlashEnabled = false` when licensed; the flash asset image needs to be created (the XAML `TextBlock` is preview-only, the compositor needs a `VideoFrame`)
|
||||
5. ☐ **Remove social slot locks** — all 6 social bar slots open to everyone (no `IsPremium` gating on slots 3-6)
|
||||
5. ✅ **Remove social slot locks** — all 6 social bar slots open to everyone (no `IsPremium` gating on slots 3-6) — shipped as TASK 10c
|
||||
6. ☐ **"Unlock Premium" button** — `PremiumUrl` set to `llamacasty.com` checkout; `IsPremiumAvailable` becomes true
|
||||
7. ☐ **Renewal/lapse handling** — key expiry check, grace period, re-prompt
|
||||
8. ☐ **In-app bug-report → git issues** — built-in report control; good error codes first, optional log attachment
|
||||
8. ☐ **Velopack auto-updates** — NuGet packages + UpdateManager shim + GitHub Releases (`gramps/ytLlive`)
|
||||
|
||||
---
|
||||
|
||||
@@ -845,12 +848,14 @@ No changes to `MusicPlayer`, the 0.20 cap, the ducker, or the meter zones. Build
|
||||
**Goal:** branded background images for each canonical scene (Starting, Live, BRB, Chat, Ending)
|
||||
that both provide working hints to creators and self-promote LlamaCasty.
|
||||
|
||||
### Status: ☐ Waiting on user to provide images
|
||||
### Status: 🔶 2/5 seeded — Starting and BRB done; Live, Chat, Ending waiting on user images
|
||||
|
||||
1. ☐ User provides 5 background images (one per canonical scene), PNG format, 1920×1080
|
||||
2. ☐ Wire images as default `Background` sources, auto-populated on DB seed (empty DB → each scene gets its branded bg)
|
||||
3. ☐ Assets stored in DB via `Asset` table (BLOB, SHA-256 keyed) — survives file deletion
|
||||
4. ☐ Used by TASK 16 (infinity display fix) as the static fallback when no game is detected
|
||||
1. ✅ **Starting backdrop** — `Assets/starting-backdrop.jpg` (embedded resource), `SeedStartingBackdrop()` in MainViewModel, idempotent
|
||||
2. ✅ **BRB backdrop** — `Assets/brb-backdrop.jpg` (user-provided Gemini image), `SeedBrbBackdrop()` in MainViewModel, idempotent
|
||||
3. ☐ User provides 3 more background images (Live, Chat, Ending), PNG/JPG format, 1920×1080
|
||||
4. ☐ Wire images as default `Background` sources, auto-populated on DB seed
|
||||
5. ☐ Assets stored in DB via `Asset` table (BLOB, SHA-256 keyed) — survives file deletion
|
||||
6. ☐ Used by TASK 16 (infinity display fix) as the static fallback when no game is detected
|
||||
|
||||
### Design decisions
|
||||
|
||||
@@ -939,18 +944,18 @@ capturing the primary display (which causes the infinity mirror effect).
|
||||
|
||||
The tasks below are ordered by dependency and risk. Each task builds on the previous.
|
||||
|
||||
1. **TASK 9.4** — Live chat (right panel) — wire `YouTubeChatService.Start()`, parse messages, render in panel. Foundation for chat box source.
|
||||
2. **TASK 20** — Hotkeys — global keyboard shortcuts. Small scope, huge UX impact.
|
||||
3. **TASK 19** — Scene transitions — Cut/Fade/Move/Custom. Depends on compositor.
|
||||
4. **TASK 17** — Web source (WebView2) — enables alert ecosystem.
|
||||
5. **TASK 18** — Local recording — independent, but pairs with stream.
|
||||
6. **TASK 21** — Media source — video file playback for non-Live scenes.
|
||||
7. **TASK 22** — Audio sync offset — small, quality-of-life.
|
||||
8. **TASK 23** — Studio mode — lightweight preview before live.
|
||||
9. ✅ **TASK 3.18** — Chat box source — renders chat ON the stream. Depends on TASK 9.4 (same message parsing).
|
||||
10. **TASK 15** — Stock bg images — waiting on user.
|
||||
11. **TASK 16** — Infinity display fix — depends on TASK 15.
|
||||
12. **TASK 10** — Polar billing — in-app license key entry + watermark toggle.
|
||||
1. ✅ **TASK 9.4** — Live chat (right panel) — wire `YouTubeChatService.Start()`, parse messages, render in panel. Foundation for chat box source.
|
||||
2. ✅ **TASK 3.18** — Chat box source — renders chat ON the stream. Depends on TASK 9.4 (same message parsing).
|
||||
3. **TASK 10** — Polar billing — in-app license key entry + watermark toggle + Velopack auto-updates.
|
||||
4. **TASK 20** — Hotkeys — global keyboard shortcuts. Small scope, huge UX impact.
|
||||
5. **TASK 19** — Scene transitions — Cut/Fade/Move/Custom. Depends on compositor.
|
||||
6. **TASK 17** — Web source (WebView2) — enables alert ecosystem.
|
||||
7. **TASK 18** — Local recording — independent, but pairs with stream.
|
||||
8. **TASK 21** — Media source — video file playback for non-Live scenes.
|
||||
9. **TASK 22** — Audio sync offset — small, quality-of-life.
|
||||
10. **TASK 23** — Studio mode — lightweight preview before live.
|
||||
11. **TASK 15** — Stock bg images — Starting and BRB seeded; Live, Chat, Ending still waiting on user.
|
||||
12. **TASK 16** — Infinity display fix — depends on TASK 15.
|
||||
13. **TASK 13** — Social media launch kit — after all v1 features ship.
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user