feat(session): confirm attendee identity and leave stage safely - #504
feat(session): confirm attendee identity and leave stage safely#504AnnieScigliano wants to merge 3 commits into
Conversation
|
CI run 33832188869 exposed four stale expectations in the pre-existing media-continuity helper after full-session exit gained confirmation. Fixed in 055d464 and verified locally: Chromium + Android 6/6 green against real LiveKit. The remaining w390 cockpit screenshot drift is unrelated to a direct cockpit diff and will be accepted only if the fresh canonical run reproduces it. Separately, root/analytics dependency audit gates fail before lint/build on the current dependency trees; tracked without weakening or mixing scope in #505. |
|
CI follow-up after
The branch has been pushed and fresh checks are running. Dependency/analytics CI failures remain separate from #496/#497 and are tracked in #505; this PR does not weaken or bypass those gates. |
|
Final CI status for
The #496/#497 implementation and its regression gates are green. I have not bypassed either repository gate, merged, or deployed. Re-review remains requested from @nicoechaniz. |
Closes #496
Closes #497
Outcome
SessionParticipantalias. Refresh, reconnect and a second device keep the stable event identity; names are bounded, Unicode-safe, and never required to be unique.leave_stagetransition. It clears the hand, revokes the durable publisher grant and enforces subscriber-only permissions without disconnecting either receiving room.Audio boundary
This PR touches
src/app/session/[id]/page.tsx, so it intentionally carriesaudio-touchingand requests Nico's CODEOWNER review. It does not change codecs, bitrate, sample rate, channels, gain, buffers, crossfader behavior,AudioContext, audio routing, Room creation, or audio activation. The new stage-exit E2E and unit tests assert that both receiving rooms remain mounted and are not reactivated.Verification
npx tsc --noEmit— passnpm run lint -- --max-warnings=0— passnpm run build— passnpx prisma validate— passprisma migrate deploy— passprisma migrate deploy— passThe normal pre-commit hook was bypassed only because local Node 26 exposes no jsdom
localStorageunless--localstorage-fileis supplied andlivekit-target-monitor.test.tscannot bind its loopback fixture on this macOS host. Both are reproducible on cleanmain; the controlled serial command with the Node option is green, and CI Node 22/Linux runs the complete unexcluded suite.Review focus
display_name_confirmed_atmigration and existing-session behavior;Rollback
Revert commits
aa61836,055d464and329b8a5. The nullable database column can remain safely unused; no destructive migration is required.