gramps
f31ce9fdb7
Hermetic real-MainWindow tests: LayoutPathOverride temp-DB seam (InternalsVisibleTo); fix tests persisting fake webcam sources over the real layout DB; LayoutStore delete-roundtrip guard
2026-08-06 15:16:58 -07:00
gramps
7bc70872d9
Round clip: true circle (Viewbox/1x1 ellipse) + grabbable corner handle (transparent source grid, non-hit-testable selection overlay); resize locks square in round mode
2026-08-06 15:05:21 -07:00
gramps
b64830ed11
Webcam grab: SharedReadOnly mode, VideoPreview/VideoRecord source fallback, name the blocking app in the error (NVIDIA Broadcast finding)
2026-08-06 14:42:54 -07:00
gramps
98cdc4b3f4
TASK 3 milestone 1: webcam capture (MediaCapture CPU-first, CameraManager refcount, picker, clip/mirror, schema v2, tests)
2026-08-06 14:35:34 -07:00
gramps
d97b5d375c
End Livestream completes the session: StopStream clears the OAuth session and DPAPI token (crash-safe sign-out)
2026-08-06 11:50:50 -07:00
gramps
4afe11e718
OAuth session persists via DPAPI; sign-in lives in the Start Stream dialog; add xUnit test project (6 passing)
2026-08-06 09:38:35 -07:00
gramps
8f0ecd3796
Resolution dropdown drives the output frame: vertical 9:16 tier with semi-crop preview over the fixed 1920x1080 master
2026-08-06 09:20:32 -07:00
gramps
4bf4a13299
Add Good Dog Rule to AGENTS.md: one integration test per branch, one test per PR
2026-08-06 09:06:42 -07:00
gramps
4ef11ef5ac
Branding flash monetization: full-frame 'made with ytLlive!' every 300s replaces the always-on watermark
2026-08-06 09:04:20 -07:00
gramps
3a2c87f518
Add AGENTS.md on-ramp, response-style rules, and optional No-Fluff Mode
...
- AGENTS.md: auto-read session on-ramp — memory-map reading order, working
rules, build command, and startup-log pointer
- ai.md: Response style section (no default planning boilerplate) plus an
optional, on-demand No-Fluff Mode for ruthless review; never the default
- schema.md: AGENTS.md listed as the always-read first page
2026-08-06 08:43:01 -07:00
gramps
a74162e34e
Resolution dropdown, list-focus preservation, unified dark theme, startup logging, and memory map
...
- Bottom-bar resolution dropdown (1080p60/1080p30/720p60/480p30) with tooltip
on finding upload bandwidth; disabled while live; no in-app speed test
- FocusPreservingListBox keeps selection/focus coherent when a selected
scene/source is deleted (skip hidden scenes; leave list when empty)
- Themes/Controls.xaml: single dark-theme dictionary merged once in App.xaml;
custom ComboBox template fixes SelectionBoxItem rendering; GoLiveWindow and
ReuseImageDialog consolidated onto shared styles
- AppLog file logger + AppDomain/Dispatcher exception hooks; checkpointed
MainWindow/VM/dialog constructors (caught MenuItemRole.Separator XAML crash)
- Memory map: schema.md conventions, per-directory index.md, updated ai.md/
TASKS.md/README.md (OAuth creds real; token persistence still pending)
2026-08-06 08:33:05 -07:00
gramps
7dc8490d96
Scene/source builder with image overlays, reuse dialog, and SQLite layout persistence
2026-08-04 17:12:32 -07:00
gramps
d6ae048583
Two-state flow with go-live dialog, unmissable live indicators, taskbar overlay
2026-08-04 10:54:21 -07:00
gramps
aae17a1511
Go Live gated on auth; scene building stays auth-free; update design docs
2026-08-04 10:40:51 -07:00
gramps
3caccfff1f
Go Live no longer requires YouTube connection; auth stays optional enhancement
2026-08-04 10:39:17 -07:00
gramps
4caf7eec8d
Three explicit buttons: Connect / Go Live / End Stream, shown per state
2026-08-04 10:37:38 -07:00
gramps
639e1bb323
Remove redundant OFFLINE/LIVE status pill; single button conveys state
2026-08-04 10:36:37 -07:00
gramps
4293ae11a4
Replace three-button cluster with a single context-aware primary button
...
Button follows the user journey: 'Connect to YouTube' (not signed in)
-> 'Go Live' (connected, idle) -> 'Stop Stream' (live).
2026-08-04 10:35:00 -07:00
gramps
8ee44f571e
UI polish: YouTube status light, Go Live/Stop Stream buttons with working visibility
2026-08-04 10:32:04 -07:00
gramps
d4945f4fd0
Make YouTube auth optional and non-blocking; manual stream key is baseline go-live path
2026-08-04 10:28:01 -07:00
gramps
8aebbff318
Add README with design principle, TASKS.md roadmap, and ai.md agent guide
2026-08-04 10:24:20 -07:00
gramps
b3c81f0af8
Silence CS1998 warning in StartStream stub
2026-08-04 09:16:54 -07:00
gramps
84599303fc
Fix HttpUtility reference in auth URL builder
2026-08-04 09:14:11 -07:00
gramps
29c33012c1
Add .gitignore
2026-08-04 09:10:07 -07:00
gramps
9103ff1fb7
Initial scaffold: ytLive C# WPF project
...
- MVVM architecture (Models, ViewModels, Views, Services, Helpers)
- Models: Scene, Source, StreamConfig, StreamHealth, YouTubeChannel, ChatMessage
- Services: YouTubeAuthService (OAuth2), YouTubeStreamService (broadcasts/stream health),
YouTubeChatService (live chat polling)
- ViewModels: MainViewModel with scene management, stream controls, chat
- MainWindow with dark theme: scene/source panel, preview area, chat panel, status bar
- Version roadmap: v0.1 (scenes, RTMP, OAuth2, chat, health) -> 1.0
2026-08-04 09:09:52 -07:00