diff --git a/LOTUS_BUGS.md b/LOTUS_BUGS.md index 5d7e9c415..94ccce2cc 100644 --- a/LOTUS_BUGS.md +++ b/LOTUS_BUGS.md @@ -625,7 +625,7 @@ This document tracks identified bugs, edge cases, and architectural discrepancie **N118 — `useCallSpeakers` Relies on Three Layers of Undocumented EC Internal APIs** - **File:** `src/app/hooks/useCallSpeakers.ts`, lines 15, 28–35 -- **Status:** **OPEN** [Claude_Found] +- **Status:** **ACKNOWLEDGED (inherent)** — not a discrete bug: EC exposes no stable speaker API, so DOM/CSS reverse-engineering is unavoidable (the same applies to mute/spotlight/control poking elsewhere). The `19feca49` rewrite documents exactly which EC internals are depended on (`[data-video-fit]`, `::before` background-image, `aria-label`), which is the practical mitigation. A build-time EC-version assertion is a deferred CI/infra task; an upstream request for a stable `data-speaking` attribute is the real long-term fix. - **Issue:** Speaker detection depends on three private Element Call implementation details that are not part of any stable EC API contract and can silently break on any EC version bump: 1. **`[data-video-fit]`** — selector for video tile wrapper elements (internal EC data attribute). 2. **`getComputedStyle(el, '::before').getPropertyValue('background-image') !== 'none'`** — speaking state is inferred from a `::before` pseudo-element's `background-image`. Any EC refactor of the speaking indicator (e.g. switching to a CSS class, `data-speaking` attribute, or canvas overlay) silently breaks detection with no error.