P1 key_restore_prompt: offer recovery-key restore right after login
P2 incoming calls: mount overlay in app.dart + detect MSC3401 call.member
(Element X signalling) — calls were previously invisible
P3 message edit: editMessage/EditMessage + Edit dialog (reactions/delete
were already wired)
P5 panic button: new feature/panic module — hold-to-send alert text +
m.location to a configured room; alert sent before geolocation so a
denied permission never blocks it
All verified end-to-end in headless Chromium against production build.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Bind JitsiMeetExternalAPI as extension type external constructor;
the old external function binding invoked the ES6 class without 'new'
and threw at runtime (silently, in release builds)
- joinMeeting: wait up to 5s for platform-view container div (post-frame
race), build options via setProperty (jsify cannot carry DOM nodes),
return success bool, log failures to browser console
- jitsi_screen: show 'Could not start the meeting' UI instead of blank
- v1.6.2+10, deployed to app2.m8chat.au
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>