v1 task queue: add TASK 19-23 (transitions, hotkeys, media source, audio sync, studio mode)

- TASKS.md: added 5 new tasks for v1 feature completeness, execution order, updated backlog
- MONETIZATION.md: added v1 feature completeness section (competitive gap analysis)
- ai.md: added v1 task queue note in Current limitations/TODOs
- HANDOFF.md: updated session state and next steps
- ViewModels/SocialsDialogViewModel.cs: removed isPremium parameter (social slot locks)
- ViewModels/MainViewModel.cs: removed isPremium argument from SocialsDialogViewModel constructor
- ytLive.Tests/SocialsDialogViewModelTests.cs: updated 5 tests for unlocked slots
This commit is contained in:
2026-08-19 11:51:32 -07:00
parent f9ad7c2cb1
commit e97406d649
6 changed files with 375 additions and 103 deletions
+47 -42
View File
@@ -1,49 +1,54 @@
# Handoff — 2026-08-17
# HANDOFF — Session State
## State
- **Branch:** `main` — clean, everything pushed
- **Latest commit:** `b9173f5` (layout: cap side panel max widths)
- **Tests:** 207 passing, 0 warnings
- **App version:** 0.1.0
## Branch
`main` — dirty (social slot lock removal + doc updates)
## What shipped today
## What shipped this session
- **Branding palette + assets recorded** — `ai.md` Brand section (references `MARCOM.md`), `MARCOM.md` gets the full hex palette and asset inventory
- **AI transparency statement** — `ai.md` Brand section documents AI-assisted pair-programming
- **Monetization model updated** — `ai.md` Monetization section rewritten: no feature lock, only watermark difference; all features free for everyone
- **TASKS.md updated** — TASK 10 re-scoped (Polar billing, watermark-only), tasks 15-18 added (stock bg images, infinity display fix, web source WebView2, local recording)
- **TASK 10c shipped** — social slot locks removed: `SocialsDialogViewModel` no longer takes `isPremium` parameter, slots 3-6 always available, tests updated
- **v1 feature completeness** — competitive gap analysis completed; 5 new tasks added (19-23) for table-stakes features: scene transitions, hotkeys, media source, audio sync offset, studio mode
- **MONETIZATION.md updated** — v1 feature completeness section added with competitive context
- **ai.md updated** — v1 task queue documented in Current limitations/TODOs section
### Branding (`2d5d2e9`)
- Replaced all llama logo assets with new ytLlive branded icons
- `tyllive-icon.png` → window icons + About overlay
- `tyllive-icon.ico` → Windows app icon (multi-size)
- `ytLlive-logo.png` → full branded logo with tagline
## Polar.sh resources (from earlier session)
| Resource | ID |
|---|---|
| Product | `d105dfa1-497e-423b-8cd4-e0ee2e3abbc0` |
| Price | `7c1b6f70-cf8c-46df-9bc8-6703f9fa64d0` |
| Benefit | `80f66bc1-d5a3-44a1-b9ea-1709ae508535` |
| Checkout | `70e037cd-9bcb-414e-8b26-c82c1d268f65` |
| LLAMAFOUNDER | `01a8c29f-9bb8-4e96-9cbe-417a6a5cec9b` |
| LLAMA50 | `8cff803e-053f-49b4-8d12-d74d468f2943` |
| Checkout URL | `https://buy.polar.sh/polar_cl_ueMy8AyAClO0o0yo19IroZwKTbD587gzUsjEW3bFapw` |
### Creator feedback batch (`28765a0`) — 9 items
1. About box bg → `#0A0C1A` (matches icon bg)
2. Elements panel collapses when nothing selected / scene changes
3. OpacityChip moved from preview overlay into Elements panel
4. Color picker fix: `is not SceneElement` (was `Source`, silently blocked `WebcamSceneConfig`)
5. Red left accent bar on selected items in Scene/Source lists
6. ✓ character → Path checkmark icon
7. Removed ToolTip from green check buttons
8. Created `bugs.md` with first entry (iTunes audio on mic meter)
9. Full logo in README + About box uses `ytLlive-logo.png`
## Build
```bash
taskkill.exe /F /IM ytLive.exe # if running
"/mnt/c/Program Files/dotnet/dotnet.exe" build "C:\Users\gramp\Documents\Code\projects\ytLive\ytLive.csproj"
"/mnt/c/Program Files/dotnet/dotnet.exe" vstest "C:\Users\gramp\Documents\Code\projects\ytLive\ytLive.Tests\bin\Debug\net8.0-windows10.0.19041.0\ytLive.Tests.dll"
```
### Layout (`32f8923` → `b9173f5`)
- Proportional column sizing: left/right at `1*`, preview at `2*` (50% growth rate)
- Side panels capped: left 360px max, right 400px max
## Next steps
1. **Build + test** — verify social slot lock removal compiles and tests pass
2. **TASK 9 item 4** — live chat (poll + render + badges) — already coded, just needs wiring
3. **TASK 20** — hotkeys (global keyboard shortcuts) — small scope, huge UX impact
4. **TASK 19** — scene transitions (Cut/Fade/Move/Custom) — already scoped
5. **TASK 17** — web source WebView2 (enables alert ecosystem)
6. **TASK 18** — local recording (independent)
7. **TASK 21** — media source (video file playback) — pairs with TRAX for non-Live scenes
8. **TASK 22** — audio sync offset — small, quality-of-life
9. **TASK 23** — studio mode (lightweight preview)
10. **TASK 15** — wait for user to provide stock scene background images
11. **TASK 16** — kill infinity display (depends on TASK 15)
## New files
- `Helpers/NullToVisibilityConverter.cs` — shows element when null
- `bugs.md` — bug tracker
- `Assets/tyllive-icon.png`, `Assets/tyllive-icon.ico`, `Assets/ytLlive-logo.png`
## v1 vision
> A streaming tool that's intuitive and ready to go out-the-gate with nothing held back.
> Minimal configuration — they're ready to go live or record. Eliminate the OBS pain-point completely.
## Modified files
- `Models/SceneElement.cs` — added `IsDraggable` virtual property
- `Models/Source.cs` — `IsDraggable => Type == SourceType.Image`
- `Models/WebcamSceneConfig.cs` — `IsDraggable => true`
- `ViewModels/MainViewModel.cs` — `IsElementsPanelEmpty` property
- `Themes/Controls.xaml` — accent bar on selected ListBoxItem
- `MainWindow.xaml` — elements restructure, layout columns, About bg
- `MainWindow.xaml.cs` — OpacityChip removal, color picker fix
- `README.md` — centered logo
## Next up
- **TASK 9 item 4 — live chat** (`liveChat/messages` poll, right-panel render, Super Chat + membership badges)
- Item 8 (iTunes on mic meter) — logged in `bugs.md`, likely acoustic coupling, not a code bug
## Open items
- Polar checkout page ~80% configured — needs logo upload via dashboard
- Logo upload API was broken (Polar server 500 on `/v1/files/{id}/uploaded`) — upload via dashboard instead
- Full codebase rename (ytLlive → LlamaCasty) still pending