Testclient: Aankloppen heet Testen, en een weigering stopt de herhaallus

Voorstel van de gebruiker, en het tweede deel loste meer op dan een knop. Een
verbinding die geweigerd wordt bleef eindeloos opnieuw proberen, en elke poging
is een regel in de weigerlijst van de relay; zo liep die lijst tijdens deze
sessie ook vol.

- klop heet test op de opdrachtregel en Testen op de pagina.
- Verbinden gaat uit zodra een test zegt dat de eigenaar geweigerd wordt, met de
  uitkomst in het rood naast de naam. Onbekend telt als toegestaan, want anders
  moet je eerst testen om iets te mogen en is dat zelf ook een poging. Blob
  schrijven gaat door dezelfde poort en schrijft dan lokaal verder.
- Een lopende verbinding stopt zichzelf: na drie mislukte sockets wordt er
  precies een keer getest, en bij een weigering gaat de verbinding eruit. Is het
  geen weigering, dan blijft hij staan, want dan is opnieuw proberen juist goed.

De melding in een dialoogvenster is eruit; de uitkomst staat naast de naam en in
het log en die blijven staan. In de browser nagekeken: testen geeft 401, de
regel verschijnt rood, en Verbinden is uitgegrijsd voor de geteste eigenaar
terwijl de ongeteste hem houdt.

Suite: 478 goed, 0 fout.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Harmen
2026-09-09 14:20:22 +02:00
co-authored by Claude Opus 5
parent 3f7da42388
commit 04c20a37f0
7 changed files with 129 additions and 19 deletions
+4 -2
View File
@@ -43,8 +43,10 @@
8. **`sync` en het bedieningsvlak weten niet of een verbinding er nog is.** Er staat "verbonden" zodra de
instantie gemaakt is, en Evolu meldt niet dat de relay weggevallen is (hij probeert het gewoon opnieuw).
Voor de proeven is `klop` het antwoord, maar op de pagina staat een groen bolletje dat meer belooft dan
het weet. Evolu heeft een `SyncState`; uitzoeken of daar iets bruikbaars in zit.
**Deels opgelost op 09-09-2026:** het bedieningsvlak telt mislukte sockets en test na drie mislukkingen
één keer, zodat een geweigerde eigenaar niet eindeloos blijft kloppen. Wat er nog niet is, is een groen
bolletje dat werkelijk "er staat nu een verbinding" betekent in plaats van "we hebben er een geopend".
Evolu heeft een `SyncState`; uitzoeken of daar iets bruikbaars in zit.
9. **Twee toegelaten eigenaars zijn uit de allowlist van de relay verdwenen (09-09-2026), en we weten
niet waarom.** Ze gaven allebei 101 en even later allebei 401, met "turned away" op de statuspagina.
+22 -1
View File
@@ -88,5 +88,26 @@ kort daarvoor nog twee keer 101 gaf.
**Daarmee ligt de vraag bij de relay en niet meer bij de cliënt: twee eigenaars die toegelaten waren zijn
uit de allowlist verdwenen.** Wat er op de statuspagina van staat is "turned away". Wat dit kan zijn staat
in [OPEN.md](OPEN.md) punt 10; het antwoord zit in de logregels van de relay-container en die kan alleen de
in [OPEN.md](OPEN.md) punt 9; het antwoord zit in de logregels van de relay-container en die kan alleen de
gebruiker lezen.
## 09-09-2026 - "Aankloppen" heet nu "Testen", en een weigering stopt de lus
Voorstel van de gebruiker, en het tweede deel loste meer op dan een knop. Een verbinding die geweigerd
wordt bleef namelijk eindeloos opnieuw proberen, en élke poging is een regel in de weigerlijst van de
relay; dat is precies hoe die lijst tijdens deze sessie volliep. Drie wijzigingen:
- **de naam.** `klop` heet `test` op de opdrachtregel en "Testen" op de pagina. Het verschil met verbinden
staat er nu ook uitgelegd: testen is één vraag met een statuscode als antwoord, verbinden is een gesprek
dat Evolu eindeloos blijft herstellen;
- **"Verbinden" gaat uit zodra een test zegt dat de eigenaar geweigerd wordt**, met de uitkomst in het rood
naast de naam. Onbekend telt als toegestaan, en dat is met opzet: eerst moeten testen om iets te mogen zou
betekenen dat je altijd een poging in de weigerlijst zet voordat je iets kunt doen. "Blob schrijven" gaat
door dezelfde poort en schrijft dan lokaal verder;
- **een lopende verbinding stopt zichzelf.** Na drie mislukte sockets wordt er precies één keer getest; is
het een weigering, dan gaat de verbinding eruit. Is het geen weigering, dan blijft hij staan, want dan is
het een relay die even weg is en daar is opnieuw proberen juist goed voor.
De melding in een dialoogvenster is eruit: de uitkomst staat naast de naam en in het log, en die blijven
staan. In de browser nagekeken: testen geeft 401, de regel verschijnt in het rood, en "Verbinden" is
uitgegrijsd voor de geteste eigenaar terwijl de ongeteste hem gewoon houdt.
+9 -3
View File
@@ -42,9 +42,11 @@
- [x] **Een blob schrijven met een instelbare omvang, en teruglezen.** `schrijf` en `lees`, met
`--bytes` en `--lokaal`
- [x] **De losse WebSocket-poging die de HTTP-statuscode wél te zien krijgt:** `src/probe.js` en de
opdracht `klop`. Met `node:http` en niet met de WebSocket van Node, want die geeft je bij een
weigering een `error` en geen 401. Daarmee is [OPEN.md](OPEN.md) punt 1 opgelost vóórdat het een
probleem werd
opdracht `test` (tot 09-09-2026 `klop` geheten, hernoemd op voorstel van de gebruiker). Met
`node:http` en niet met de WebSocket van Node, want die geeft je bij een weigering een `error` en
geen 401. Daarmee is [OPEN.md](OPEN.md) punt 1 opgelost vóórdat het een probleem werd
- [x] **`spiegel <naam>`**, de enige proef die van de cliëntkant kan bewijzen dat er werkelijk iets op de
relay staat: dezelfde eigenaar in een lege database ernaast
## Fase 3 - het bedieningsvlak (af, 09-09-2026)
@@ -57,6 +59,10 @@
nodig is, waarschuwen als `.env` ontbreekt, openen de browser en houden het venster open bij een fout
- [x] **In de browser nagekeken** (09-09-2026): een blob schrijven en teruglezen werkt vanuit de pagina,
de gegevens zijn dezelfde als die van de opdrachtregel, en licht en donker kloppen allebei
- [x] **"Verbinden" gaat uit na een weigering** (09-09-2026, voorstel van de gebruiker), en een lopende
verbinding die blijft falen test zichzelf één keer en stopt bij een weigering. Dat laatste is de
eigenlijke opbrengst: zonder die rem vult één geweigerde verbinding de weigerlijst van de relay met
pogingen, en dat is tijdens deze sessie ook gebeurd
## Fase 4 - de proeven