Testclient: losmaken maakt nu werkelijk los

Gemeld door de gebruiker: een eigenaar uit het register halen liet de relay hem
zien tot het proces stopte. `vergeet` koppelt netjes af, maar de socket zit niet
in de Evolu-instantie: hij zit in de gedeelde worker, en die blijft staan zolang
er nog een eigenaar open is. Een transport dat je in de config van `createEvolu`
meegeeft, kun je daarna nergens opzeggen.

Nu start de instantie met `transports: []` en gaat de transport erin met
`evolu.useOwner`, ook al is het de eigen appOwner. Die geeft een opzegging terug
en Evolu telt de verwijzingen, dus de laatste opzegging sluit de socket.

Bewezen met een wegwerpproef tegen een relay op localhost die iedereen toelaat:
twee eigenaars open, dan de ene sluiten. Gemeten in de verbindingstabel van het
besturingssysteem en niet met de `dicht`-melding van de cliënt, want
`closeSocket` in @evolu/common zet `socket.onclose` op null voordat het sluit.
Oude vorm: 2 verbindingen na het sluiten. Nieuwe vorm: 1, en de andere eigenaar
kon daarna nog schrijven.

Suite groen: 42, 90, 36, 22, 54 en 68 goed, 0 fout.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Harmen
2026-09-10 09:55:05 +02:00
co-authored by Claude Opus 5
parent e4b0aa5df9
commit 090843a523
4 changed files with 51 additions and 2 deletions
@@ -12,6 +12,15 @@
## Volgende stap
- [ ] **Fase 4 afmaken, nu 0.7.0 op het apparaat draait.** De wachtlijst is daar de enige weg naar binnen,
dus de drie proeven die een toegelaten eigenaar nodig hebben kunnen. Ze vragen om en om een handeling
van de gebruiker op de statuspagina en een ronde met de cliënt
- [x] **Losmaken maakte niets los (10-09-2026).** Gemeld door de gebruiker: een eigenaar uit het register
halen liet de relay hem zien tot het proces stopte. De socket zit in de gedeelde worker, niet in de
instantie, en een transport uit de config van `createEvolu` is nergens meer op te zeggen. Nu start de
instantie met `transports: []` en gaat de transport erin met `evolu.useOwner`, die een opzegging
teruggeeft. Bewezen tegen een relay op localhost: met de oude vorm bleven het 2 verbindingen na het
sluiten van de ene eigenaar, met de nieuwe 1
- [ ] **De logregels van de relay-container lezen, want daar zit het antwoord op [OPEN.md](OPEN.md) punt
9.** Twee eigenaars die toegelaten waren zijn uit de allowlist verdwenen, en de cliënt kan niet zien
waarom. Gezocht wordt naar `learned a new owner`, `owners.json was unreadable`, `refused a write of