User tested: 'didn't work at all, and broke additional crap.' Second failed remedy for
web-source-over-webcam dark composite -> AGENTS.md spin guard: no third guess; next attempt
requires external research (OBS/CEV browser-source transparency in recorded output, cited URL)
plus the blank-page falsifier. HANDOFF OPEN list updated: research-first step added, #11 noted
landed as d35823a.
This commit is contained in:
+40
-11
@@ -2,9 +2,10 @@
|
||||
|
||||
## Branch / Commit State
|
||||
|
||||
**`main` HEAD = `c46f3a1` (#9)** — tree identical to `fbc8562` (slice 8, single-loop pump). Working tree
|
||||
CLEAN. This is the user-confirmed **last working commit** — output recordings were tear-free here and
|
||||
time-lapse again (the 7fcb2ad-era pacing, expected pre-buffer-ring).
|
||||
**`main` HEAD = `1295e0e`** — a revert; see "REJECTED this session" below. **`#11` from the roll-forward
|
||||
landed as `d35823a`** (release counter in wordmark; capture/camera/web rings 4→8 + Epoch — three-loop
|
||||
hunks dropped per plan). User tested take-15 frame (~clean). Recording output since then: webcam
|
||||
"black square" regression under the web overlay is OPEN (details below).
|
||||
|
||||
**`today-slices` branch @ `ce87490` (#17)** — preserves ALL 17 commits of the 7fcb2ad→ce87490 chain
|
||||
(1 `716a77f` … 17 `ce87490`), including the two-loop producer, encoder staging fix, chat fix, e2e
|
||||
@@ -17,6 +18,32 @@ harness. Nothing is lost; never hard-reset away from it without preserving.
|
||||
this commit.
|
||||
- **`today-slices` @ `ce87490`** preserves the entire 17-commit chain — the fallback recovery point.
|
||||
|
||||
## REJECTED this session (2026-09-05) — web transparency fix FAILED, reverted
|
||||
|
||||
**`0f441d8` "composite consumes the FULL canvas" was wrong.** Theory: the alpha-crop fed to the
|
||||
compositor's UniformToFill zoomed opaque content over the whole element rect → black box. Fix: hand
|
||||
the compositor the full transparent-background canvas (8-deep ring + Epoch), keep the alpha crop for
|
||||
the preview/selection only. User tested: **"didn't work at all, and broke additional crap."** Reverted
|
||||
as `1295e0e`. Tree verified back at the #11 state; builds 0 warnings both projects.
|
||||
|
||||
Two hard facts the theory did NOT anticipate:
|
||||
1. An opaque dark band still covers the webcam region in the RECORDING (the "broke additional crap"
|
||||
may be the widget reappearing over the webcam in the preview/preview sizing — unconfirmed).
|
||||
2. The preview half looked fine while the recording half was dark, per the user, all along.
|
||||
|
||||
**SPIN GUARD TRIGGERED (AGENTS.md Working rules):** this is the second failed remedy for the same
|
||||
symptom (web sources composite dark/opaque over other layers in the recording). Third-guessing over
|
||||
the same code is forbidden. Next attempt MUST start with external research — how OBS / CEV /
|
||||
other overlay toolchains keep browser-source transparency in the *recorded* output, cited in the
|
||||
commit message AND MyMistakes.md before coding. Likely seams to revisit after that research:
|
||||
`CapturePreviewAsync` PNG alpha → `FormatConvertedBitmap` w/ `PixelFormats.Bgra32` (does the
|
||||
premultiplied/straight-alpha conversion drop alpha?), and the preview-vs-recording consumer
|
||||
difference (preview = WriteableBitmap on the dispatcher; recording = composite read on the pump
|
||||
thread) — but NO code until the research says what to do. Also: the user's very first observation —
|
||||
"webcam blacked out by the animated web resource layer" — may mean the widget's HOST page itself
|
||||
paints an opaque/dark background (injection script wouldn't fix a page that sets its own bg) — verify
|
||||
against a blank page, not an alert host, before blaming the compositor again.
|
||||
|
||||
## The commit list (for picking this up anytime)
|
||||
|
||||
Numbered oldest→newest (#0 = the working baseline the user picked: `7fcb2ad` "zero known failures era
|
||||
@@ -97,16 +124,18 @@ and apply cleanly.
|
||||
|
||||
## OPEN — next, in order
|
||||
|
||||
1. **#11 `6fd1d9c`** — tell user what it does (release counter; capture rings 4→8 + new camera/web
|
||||
rings), apply via cherry-pick with the two-loop-only FramePump hunk dropped; user tests; proceed or drop.
|
||||
2. **#12 `d1126dd`** — compositor raster reuse + MJPEG camera negotiation + stats formatting (FramePump
|
||||
0. **Webcam-black-square-under-web transparent: research FIRST.** Second failed remedy → spin guard.
|
||||
Externally research how OBS/CEV keep browser-source transparency in recorded output; cite the URL
|
||||
in the commit AND MyMistakes before any code (see REJECTED section above). User tests each attempt.
|
||||
Do NOT touch the compositor/web code until the research is done.
|
||||
1. **#12 `d1126dd`** — compositor raster reuse + MJPEG camera negotiation + stats formatting (FramePump
|
||||
hunk dropped).
|
||||
3. **#13 `e4621c1`**, **#14 `b4f6a92`** — docs.
|
||||
4. **#15 `7bf00a9`** — e2e smoothness bar (re-tune thresholds to single-loop measurements if needed).
|
||||
5. **#16 `1a808ae`** — chat empty-buffer composite fix + test.
|
||||
6. **#17 `ce87490`** — encoder staging snapshot (the genuine tear cure — applies on the single loop as
|
||||
2. **#13 `e4621c1`**, **#14 `b4f6a92`** — docs.
|
||||
3. **#15 `7bf00a9`** — e2e smoothness bar (re-tune thresholds to single-loop measurements if needed).
|
||||
4. **#16 `1a808ae`** — chat empty-buffer composite fix + test.
|
||||
5. **#17 `ce87490`** — encoder staging snapshot (the genuine tear cure — applies on the single loop as
|
||||
belt-and-suspenders).
|
||||
7. **Unit B (top bar + session logic)** — spec + settled decisions are in the old HANDOFF history on
|
||||
6. **Unit B (top bar + session logic)** — spec + settled decisions are in the old HANDOFF history on
|
||||
`today-slices`; don't re-ask.
|
||||
|
||||
## Landmines
|
||||
|
||||
Reference in New Issue
Block a user