feat(meetings): de aanbieder-neutrale laag van onlinevergaderingen #971
No reviewers
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck!971
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/onlinevergaderingen-laag"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
De eerste, aanbieder-neutrale laag van de onlinevergaderingen-functie
(ontwerp:
docs/design/TEAMS_GUEST_CLIENT.mdT13–T15/§6–§8 endocs/design/COLLABORATION.md§7.1 — stap 1 van de leveringsvolgorde in§7.1.5).
Wat erin zit
lib/meetings/— het domein dat de schil en elke toekomstige adapterdelen: het
MeetingProvider/MeetingSession-contract, deMeetingLinkResolvermet harde weigeringen en achtervoegselveiligehostkeuze, de gesloten
sealedeventboom,MeetingPhasemet explicieteovergangstabel plus
MeetingState-reducer,MeetingCapabilities,MeetingRoleen deMeetingFailureKind-taxonomie. Vrij van Flutter en vanelke netwerkroute.
spike, host op.invalid) die elk verloop deterministisch doorloopt: direct, wachten optoelating, geweigerd, herverbinden, beëindigd door de organisator, en
gasten-niet-toegestaan.
ModuleId.meetingsin het register, een kaartop Uitbreidingen in de stijl van de andere modules, standaard uit, en
onthulling = aan of sessie actief — een lopend gesprek valt nooit stil
door een schakelaar.
documentatie in USER_GUIDE, SOURCE_MAP, ARCHITECTURE en CHANGELOG.
Er gaat geen byte naar buiten — als test, niet als belofte
meeting_privacy_boundary_test.dartscant de bron: niets onderlib/meetings/mag een netwerk- of platformlaag importeren, enmeeting_state.dartkent geenUrien geen token (T5).meeting_provider_scope_test.dartklinkt T6 vast: de sessie iswortelgeschikt en staat niet in de tab-scope.
Afwijkingen van het ontwerp, hardop
MeetingClient(§8.2). Dat is de Teams-specifieke naad naar deJavaScript-brug, één laag dieper; de schil praat met
MeetingProviderzoals T14 en §7.1.5 stap 1 voorschrijven. De ACS-adapter-PR mag er straks
een
MeetingClientachter zetten. (Staat ook in de kop vanmeeting_provider.dart.)Meeting—ParticipantJoineduit§8.3 is te algemeen voor één gedeelde Dart-ruimte waarin samenwerking
straks eigen deelnemers krijgt. Begrippen en velden zijn ongewijzigd.
microphones/cameras/speakersinMeetingState) zitten er nog niet in: apparaatkeuze hoort bij depre-join-stap van de schil-PR en bij de clientlaag die hem levert.
de code: uit élke levende fase mag je naar
leaving(§17 eist bereikbaarVerlaten), en terminale fasen gaan naar
idleterug (de reset).Scope-keuze
De schil-UI (dialoog, wachtindicator, gespreksvenster) zit er bewust niet
in — de laag zelf is al ~2.500 regels plus tests; de schil krijgt zijn eigen
PR op dit fundament.
Bewaker
Gedraaid (publieke belofte in de interface + contract voor toekomstig
uitgaand verkeer): geen botsing. Het
.md-formaat wordt niet geraakt, er isgeen nieuwe partij om te vertrouwen, en de kaartbelofte "module uit = geen
contact" is met de bronscan-test aan de code vastgeklonken. Spanningsveld
benoemd: de kaart is zichtbaar terwijl meedoen nog niet kan — de kaart zegt
dat zelf eerlijk, liever dan een schakelaar die stil niets doet.
Poorten
make checkgroen: volledige suite (7485 tests), dekking 87,0%,per-bestandsvloer 0 overtredingen.
make check-secretsgroen: gitleaks en trufflehog, 0 geheimen(geverifieerd én ongeverifieerd).
make sastgroen: semgrep, 0 bevindingen.wijziging heeft geen geserveerd oppervlak.
🤖 Generated with Claude Code