gramps
3a4e17c735
Account zone is world-independent: avatar stays in Record world
...
Creator on the live build: 'why do you make the youtube user icon go away?'
The TASK 42 one-surface bar had scoped the account zone to Stream only
('Record world has no YouTube identity at all'), so arming REC dropped the
avatar and the bar height bounced with it ('really fucking annoying').
Fix: ShowSignInButton / ShowAvatarButton are now plain !IsConnected /
IsConnected — app-level identity, present in both worlds, so the right
column never pops in/out and the bar height stays pinned. Test remains a
child of Stream (still stream-armed AND signed-in).
TopBarModeTests updated to the new contract: signed-out Record world shows
Sign In; flipping back to REC keeps the avatar. PillRadioTests untouched
(it only exercises the ON-AIR face). Docs corrected in-place (ai.md state
model, TASK 42 scope). Gate: clean build 0-warnings, 316/316, scope passed.
2026-09-23 16:53:25 -07:00
..
Monetization policy locked + dev pause recorded (docs changeset, 2026-08-14): the one paid line becomes an annual subscription — early access $49.99/yr → $99/yr list at GA, grandfather-while-subscribed with lapse → list on renewal (no escalation matrix); free tier unchanged (branding flash is the free tier's billboard + no Alerts, which is the one paid feature); billing NOT locked to itch.io (hunted fact: itch.io has no native subscription billing — candidates Gumroad, whose native affiliate program is the tiebreaker, and Lemon Squeezy); support = in-app bug-report → git issues with a when-I-get-around-to-it cadence + emergency patches. ai.md Monetization section rewritten + stale paid-unlock seams fixed (L115 subscription-entitlement wording, the About hub's tabled billing PremiumUrl seam); TASKS.md gains TASK 23 (Monetization — billing provider decision, unlock mechanism with lapse→flash-returns enforcement, in-app bug-report loop, Unlock Premium seam lighting, Alerts gating, and line-item pointers for the early-access strategy, affiliate/ads phase 2, and the channel revival); HANDOFF.md records the decisions + the development pause (resume streaming = pair-programming dev streams via OBS + The Division 2 under the gramps/GOAT persona, 67 and gaming since 1981, 3D-printing content retired; dogfood switch to ytLlive once TASK 5 lands; resume point = TASK 5). Stale itch.io assertions corrected across comments and indexes (MainViewModel.cs PremiumUrl/IsPremium seams, MainWindow.xaml tooltip, AboutHubTests comment, ViewModels/index.md, TASK 9 out-of-scope note). Build 0 warnings, 196 tests passing
2026-08-14 18:48:42 -07:00
2026-08-14 08:43:06 -07:00
2026-09-14 12:30:44 -07:00
2026-09-14 12:30:44 -07:00
2026-08-23 13:33:33 -07:00
2026-08-31 19:32:41 -07:00
2026-08-25 17:25:25 -07:00
2026-09-05 14:31:03 -07:00
2026-08-12 07:11:54 -07:00
2026-09-23 16:45:56 -07:00
2026-08-24 09:08:03 -07:00
2026-09-04 11:01:51 -07:00
2026-09-10 09:32:55 -07:00
2026-08-31 19:45:48 -07:00
2026-09-01 20:52:23 -07:00
2026-09-15 07:57:09 -07:00
2026-09-01 21:22:57 -07:00
2026-08-26 06:48:14 -07:00
2026-08-26 06:48:14 -07:00
2026-09-20 09:23:46 -07:00
2026-08-29 10:30:40 -07:00
2026-09-15 19:25:39 -07:00
2026-08-31 19:52:10 -07:00
2026-08-31 19:52:10 -07:00
2026-08-23 12:25:04 -07:00
2026-08-23 12:25:04 -07:00
2026-08-24 10:22:18 -07:00
2026-09-22 17:57:06 -07:00
TASK 7 UI polish batch: scene/source row cleanup, dedup naming, full social handles — scenes are now pure selection rows (edit/trash/visibility icons and inline rename removed with EditSceneCommand/RemoveSceneCommand/ToggleSceneVisibilityCommand + Scene.IsEditing); source rows gained the trio (new EditElementCommand → inline rename via SceneElement.IsEditing, ToggleElementVisibilityCommand → eye flips IsVisible, open/slashed style rebound, hidden rows dim to 45%); duplicate resource names get a no-space incrementing suffix via shared NextSourceName (Image, Image2, Image3…) derived from actual names so deletions never collide (AddSource + AddReusedImage); social bar renders the full validated handle (MaxWidth=200 + TextTrimming removed from SocialBarRenderer and the preview template); side panels stay fixed 220/300; focus-loss capture lag documented in ai.md as a known OS limit (deferred) — the two real-App tests now share RealAppHost, a dedicated STA thread owning the single WPF App, instead of each calling new App(); new SourceNamingTests integration test (Text/Text2/Text3, delete-middle re-add no-collision) — 170 tests passing, 0 warnings
2026-08-13 18:50:56 -07:00
2026-08-29 09:02:55 -07:00
2026-09-18 10:20:25 -07:00
2026-09-14 16:14:00 -07:00
2026-08-23 13:33:33 -07:00
2026-09-12 13:56:55 -07:00
2026-08-31 17:53:34 -07:00
2026-09-14 18:40:20 -07:00
2026-08-13 08:57:56 -07:00
2026-09-01 22:25:20 -07:00
2026-08-13 11:04:32 -07:00
2026-08-19 11:51:32 -07:00
2026-08-13 09:29:58 -07:00
2026-08-23 13:33:33 -07:00
2026-08-16 17:48:37 -07:00
2026-09-22 17:57:06 -07:00
2026-08-06 09:38:35 -07:00
2026-09-23 16:53:25 -07:00
2026-09-17 09:16:56 -07:00
2026-09-01 22:25:20 -07:00
Screen backdrop (schema v5/v6) + five-scene catalog + webcam polish: live desktop/game capture as a permanent non-deletable bottom layer (Source.IsBackdrop), auto full-screen game detection (Win32FullScreenDetector) else primary display, GraphicsCapturePicker re-designation, refcounted shared ScreenCaptureManager, Live-only backdrop by policy (HasBackdrop + v5-v6 backfill + EnforceBackdropPolicy, checkbox gone), SceneCatalog (Starting/Live/BRB/Chat/Ending) with + button re-adding missing scenes, webcam mid-session transparent-container fix (GetPreviewBitmap propagation), Chat half-screen-area cap, 'Add Webcam' always opens the picker (SwapWebcamIdentityAsync, no silent resurrect), WindowsRuntimeMarshal frame-read + 5s-throttled errors, docs updated, tests (65 passing)
2026-08-07 14:15:50 -07:00
2026-09-17 08:56:04 -07:00
2026-09-14 16:14:00 -07:00
2026-09-22 07:00:47 -07:00
2026-08-10 10:15:58 -07:00
2026-09-23 08:28:59 -07:00
2026-09-23 16:45:56 -07:00
2026-08-06 14:35:34 -07:00