Commit Graph

  • 4509befb98 docs: capture tonight's rulings — record-OR-stream (never both), scheduling scope, SYNC provenance, playout declined gramps 2026-09-01 23:26:12 -07:00
  • af0d372b65 docs: record take-two outcomes — arrival-stamping rule, resolver key fix, top-bar model, TASK 18 verification status gramps 2026-09-01 22:27:08 -07:00
  • 89fee6ca4a fix: webcam identity->device key for output frames; top bar always has a Start; light-pill grouping gramps 2026-09-01 22:25:20 -07:00
  • 97ffc426fe chore(pump): per-stage timing stats — render vs submit, 5s windows gramps 2026-09-01 22:25:02 -07:00
  • 8dcaee0b5b fix(encoder): observability — silence was the bug gramps 2026-09-01 22:11:52 -07:00
  • 7f2bda8ed3 fix(audio): game meter scales by GameAudioVolume — meter/stream/headphones all follow the one knob gramps 2026-09-01 21:22:57 -07:00
  • 5ead064d54 fix(audio): _delayedMix never initialized — one NRE line behind the 'known failure', the class hang, AND the log flood; loopback gain now honest gramps 2026-09-01 21:20:45 -07:00
  • 5a1a3c566a fix(18): stop ends everything — pills clear, pump/prep failures roll the session back gramps 2026-09-01 21:15:57 -07:00
  • 688682d5b5 feat(9): real broadcast close-out — transition(complete) in StopStream after RTMP EOF gramps 2026-09-01 20:55:06 -07:00
  • 22b780e075 fix(ffmpeg): re-pin dead BtbN tag (first real recording 404'd), wrap download failures in actionable IOException gramps 2026-09-01 20:52:23 -07:00
  • 7294a1aa2d docs: HANDOFF — record the push (main == origin/main) gramps 2026-09-01 19:35:50 -07:00
  • b4f3b52b85 docs: rewrite HANDOFF — crash-fix outcomes, sole known failure (audio) + channel-init lead, verified test-run mechanics, 4 unpushed commits flagged gramps 2026-09-01 19:34:10 -07:00
  • 6799c40175 fix: first native launch since refactor crashed — 3 stacked faults, all closed; RoundClip 'known failure' root-caused and green gramps 2026-09-01 19:33:31 -07:00
  • 711ba54af7 docs: rewrite HANDOFF for session end; import the TASK 21 picker spec from the old handoff into TASKS.md gramps 2026-09-01 19:04:21 -07:00
  • e1d8b10388 docs: v1 = feature-complete ruling — queue TASKs 32-36, close the out-of-product list, fix the map's lies gramps 2026-09-01 19:03:22 -07:00
  • 7c6ec3e40a docs: pre-GA posture — visibility lock rationale, branding-flash preview-only + escalation, screens/layers audit retired into gold pass gramps 2026-09-01 15:32:16 -07:00
  • 8fa54d2de7 finishing AIs work because tokens gramps 2026-09-01 07:27:35 -07:00
  • 4a321b19ff docs: rewrite HANDOFF for clean session end (fully pushed, project-wide read, no-suggestions note) gramps 2026-08-31 20:30:50 -07:00
  • 097dd0d9bd docs: hand off TASK 21 UI picker slice (acquisition + loop wiring spec) gramps 2026-08-31 20:17:09 -07:00
  • 881addb5b4 TASK 21 slice 3: loop control in MediaVideoSource (process factory + Loop flag) gramps 2026-08-31 19:52:10 -07:00
  • a2219be198 TASK 21 slice 2b: native-FPS pacing in MediaVideoSource (probe -> delay seam) gramps 2026-08-31 19:47:38 -07:00
  • 8fa78423e6 TASK 21 slice 2a: native-FPS probe seam (ffprobe parse + derive sibling) gramps 2026-08-31 19:45:48 -07:00
  • 071ec8be0c TASK 21 slice 1 step 4: wire media into resolver + preview routing gramps 2026-08-31 19:32:41 -07:00
  • 480ead0fc7 TASK 21 slice 1 step 3: IMediaFrameSource + MediaVideoSourceManager gramps 2026-08-31 19:22:02 -07:00
  • a1d9751a6f docs: record ffmpeg decode-contract verification recipe + WSL CLR boundary gramps 2026-08-31 19:08:49 -07:00
  • 8f490102ee TASK 21 Increment B: FFmpeg rawvideo video decoder -> VideoFrame gramps 2026-08-31 18:57:29 -07:00
  • f89b9f9ffa docs: state the default-device audio assumption (no device probing, no OS-level audio debugging) gramps 2026-08-31 18:52:01 -07:00
  • e8ff4df05f TASK 22: global audio sync offset (positive delay at the mixer out) gramps 2026-08-31 18:30:03 -07:00
  • 670fe3a10a TASK 31: SceneGraph component + baked-crust compositor optimization gramps 2026-08-31 17:53:34 -07:00
  • 3bf053a3b1 TASK 31: SceneGraph design + baked-crust compositor optimization gramps 2026-08-31 11:38:12 -07:00
  • 84a038c498 docs: record the true-decomposition pattern (ChatOverlayLayer) + handoff refresh gramps 2026-08-31 11:16:02 -07:00
  • 85893ea709 refactor: extract ChatOverlayLayer — real component decomposition, Commit G refactor-commit-G gramps 2026-08-31 10:48:10 -07:00
  • 3107f928ab refactor: extract recording-output concern into MainViewModel.Recording.cs — Commit F refactor-commit-F gramps 2026-08-31 10:21:47 -07:00
  • 5b9ff5b742 handoff: Phase 3 complete (all production .cs <= 500), push pending for A-E + docs gramps 2026-08-31 09:11:32 -07:00
  • dcb3637cca refactor: split LayoutStore by concern — 500-limit Phase 3, Commit E refactor-commit-E gramps 2026-08-31 09:10:17 -07:00
  • d3271a0405 refactor: split SocialsDialogViewModel under 500 lines — 500-limit Phase 3, Commit D refactor-commit-D gramps 2026-08-31 08:59:38 -07:00
  • fab2e09903 refactor: split MainViewModel.Background under 500 lines — 500-limit Phase 3, Commit C refactor-commit-C gramps 2026-08-30 22:32:45 -07:00
  • 31362d1a43 refactor: split MainViewModel.Streaming under 500 lines — 500-limit Phase 3, Commit B refactor-commit-B gramps 2026-08-30 22:30:59 -07:00
  • 6944db8ab4 refactor: split MainViewModel core under 500 lines — 500-limit Phase 3, Commit A refactor-commit-A gramps 2026-08-30 22:09:02 -07:00
  • cb54637e9f docs: add Controls/index.md — the missing per-directory map for Phase-2 UserControls gramps 2026-08-30 21:41:18 -07:00
  • 1f4624c636 docs: rewrite HANDOFF for Phase 2 completion (MainWindow.xaml → 6 controls) gramps 2026-08-30 21:16:50 -07:00
  • 544208e002 refactor: extract OverlayHost (settings/bug/feature/about dialogs) — Phase 2, Commit 18 refactor-commit-18 gramps 2026-08-30 21:07:49 -07:00
  • c9fd1bdaaa refactor: extract LeftPanel out of MainWindow.xaml — Phase 2, Commit 17 refactor-commit-17 gramps 2026-08-30 20:09:46 -07:00
  • 73397cfea7 refactor: extract SceneThumbnailStrip out of MainWindow.xaml — Phase 2, Commit 16 refactor-commit-16 gramps 2026-08-30 19:39:51 -07:00
  • c5e3466df0 refactor: extract PreviewPane out of MainWindow.xaml — Phase 2, Commit 15 refactor-commit-15 gramps 2026-08-30 19:38:22 -07:00
  • 90f5ad50dd refactor: extract TopBar out of MainWindow.xaml — Phase 2, Commit 14 refactor-commit-14 gramps 2026-08-30 09:13:47 -07:00
  • 691425288f refactor: extract HealthBanner + promote converters to theme — Phase 2, Commit 13 refactor-commit-13 gramps 2026-08-30 09:11:18 -07:00
  • bc23b64315 refactor: extract BottomBar out of MainWindow.xaml — Phase 2, Commit 12 refactor-commit-12 gramps 2026-08-30 09:08:24 -07:00
  • 14d3ed4924 docs: rewrite HANDOFF — Phase 1 (MainViewModel split) complete gramps 2026-08-30 08:52:37 -07:00
  • 1efde5a1e6 refactor: split Overlays out of MainViewModel — Commit 11/12 refactor-commit-11 gramps 2026-08-30 08:52:03 -07:00
  • 3b77a132be refactor: split Chat out of MainViewModel — Commit 10/12 refactor-commit-10 gramps 2026-08-30 08:48:35 -07:00
  • e1006a04ab refactor: split Streaming out of MainViewModel — Commit 9/12 refactor-commit-9 gramps 2026-08-30 08:45:36 -07:00
  • c41ff7fd0a refactor: split Socials out of MainViewModel — Commit 8/12 refactor-commit-8 gramps 2026-08-30 08:34:10 -07:00
  • 535a50192c refactor: split Trax out of MainViewModel — Commit 7/12 refactor-commit-7 gramps 2026-08-30 08:24:22 -07:00
  • c1126a52b9 refactor: split Audio out of MainViewModel — Commit 6/12 refactor-commit-6 gramps 2026-08-30 08:15:09 -07:00
  • fc33022006 docs: HANDOFF drill — no per-commit push gramps 2026-08-30 07:49:50 -07:00
  • 46978b8bc3 docs: record push policy — commit per work unit, push only at milestones gramps 2026-08-30 07:49:35 -07:00
  • 58e7b3f3d1 docs: refresh HANDOFF — refactor Commits 3-5 landed gramps 2026-08-30 07:36:12 -07:00
  • e2867198b9 refactor: split Webcam out of MainViewModel — Commit 5/12 (tag refactor-commit-5) refactor-commit-5 gramps 2026-08-30 07:35:21 -07:00
  • db068abbc7 refactor: split Background out of MainViewModel — Commit 4/12 (tag refactor-commit-4) refactor-commit-4 gramps 2026-08-30 07:30:24 -07:00
  • dcdfcb9cee refactor: split Scenes out of MainViewModel — Commit 3/12 (tag refactor-commit-3) refactor-commit-3 gramps 2026-08-30 07:20:37 -07:00
  • 9baae33916 refactor: split License out of MainViewModel — Commit 2/12 (tag refactor-commit-2) refactor-commit-2 gramps 2026-08-30 07:15:26 -07:00
  • 5eecf4536f refactor: split Account out of MainViewModel — Commit 1/12 (tag refactor-commit-1) refactor-commit-1 gramps 2026-08-30 07:13:17 -07:00
  • abc78cd071 MainViewModel is now a partial class — scaffold for the per-area split (Commit 0) refactor-commit-0 gramps 2026-08-30 07:07:35 -07:00
  • b85092b85b commit for AI code base refactor - checkpoint commit gramps 2026-08-29 16:08:17 -07:00
  • 68267865ce docs: add Distribution.md — IP protection plan with Polar.sh backbone gramps 2026-08-29 11:45:58 -07:00
  • afd2048a0e docs: correct task statuses — TASK 4 done, TASK 3 item 15 done, full task state update gramps 2026-08-29 11:45:53 -07:00
  • 04eab51ead Docs: TASK 30 + ai.md layout update + HANDOFF refresh gramps 2026-08-29 11:02:11 -07:00
  • 455a4096d0 Move mic to preview row + restructure bottom bar + hide avatar when signed out gramps 2026-08-29 10:59:24 -07:00
  • 61b850f0e0 Fix: mic meter invisible after footer grid column removal gramps 2026-08-29 10:40:01 -07:00
  • 6031a5682d Gear cleanup + Default Location for Recordings + single Start + socials hover glow gramps 2026-08-29 10:30:40 -07:00
  • eba6af5b9b TASK 21 Increment A: media-source model + persistence (schema migration + round-trip test) gramps 2026-08-29 09:43:29 -07:00
  • 46f4696db6 TASK 18: manual rename modal for finished recordings gramps 2026-08-29 09:24:13 -07:00
  • be529a46d7 Tooling: add scripts/verify.sh — one pre-commit gate (clean build 0-warnings + full tests + scope check); fix incremental-build trap that hid CS8601 (2026-08-29) gramps 2026-08-29 09:22:36 -07:00
  • c8374bd7ed Docs: HANDOFF + TASKS reflect TASK 18 shipped as a9eb360 (working tree clean) gramps 2026-08-29 09:13:48 -07:00
  • a9eb360288 TASK 18: local (record-only) recording pipeline + top-bar pills/light/Start-End button UX gramps 2026-08-29 09:02:55 -07:00
  • 1e633f9bd9 Spin guard: derivative-work rule (AGENTS.md) + rationale (ai.md) — proactive external scan cites in commit msg; 2nd failed fix = STOP and research externally, never a 3rd guess gramps 2026-08-28 12:30:00 -07:00
  • e75059a795 Web-source bounding box: task COMPLETE and verified (creator: 'bounding is perfect') — docs updated, MyMistakes reset to stub, push in this commit gramps 2026-08-28 12:16:43 -07:00
  • 9b56e88800 Revert ab29ec8: container==content auto-fit made it worse — back to alpha-crop with the container at element size gramps 2026-08-28 12:09:13 -07:00
  • ab29ec801d Web source: container == content — element grid + selection box sized to the cropped frame's canvas extent gramps 2026-08-28 12:08:04 -07:00
  • bccdb4892c Web source: crop to the frame's ALPHA bounding box — the widget's true rendered extent, no DOM timing, can't break the render gramps 2026-08-28 11:53:36 -07:00
  • 5348b5c480 Revert web render to the creator-verified-good base (70fe2b8): full-frame capture, no crop, plain Stretch=Fill gramps 2026-08-28 11:49:21 -07:00
  • a5b9952cbd Web source: crop to the WIDGET rect (visible-element union excluding full-viewport wrappers) — kills the ghost-boundary dead space gramps 2026-08-28 11:45:31 -07:00
  • b862a0fb04 Web source: revert crop measurement to f39ebd9 scrollWidth/Height (nailed right/bottom) — canvas-size render untouched gramps 2026-08-28 11:35:30 -07:00
  • 2e60ca3b2c Restore MyMistakes.md to tracking — committed locally, never pushed gramps 2026-08-28 11:29:38 -07:00
  • c8cf4156a1 Gitignore MyMistakes.md — local working log, not version-controlled gramps 2026-08-28 11:29:27 -07:00
  • cdbf8ac790 Add MyMistakes.md — per-task failure log for the web bounding-box task (updated before every commit, truncated on completion+push) gramps 2026-08-28 11:28:59 -07:00
  • 582d1f4b0f Web source: crop to the widget's true content rect (union of visible body elements) — bounding box tight on all four sides, pinned to (0,0) gramps 2026-08-28 11:25:06 -07:00
  • 70fe2b80b2 Web source: render at canvas size 1920x1080 — full-bleed widgets no longer truncated to upper-left gramps 2026-08-28 11:16:46 -07:00
  • f39ebd96ce Web source: crop capture to actual content bounds (anchor 0,0); slider click-to-position; web URI X clears; tab order gramps 2026-08-28 11:10:49 -07:00
  • 23874c2dd6 Web source: stable viewport (snapshot at register) + Stretch=Fill + overflow:hidden — no reflow, no scrollbars, no dead space gramps 2026-08-28 10:56:23 -07:00
  • 8d793af91a Web source: geometry-agnostic viewport==box model — viewport locked to element box, Stretch=Fill, no dead space gramps 2026-08-28 10:48:53 -07:00
  • 9d4103c44b Web source: CSS reset per document + (0,0) anchor — kill box-vs-content padding gramps 2026-08-28 10:41:33 -07:00
  • e917c41a48 Web source: fix rendering — fixed 1920×1080 viewport (OBS pattern), Stretch=Uniform, startup registration gramps 2026-08-28 10:23:59 -07:00
  • fd6e02b687 Web source: off-screen WebView2 capture + layout persistence + transparent bg gramps 2026-08-27 08:52:39 -07:00
  • f81048849a Scope Lock: pre-task declaration, git history scan, pre-commit audit script gramps 2026-08-26 09:58:33 -07:00
  • 67baac6fdd Rename pull-out tab to 'Stream Settings'; right-click Start Stream → Change Account / Logout gramps 2026-08-26 09:35:07 -07:00
  • d4aa5e1003 Thumbnail strip: show hotkey label next to each scene name gramps 2026-08-26 08:28:48 -07:00
  • 3a1484b3c5 TASK 20 step 2: hotkey config UI + modifier chord persistence + conflict detection gramps 2026-08-26 06:48:14 -07:00
  • 89ab83be2e Update Broadcast button: diff before push, offline=local only, live=API; Go Live empty-field prompt gramps 2026-08-25 17:25:25 -07:00