Relay 0.7.0: een weg naar binnen, en de melding bij elke klik weg

Vier punten van de gebruiker, opgekomen tijdens het beproeven met de testclient.

De getimede leerstand is eruit; de wachtlijst is de enige weg naar binnen. Zijn
redenering: allebei de wegen vragen iemand die bij de app kan, dus het is
dubbelop, en het venster is de zwakste omdat het iedereen toelaat die er
toevallig in verbindt. Dat weegt zwaarder nu de relay op een publiek wss-adres
kan staan. De oorspronkelijke reden voor de leerstand, dat je je eigen OwnerId
nergens kon aflezen, verviel toen de weigerlijst dat id ging tonen. Daarmee
verdwijnt ook de bug die hij dezelfde dag meldde: een geleerde eigenaar bleef in
de weigerlijst staan terwijl hij al kon schrijven en lezen, want decideOwner
haalde hem niet van die lijst af en de knop allow wel.

"Refused owners" heet "Waiting list", met de badge Waiting en een teller waar de
widget van het tijdvenster stond. Het veld op schijf blijft rejected: hernoemen
zou een migratie zijn voor een woord dat niemand ziet.

Het adres onderaan zei http:// en dat kan nergens werken, want de relay spreekt
WebSocket en nooit HTTP. Nu ws://<host>:3852, met een regel over wss://<domein>
zonder poort achter een reverse proxy. Dat is precies de fout die diezelfde dag
een ronde kostte bij het koppelen van de testclient.

De melding bij elke klik is weg. Die stond in de gewone stroom van de pagina,
dus alles eronder schoof omlaag en weer omhoog. Nu gaan de knoppen in de lijsten
even op slot tot de ronde de nieuwe stand heeft; foutmeldingen blijven wel staan,
want die zeggen iets wat je nergens anders ziet.

STATE_VERSION blijft 1 en een owners.json van 0.6.0 leest door: learning en
learningUntil worden gelezen, genegeerd en niet teruggeschreven. Een verhoging
zou store.js de allowlist van een werkende installatie opzij laten schuiven.

Twee toetsen bewaken dat de leerstand niet terugsluipt: een onbekende eigenaar
wordt geweigerd ook met learning: true in het bestand, en set-learning is een
onbekende actie. Beide mutatie-getest.

De compose staat op 0.7.0 zonder digest, zodat het hard faalt tot de image
bestaat. Bouwen, duwen en pinnen ligt bij de gebruiker.

Suite: 424 goed, 0 fout.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Harmen
2026-09-09 15:45:55 +02:00
co-authored by Claude Opus 5
parent 04c20a37f0
commit a092464e4d
13 changed files with 449 additions and 804 deletions
+38
View File
@@ -19,6 +19,44 @@ De regel is: **verhoog je `VERSION`, dan verhoog je ook het manifest; andersom n
> geschreven uit de `releaseNotes` in het manifest en uit `PROGRESS.md` van het plan **Umbrelapp**. Ze zijn
> daarom korter dan de rest.
## 0.7.0 - 09-09-2026
**Nog niet gebouwd.** De compose staat op `evolu-relay:0.7.0` zónder digest, zodat een installatie hard
faalt tot de image bestaat in plaats van stil de oude te draaien. Bouwen, duwen en pinnen ligt bij de
gebruiker, op de Umbrel.
**Eén weg naar binnen: de wachtlijst.** De getimede leerstand is eruit, op voorstel van de gebruiker en met
zijn redenering: allebei de wegen vragen iemand die bij de app kan, dus het was dubbelop, en het venster was
de zwakste van de twee omdat het iederéén toeliet die er toevallig in verbond. Dat weegt zwaarder nu de
relay op een publiek wss-adres kan staan. De oorspronkelijke reden voor de leerstand was dat je je eigen
`OwnerId` nergens kon aflezen, en die verviel toen de weigerlijst dat id ging tonen.
Wat daarmee mee verdween is een verwarring die de gebruiker dezelfde dag meldde: een eigenaar die via de
leerstand binnenkwam bleef in de weigerlijst staan totdat je daar "allow" koos, terwijl hij ondertussen wél
kon verbinden, schrijven en lezen. `decideOwner` haalde een geleerde eigenaar niet van die lijst af; de
knop "allow" deed dat wel. Nu is er nog maar één pad en kan dat niet meer uiteenlopen.
**"Refused owners" heet "Waiting list".** Dat is wat het is: kandidaten die op een beslissing wachten. De
badge op zo'n regel heet "Waiting" in plaats van "Turned away", en de widget die het tijdvenster toonde telt
nu hoeveel eigenaars er wachten. Het veld in `owners.json` heet nog `rejected`; hernoemen zou een migratie
zijn voor een woord dat niemand ziet.
**Het adres onderaan zei `http://` en dat kan nergens werken:** de relay is een WebSocket-server en spreekt
nooit HTTP tegen een cliënt. Nu `ws://<host>:3852`, met een regel eronder over wat het achter een reverse
proxy wordt: `wss://<domein>` **zonder** poort, want de proxy luistert op 443. Dat is precies de fout die op
09-09-2026 een ronde kostte bij het koppelen van de testcliënt.
**De melding bij elke klik is weg.** Er verscheen bij elke knop "Sent. The relay applies changes within a
few seconds." in de balk bovenaan, en die balk staat in de gewone stroom van de pagina: alles eronder schoof
omlaag en bij het verdwijnen weer omhoog. Gemeld door de gebruiker. In plaats daarvan gaan de knoppen in de
lijsten even op slot tot de ronde de nieuwe stand heeft opgehaald. De foutmeldingen blijven wél staan: die
zeggen iets wat je nergens anders ziet.
**Bestaande installaties lezen door.** `STATE_VERSION` blijft 1 en `normalizeState` accepteert een
`owners.json` van 0.6.0 met `learning` en `learningUntil` erin; die velden worden gelezen, genegeerd en niet
teruggeschreven. Een verhoging zou het bestand laten afwijzen, en dan schuift `store.js` de allowlist van
een werkende installatie opzij en gaat de deur dicht voor eigenaars die er al in stonden.
## 0.6.0 - 08-09-2026
Gebouwd en geduwd op de Umbrel op 08-09-2026, gepind als