Skip to content

fix(teams): walk ancestors to find participant name in DOM - #28

Merged
odsod merged 3 commits into
mainfrom
fix-teams-speaker-detection
Jul 2, 2026
Merged

fix(teams): walk ancestors to find participant name in DOM#28
odsod merged 3 commits into
mainfrom
fix-teams-speaker-detection

Conversation

@odsod

@odsod odsod commented Jul 2, 2026

Copy link
Copy Markdown
Owner

Summary

  • Teams' "light meetings" experience wraps some participant tiles with an extra intermediate div, placing the name data-tid at grandparent (depth 2) instead of parent (depth 1)
  • The snapshot and poll JS expressions now walk up to 3 ancestors, skipping video-item-container-* elements, to find the participant name
  • Previously missed ~44% of participants (4 of 9 in a live meeting), causing the speaking-class discovery phase to never converge

Test plan

  • Added DOM fixture tests (TestSnapshotJS, TestPollJS, TestSnapshotJS_SkipsShortAndLongNames) that evaluate the actual JS against both nesting patterns via Node.js
  • Verified against live Teams meeting on CDP port 9223: finds all 9 participants and correctly detects speaking state
  • mise run build passes (lint, test, tidy, goreleaser check)

odsod added 3 commits June 10, 2026 19:01
- Move mic dedup reference state from recorder orchestration into speech.
- Preserve current system-event refs and prior system-text fallback behavior.
- Add focused coverage for system reference tracking semantics.
- Separate completed attribution foundation from remaining roadmap items.
- Call out live validation, diagnostics, cleanup quality, dedup tuning,
  and test hardening as the next work areas.
- Keep the detailed historical implementation notes below the status summary.
Teams' "light meetings" experience wraps some participant tiles with an
extra intermediate div, placing the name data-tid at depth 2 instead of
depth 1. The snapshot and poll JS expressions now walk up to 3 ancestors,
skipping video-item-container elements, to find the participant name.

- Previously missed ~44% of participants in meetings with mixed nesting
- Added DOM fixture tests (Node.js + minimal shim) covering both patterns
@odsod
odsod merged commit 05f0844 into main Jul 2, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant