De teller met wachtenden heette ook "Waiting" en zei hetzelfde als het kader met
de lijst. Het aantal staat nu in de kop van dat kader, met de regel eronder
erbij; bij nul staat er geen getal, want de lijst zegt dan al "None." De plek in
de bovenste rij blijft leeg, op verzoek van de gebruiker: schuiven de andere
drie op, dan verliest "Status" de rechterkolom.
Met de adresregel weg viel op dat "About this app" eiste dat het sync-adres met
http begint en niet met ws, terwijl het kader onderaan ws:// toont. Beide
beweringen waren waar: de relay spreekt WebSocket, en het veld van Trezor Suite
neemt http(s)://, gemeten op 28-08-2026. Wat eruit moest was dus de eis. Er
staat nu dat het van de app afhangt, met dezelfde host en poort in beide
vormen, en de regel over wss:// zonder poort staat bij de alinea over van buiten
verbinden.
Nagekeken in voorbeeld/: de widget is weg met de lege plek op zijn positie, de
kop leest "Waiting 2", en het getal verdwijnt met de hidden-klasse.
Nog steeds 0.7.1 en nog niet gebouwd, dus de compose blijft zonder digest.
Suite groen: 22, 42, 90, 36, 54 en 68 goed, 0 fout.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Vier punten van de gebruiker na een dag met 0.7.0. Drie zijn woordkeuze:
"Accepted owners" en "Waiting list" heten "Accepted" en "Waiting", de badge
"Waiting" is weg en de regel onder het adres is weg. De badge kon eruit zonder
verlies, want het onderscheid waarvoor hij er was blijft staan: een
geblokkeerde eigenaar is nu precies de regel met badge.
Het vierde punt was echt werk: elke rij is nu even hoog. Een rij werd hoger op
het moment dat je hem een naam gaf, want het label duwde het id naar een derde
regel. Nu deelt het id de onderregel met de tijden, afgekapt met een puntje en
volledig in de tooltip. Een vaste hoogte in CSS laat witruimte achter onder een
rij zonder label en leest dan als een weergavefout.
Nagekeken in voorbeeld/: vijf rijen, alle vijf 68px, ook tijdens het labelen.
Op het apparaat nog ongezien, want er is geen image: VERSION, het manifest en
de compose staan op 0.7.1 zonder digest.
Suite groen: 42, 90, 36, 22, 54 en 68 goed, 0 fout.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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>
Plan Eigenimage, fase 5, op keuze van de gebruiker: een image met de relay
erbij en geen tweede recept. agent.py, nginx.conf en index.html verhuizen
naar tools/evolu-relay/ naast src/; de Dockerfile blijft op node:24-slim en
haalt nginx en python3 uit apt. Drie containers uit een image: de relay als
node via de compose, de agent en nginx als root.
Anders dan alleen verplaatst: user www-data in nginx.conf (Debian heeft geen
gebruiker nginx), geen USER meer in de image, de versie in de kop via
api/status met RELAY_APP_VERSION. VERSION 0.6.0, manifest 0.6.0, drie keer
dezelfde tag in de compose, ongepind tot de eerste push.
Tests mee verhuisd; de vormtest toetst de drie tags tegen VERSION. Niet
gebouwd: er is hier geen Docker.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>