Commit Graph

  • e7cded6879 docs: pricing ruled — $10/mo + $400 lifetime, and the 15% fee is verified for subscriptions main gramps 2026-09-27 15:02:25 -07:00
  • b2036a38e8 docs: no annual tier — Microsoft does not pro-rate, and that is unfixable from our side gramps 2026-09-27 14:33:25 -07:00
  • 85fad1ab79 docs: distribution route decided — Microsoft Store MSIX + Store IAP gramps 2026-09-27 14:23:51 -07:00
  • e78c58fc28 docs: bank the Windows Store + signing research, and fix the dead EV-certificate line gramps 2026-09-27 14:17:13 -07:00
  • 938c5b3de4 alert ticker: draw it inside the Stream Alerts box, not as a top-edge bar gramps 2026-09-27 09:43:26 -07:00
  • 9761b1d4be branding credit: run in every scene and in recordings, not only while live gramps 2026-09-27 09:33:30 -07:00
  • e3e69d941d recording save dialog: Cancel discards the footage instead of saving the default gramps 2026-09-27 09:25:21 -07:00
  • de81fa3c5d dev-only: per-instance state so two LlamaCasty instances can run side by side gramps 2026-09-27 08:56:12 -07:00
  • f5a9d46881 TASK 36: composite the branding credit into the output, not just the preview gramps 2026-09-27 08:55:55 -07:00
  • 5aedca7305 ai.md + TASKS: record the LlamaCasty/ytLive naming split and the shipped-exe mismatch gramps 2026-09-27 07:55:35 -07:00
  • fae8ec5f32 TASKS: queue the shipping/release build (publish.sh + Debug-only InternalsVisibleTo) gramps 2026-09-27 07:53:52 -07:00
  • 7f14ffb11e TASK 47 take four: alert ticker visible in the preview + 3 display methods gramps 2026-09-26 15:10:26 -07:00
  • e2ecc248e0 TASK 47: draw the alert clip — the preview Image was Collapsed for AlertBox gramps 2026-09-26 14:44:57 -07:00
  • aea0670723 fix(alerts): wire the frame-rate probe so alert-clip VIDEO paces to real time gramps 2026-09-26 12:45:40 -07:00
  • 80038ff152 fix(alerts): silent decoder falls back to the six animations after a 1s no-frame grace gramps 2026-09-26 12:08:27 -07:00
  • 7b940b6a5a fix(alerts): AlertOverlayLayer marshals the chat-poller seam to the UI thread gramps 2026-09-26 11:28:36 -07:00
  • a11b15e444 feat(alerts): TASK 47 — alert box plays a video (built-in/custom clip) + read-time fade + message ticker gramps 2026-09-26 11:15:17 -07:00
  • 2c9af9426b docs(handoff): TASK 46 verified + pushed — origin/main now at ecb329e gramps 2026-09-25 08:20:11 -07:00
  • ecb329e578 fix(ui): drawers close on any click outside the rail — TEST was the missing third gramps 2026-09-25 08:18:25 -07:00
  • 0981a72eea fix(stream): chat insert 400 — insert body must declare snippet.type gramps 2026-09-25 08:12:05 -07:00
  • 94f015044a fix(stream): TEST-tab chat — resolve liveChatId from snippet, poll until the broadcast is live gramps 2026-09-25 08:06:02 -07:00
  • d4aa588da0 feat(alerts): TASK 43 — native events & alerts (six unique animations) + chat parity gramps 2026-09-24 08:27:00 -07:00
  • 3a4e17c735 Account zone is world-independent: avatar stays in Record world gramps 2026-09-23 16:53:25 -07:00
  • cb750660c3 fix(ypp): refresh 403'd on every real call — drop the auditDetails part (needs a partner scope) gramps 2026-09-23 16:45:56 -07:00
  • d72949e2f9 style(topbar): build-77 feedback — big account avatar (26→40), gear nudged right, 32px action cluster gramps 2026-09-23 16:38:20 -07:00
  • ac6e67aff0 fix(stream): end close-out pre-flights lifeCycleStatus — no more 403 invalidTransition noise on every stop gramps 2026-09-23 08:28:59 -07:00
  • 18ab553b0e fix(stream): health poll crashed on every start — parse the real healthStatus object shape gramps 2026-09-22 19:25:02 -07:00
  • e69db4d26c feat(ui): TASK 42 top bar redesign — one Record-or-Stream surface (2026-09-22) gramps 2026-09-22 17:57:06 -07:00
  • bb5dcb4ba2 feat(stream): TASK 41 Test Stream mode — private test broadcast + TEST drawer gramps 2026-09-22 09:31:00 -07:00
  • 57841d39ac docs(handoff): TASK 40 plan saved + in flight; next step = new task spec gramps 2026-09-22 08:37:36 -07:00
  • 4d9188ab2e docs(plan): TASK 40 App Settings round — saved plan (units A-D, one Good Dog test each) gramps 2026-09-22 08:37:05 -07:00
  • 197ee815a0 docs(handoff): TASK 39 slice 1 accepted + pushed (a9d5f29), clean tree gramps 2026-09-22 08:14:57 -07:00
  • a9d5f29084 feat(ypp): YPP journey tracker slice 1 — the YPP pull-out below Stream Settings (TASK 39, Good Dog ONE test) gramps 2026-09-22 08:07:54 -07:00
  • 4e0915a36e feat(backdrop): Capture Window… in-app window pin (TASK 38, Good Dog ONE test) gramps 2026-09-22 07:00:47 -07:00
  • 523c17b7da docs(handoff): rewrite for pushed 0c55645 (ON-AIR armable signed-out Good Dog ruling + ONE PillRadio test) gramps 2026-09-20 16:14:35 -07:00
  • 0c556450cb feat(pills): ON-AIR armable signed-out; Start face reads Sign-In while armed signed-out (Good Dog 2026-09-20 ruling, ai.md updated same commit) gramps 2026-09-20 16:12:39 -07:00
  • 94e114bfdf feat(topbar): REC/ON-AIR pills are radio-exclusive (record-OR-live) gramps 2026-09-20 09:56:07 -07:00
  • 5a1993b6db fix(persist): one shared z-order across Source + WebcamSceneConfig rows gramps 2026-09-20 09:23:46 -07:00
  • f91bf8715d fix(reorder): save layer list AND preview layout immediately at drop; recording save dialog +10% (276→304) gramps 2026-09-18 10:20:25 -07:00
  • 2ac00db0da test: prove layer drag-reorder persists via REAL injected mouse input gramps 2026-09-18 09:07:49 -07:00
  • 0d0e55de31 fix(recording-dialog): +20% height so the file-name box is not clipped; unhook full-screen hook on shutdown gramps 2026-09-18 08:33:13 -07:00
  • c11788574e fix(reorder): trap layer-list drag drop as a data change and persist it gramps 2026-09-18 08:18:51 -07:00
  • fd5198df9f docs(handoff): session-end refresh — HEAD 75723ac, attainability refinement, tree clean gramps 2026-09-17 20:16:49 -07:00
  • 75723acc1b fix(webcam): offer the Web Cam row only when a camera is attainable (live lock), not merely selected gramps 2026-09-17 09:16:56 -07:00
  • 9d00955004 feat(webcam): app-default gate slice — per-scene offer, Add places default directly, identity survives removal gramps 2026-09-17 08:56:04 -07:00
  • 1e4017df03 feat(webcam): resource lifecycle startup slice — poll-on-start, single-cam lock, persistent Layers alert gramps 2026-09-17 08:03:58 -07:00
  • 94a934ffa9 fix(webcam): reader-output-subtype ladder + record WinRT per-call wrap rule gramps 2026-09-15 19:25:39 -07:00
  • 64a5a6d06f perf(pump): slice 18 — C4 blit-on-change composite cache gramps 2026-09-15 07:57:09 -07:00
  • b37b8a30f9 perf(capture): overlap GPU readbacks with monotonic publish gate (slice 17) gramps 2026-09-14 18:40:20 -07:00
  • 71932b9756 perf(capture): fast integer downscale + 10ms cadence floor + reuse-distance ring (slice 16) gramps 2026-09-14 18:18:34 -07:00
  • 76f51e6f4e fix: FramePump paces one frame per deadline slot — duplicate-on-lag, never skip (slice 15) gramps 2026-09-14 17:40:59 -07:00
  • 394d86b94c docs: HANDOFF — mark composition-capture redesign as committed locally (c01206f), still unpushed gramps 2026-09-14 16:14:21 -07:00
  • c01206fb8a feat: web sources frame-captured via composition (CoreWebView2CompositionController → Windows.Graphics.Capture); PNG poll + CaptureScheduler deleted gramps 2026-09-14 16:14:00 -07:00
  • 40c453805d docs: HANDOFF — resolve the root-md split question (answer: no split needed), fix next-step wording gramps 2026-09-14 15:05:24 -07:00
  • d0e4a0fb25 docs: correct product branding — llamacasty (product) vs ytLive (repo/assembly legacy); HANDOFF refreshed to the pushed b22d08e state gramps 2026-09-14 15:05:00 -07:00
  • b22d08eca6 feat: signed A/V sync offset (−500..+500), negative advances by eating live stream head (OBS eat-head semantics) gramps 2026-09-14 12:30:44 -07:00
  • 11a7af2dc0 fix: clear pre-live capture ring backlog at StartLive (2.2s A/V sync lag) gramps 2026-09-14 11:24:12 -07:00
  • 5ba4d709ae docs: audio-sync offset measured (~367ms lag w/ 300 offset) -> set Audio.SyncOffsetMs=0 gramps 2026-09-12 14:04:58 -07:00
  • 724af1499b fix: audio silence (idempotent sync-delay configure), webcam gray block, truncated videos gramps 2026-09-12 13:56:55 -07:00
  • a62a283fd4 fix: resolve build errors with missing using directive and variable name conflict gramps 2026-09-12 10:33:16 -07:00
  • 992bb21bdb feat: add webcam frame diagnostics to debug gray block issue gramps 2026-09-12 10:32:18 -07:00
  • 58050d9ab1 feat: add alpha probe diagnostics to webcam frame capture gramps 2026-09-12 10:25:18 -07:00
  • efe88b8a0b fix(compositor): keep straight alpha in the paste-cache raster — the web widget's recording black box gramps 2026-09-12 08:57:58 -07:00
  • 0f72c53aa5 fix(web): wipe background-image too — the widget's black void is a CSS backdrop gradient, not a color gramps 2026-09-10 15:42:26 -07:00
  • b4bba4bf68 fix(web): harden the transparency injection to the OBS-standard element-wide !important wipe gramps 2026-09-10 14:04:11 -07:00
  • ea347f211c fix(web): re-point the widget diagnostic at the REAL document — the transparency premise gets verified gramps 2026-09-10 12:08:53 -07:00
  • f3d578c81b fix(audio): add per-5s live-loop telemetry to name the silent-recording stage gramps 2026-09-10 10:55:13 -07:00
  • 5e78065c2d fix(web): web-layer capture cadence 10Hz → ~30Hz while recording — widget animations no longer play ~1/6 speed gramps 2026-09-10 10:25:41 -07:00
  • ec7c734bdd docs: record push gate — no push until transparency + audio issues closed gramps 2026-09-10 10:02:08 -07:00
  • c45cbc93b7 fix(rec): bounded encoder queue + drop policy + burned frame counter — the "1...23...4...56..." smeared-ticker take gramps 2026-09-10 09:32:55 -07:00
  • bd396e488c fix(rec): recordings played ~1.4x fast — CFR emission, drop -re gramps 2026-09-10 08:35:30 -07:00
  • d212d5ae2c tools: WSL ticker for timing-verification takes gramps 2026-09-10 08:35:14 -07:00
  • 1a39b091a0 fix(web): inject transparency BEFORE page scripts — CapturePreviewAsync honors page CSS gramps 2026-09-08 14:19:30 -07:00
  • e564e9884c docs: update HANDOFF + MyMistakes.md — take-24 PasteKey fix landed gramps 2026-09-08 13:29:22 -07:00
  • 081e4c1bf8 fix(web): add CropBounds to PasteKey — stale raster cache was corrupting transparency gramps 2026-09-08 13:28:42 -07:00
  • 5175c1c8c9 docs: update HANDOFF + MyMistakes.md — take-23 stride fix landed, chat missing from recording, landmines refreshed gramps 2026-09-08 12:11:45 -07:00
  • f6802c7124 fix(web): stride-correct CropBounds Fill rendering in compositor (take-23) gramps 2026-09-08 12:07:54 -07:00
  • 84aa70f532 docs: MyMistakes.md — take-22 full fix for widget scale/position + transparency gramps 2026-09-08 11:18:12 -07:00
  • ed9d7c1ffc fix(web): CropBounds metadata + Fill-style scaling in compositor — transparent margins preserved, widget fills element rect gramps 2026-09-08 11:17:05 -07:00
  • 5ca9778e23 docs: update HANDOFF + MyMistakes.md — take-21 web transparency fix landed gramps 2026-09-06 12:58:05 -07:00
  • e002847777 fix(web): feed full canvas to compositor — transparent margins reveal layers beneath (take-21) gramps 2026-09-06 12:56:34 -07:00
  • 70db34455f perf(camera): MJPEG negotiation before frame reader — camera drives at its best rate gramps 2026-09-05 17:07:24 -07:00
  • 0f059ece33 docs: HANDOFF — #12 landed (element rasters), MJPEG next, web transparency spin-guarded gramps 2026-09-05 16:48:22 -07:00
  • 6d11e8b3fc perf(compositor): reuse per-element rasters in-place — take-16 GC-churn fix gramps 2026-09-05 16:47:49 -07:00
  • 87509bcf99 docs: restructure TASKS.md into a catalog — one file per task in TASKS/ gramps 2026-09-05 16:31:46 -07:00
  • 98d30c2056 docs: revert record + spin guard — web transparency fix (0f441d8) FAILED and reverted (1295e0e) gramps 2026-09-05 16:22:41 -07:00
  • 1295e0ed80 Revert "fix(web): composite consumes the FULL canvas, alpha crop is measure-only — transparent web margins reveal the webcam again" gramps 2026-09-05 16:21:16 -07:00
  • 0f441d825a fix(web): composite consumes the FULL canvas, alpha crop is measure-only — transparent web margins reveal the webcam again gramps 2026-09-05 15:33:56 -07:00
  • d35823a4a9 feat(ux)+fix(rings): release counter #N in the wordmark; all shared-frame rings 4->8 (#11) gramps 2026-09-05 14:31:03 -07:00
  • 99aeef7994 docs: HANDOFF — rollback record + roll-forward plan (2026-09-04 unfuck session) gramps 2026-09-05 14:25:26 -07:00
  • c46f3a1168 docs: HANDOFF — de-duplicate the sliced-6/7 history paragraph gramps 2026-09-04 12:37:26 -07:00
  • fbc8562cf4 perf(capture): slice 8 — buffer ring + paste-cache Epoch; gen2 visibility (take-11 spikes) gramps 2026-09-04 12:36:14 -07:00
  • eb4c379b91 fix(pump): slice 7 — take the loop off the UI thread (the 'wait 10ms after render 22ms' contradiction resolved) gramps 2026-09-04 12:16:20 -07:00
  • 09a866e6a1 perf(pump): slice 6 — break the 15.6ms sleep quantum (the REAL ceiling behind takes 7-9) gramps 2026-09-04 12:02:24 -07:00
  • 6af2026906 perf(compositor): slice 5 — paste cache for non-opaque layers (take-7/8 data) gramps 2026-09-04 11:44:19 -07:00
  • 27bf74389d diag(build): per-build GUID stamp + resolve/blit timing split (take-6 attribution failure) gramps 2026-09-04 11:26:46 -07:00
  • 1c48849853 perf(chat): slice 3 — raster-on-change cache in ChatOverlayLayer (take-5 fix) gramps 2026-09-04 11:01:51 -07:00
  • 432adfdaef perf(render): take-4 slice 2 — IsOpaque memcpy, integer bilinear, pump scratch pool gramps 2026-09-04 09:35:59 -07:00
  • 716a77f61a fix(pump+compositor): take-3 starvation — deadline pacing + row-blit fast paths gramps 2026-09-03 09:02:45 -07:00
  • 7fcb2ad3da docs: rewrite HANDOFF — tonight's 12-commit series, take-3 checklist, pending rulings, landmines refreshed (zero known failures era begins) gramps 2026-09-01 23:27:22 -07:00