70 lines
3.7 KiB
Markdown
70 lines
3.7 KiB
Markdown
# Taken - Testclient
|
||||
|
|
|
|||
|
|
> Prioriteit: **A** | Afhankelijk van: –
|
|||
|
|
>
|
|||
|
|
> **Nieuw en meteen actief op 09-09-2026.** Het masterplan werd dezelfde dag geschreven en op verzoek van
|
|||
|
|
> de gebruiker direct gepromoveerd. Nummer 003, onder de bestaande 005: tier A was leeg en dit is nu de
|
|||
|
|
> lopende focus, dus de bovenkant van de reeks klopt weer.
|
|||
|
|
>
|
|||
|
|
> **Waarom dit plan er is:** vier beweringen over Evolu Relay rusten op redenering uit de broncode in
|
|||
|
|
> plaats van op een proef, waaronder dat blokkeren pas bij de volgende verbinding werkt. Zonder een cliënt
|
|||
|
|
> die geen hardware nodig heeft, blijft dat zo.
|
|||
|
|
|
|||
|
|
## Volgende stap
|
|||
|
|
|
|||
|
|
- [ ] **De cliënt met de relay laten praten.** De samenstelling werkt lokaal; wat nog niet geprobeerd is,
|
|||
|
|
is `transports` met `createOwnerWebSocketTransport` erin. **Hiervoor is het adres van de relay
|
|||
|
|
nodig**, en dat komt van de gebruiker en gaat niet in de repo; zie [OPEN.md](OPEN.md) punt 6
|
|||
|
|
|
|||
|
|
## Fase 1 - de samenstelling (af)
|
|||
|
|
|
|||
|
|
- [x] **`@evolu/common` 8.7.0 en `@evolu/nodejs` 3.1.0 geïnstalleerd in `tools/relay-client/`
|
|||
|
|
(09-09-2026)**
|
|||
|
|
- [x] **Vastgesteld dat `@evolu/nodejs` géén cliënt bevat**, alleen de relay plus losse bouwstenen. De
|
|||
|
|
afhankelijkheden voor `createEvolu` worden daarom zelf samengesteld in `src/evolu-node.js`; zie
|
|||
|
|
[PLAN.md](PLAN.md) §4e voor de vier valstrikken die dat kostte
|
|||
|
|
- [x] **Bewezen dat het werkt zonder relay (09-09-2026):** een eigenaar aanmaken, een Evolu-instantie met
|
|||
|
|
`transports: []`, een rij met een `Uint8Array`-kolom wegschrijven en teruglezen. De bytes komen er
|
|||
|
|
ongeschonden uit en het proces sluit schoon af, zonder defect en zonder te blijven hangen
|
|||
|
|
|
|||
|
|
## Fase 2 - de opdrachtregel
|
|||
|
|
|
|||
|
|
- [ ] Een eigenaar aanmaken en bewaren: mnemonic plus database in een eigen map, in een pad dat
|
|||
|
|
gitignored is. Het `OwnerId` wordt afgedrukt, de mnemonic niet
|
|||
|
|
- [ ] Een register van eigenaars: aanmaken, opsommen, teruglezen, weggooien
|
|||
|
|
- [ ] Verbinden met de relay via `createOwnerWebSocketTransport`, met het adres uit een instelling
|
|||
|
|
- [ ] Een blob schrijven met een instelbare omvang, en teruglezen
|
|||
|
|
- [ ] De losse WebSocket-poging die de HTTP-statuscode wél te zien krijgt; zie [OPEN.md](OPEN.md) punt 1
|
|||
|
|
|
|||
|
|
## Fase 3 - het bedieningsvlak
|
|||
|
|
|
|||
|
|
- [ ] De HTTP-server met de pagina, in de stijl van de twee statuspagina's
|
|||
|
|
- [ ] De lijst met eigenaars, met per eigenaar de toestand en de knoppen uit [PLAN.md](PLAN.md) §4b
|
|||
|
|
- [ ] Het log, met tijdstip per gebeurtenis
|
|||
|
|
|
|||
|
|
## Fase 4 - de proeven
|
|||
|
|
|
|||
|
|
De zes proeven staan in [PLAN.md](PLAN.md) §4c. Ze zijn handwerk en hebben een draaiende relay nodig, dus
|
|||
|
|
ze komen na fase 2 en kunnen deels vóór fase 3.
|
|||
|
|
|
|||
|
|
- [ ] Onbekende eigenaar met het venster dicht: 401, en een regel in de weigerlijst
|
|||
|
|
- [ ] Toelaten en opnieuw verbinden: komt de hele geschiedenis alsnog binnen
|
|||
|
|
- [ ] Blokkeren tijdens een lopende verbinding: blijft hij schrijven tot de volgende verbinding
|
|||
|
|
- [ ] Het venster van twee minuten met de pagina dicht
|
|||
|
|
- [ ] Eén blob boven `RELAY_MAX_WRITE_BYTES`, en meerdere kleinere die samen groter zijn
|
|||
|
|
- [ ] Twee eigenaars tegelijk verbonden
|
|||
|
|
- [ ] **De uitkomsten terugschrijven** naar §10 van
|
|||
|
|
[Upstream-evolu-relay.md](../../../Referenties/Upstream-evolu-relay.md) en naar open punt 10 van het
|
|||
|
|
plan **Umbrelapp**. Dit is de opbrengst van het hele plan; zonder deze stap blijft het gereedschap
|
|||
|
|
zonder resultaat
|
|||
|
|
|
|||
|
|
## Fase 5 - de toetsen
|
|||
|
|
|
|||
|
|
Wat automatisch kan is klein, en [PLAN.md](PLAN.md) §7 zegt waarom.
|
|||
|
|
|
|||
|
|
- [ ] Het register: aanmaken, teruglezen, een naam die al bestaat, een half aangelegde map
|
|||
|
|
- [ ] Een vaste mnemonic met een vast verwacht `OwnerId`. Dit is de toets die omvalt als Evolu onder ons
|
|||
|
|
iets anders gaat doen
|
|||
|
|
- [ ] Het lezen van de opdrachtregel
|
|||
|
|
- [ ] De nieuwe toetsen mutatie-testen, zoals `HomeGit/CLAUDE.md` voorschrijft
|