Gemeld door de gebruiker binnen een uur na 0.5.0, op de pagina op zijn eigen Umbrel. "Sent. The relay applies changes within a few seconds." bleef staan tot je de pagina herlaadde, dus ook lang nadat hij niet meer waar was. Een ontbrekende tak: de ronde die elke vijf seconden loopt zette de melding wel aan maar nooit uit. De regel die daaruit volgt en die in het commentaar staat: de melding hoort van de RONDE te zijn en niet van de klik, want alleen de ronde weet of hij nog waar is. Hij verdwijnt nu zodra het relay-proces de opdracht heeft opgepakt, en blijft staan zolang de opdracht in de postbus ligt. Dat is het geval waarin er iets te melden valt, want normaal duurt dat twee seconden. Een weigering is de uitzondering en blijft staan tot de volgende opdracht: het is de enige uitleg die je krijgt van wat er misging, en die mag niet binnen vijf seconden verdwijnen. Met een vlag en niet door naar de klasse van het element te kijken, zoals de vorige versie van deze pagina deed; dan hangt gedrag aan een naam die er ook om opmaakredenen kan staan. Bijvangst: die weigering stond in de neutrale stijl en is nu rood. Een geweigerde opdracht in de neutrale stijl leest als een mededeling. Alleen index.html.template geraakt, dus geen nieuwe image: build.sh blijft op 0.5.0 en het manifest gaat naar 0.5.1. De changelog beweerde sinds diezelfde ochtend dat die twee nummers gelijk gehouden worden; de regel is dat een hogere VERSION een hoger manifest vraagt en niet andersom. Rechtgezet. Beide gedragingen zijn in een browser nagegaan tegen de voorbeeldweergave: de bevestiging is na zeven seconden verborgen, de weigering staat er dan nog. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
120 lines
6.9 KiB
Markdown
120 lines
6.9 KiB
Markdown
# Versiegeschiedenis - Evolu Relay
|
|
|
|
Nieuwste bovenaan. Elke regel hier hoort bij een `version` in
|
|
`whatsnext-evolu-relay/umbrel-app.yml`; zonder verhoging van dat nummer rolt umbrelOS een wijziging niet
|
|
uit.
|
|
|
|
**Er hoort een tweede nummer bij: `VERSION` in `tools/evolu-relay/build.sh`, het etiket op de image.** Die
|
|
twee lopen uiteen zodra er iets in de app-map wijzigt zonder dat de relay-code verandert, en dat hóórt ook
|
|
zo: een `*.template` bereikt een installatie via de update-whitelist, en daarvoor een image bouwen en duwen
|
|
is werk zonder opbrengst. Het manifest loopt dus vóór op de image.
|
|
|
|
De regel is: **verhoog je `VERSION`, dan verhoog je ook het manifest; andersom niet.**
|
|
|
|
> Hier stond op 30-08-2026 dat ze "sinds 0.5.0 gelijkgehouden worden". Dat was diezelfde dag al onwaar, want
|
|
> 0.5.1 raakt alleen de pagina. De regel hierboven is wat er bedoeld werd.
|
|
|
|
> **Deze geschiedenis is op 30-08-2026 bijgewerkt en liep tot dat moment achter:** er stond alleen 0.0.1,
|
|
> terwijl de app op 0.4.0 zat. De entries voor 0.2.0 tot en met 0.4.0 zijn met terugwerkende kracht
|
|
> geschreven uit de `releaseNotes` in het manifest en uit `PROGRESS.md` van het plan **Umbrelapp**. Ze zijn
|
|
> daarom korter dan de rest.
|
|
|
|
## 0.5.1 - 30-08-2026
|
|
|
|
**Reparatie, gemeld door de gebruiker binnen een uur na 0.5.0.** De melding bovenaan de pagina ging nooit
|
|
weg. "Sent. The relay applies changes within a few seconds." bleef staan tot je de pagina herlaadde, dus ook
|
|
lang nadat hij niet meer waar was.
|
|
|
|
De oorzaak was één ontbrekende tak: de ronde die elke vijf seconden loopt zette die melding wel áán maar
|
|
nooit uit. Nu is de melding van de ronde en niet van de klik: hij verdwijnt zodra het relay-proces de
|
|
opdracht heeft opgepakt, en blijft alleen staan zolang de opdracht nog in de postbus ligt. Dát is het geval
|
|
waarin er iets te melden valt, want normaal is dat binnen twee seconden gebeurd.
|
|
|
|
**Een weigering is de uitzondering en blijft wél staan**, tot je een volgende opdracht geeft. Die mag niet
|
|
binnen vijf seconden verdwijnen, want het is de enige uitleg van wat er misging. Hij is bovendien rood
|
|
geworden; dat was hij niet, en een geweigerde opdracht in de neutrale stijl leest als een mededeling.
|
|
|
|
Alleen `index.html.template` geraakt, dus **geen nieuwe image**: `build.sh` blijft op 0.5.0.
|
|
|
|
## 0.5.0 - 30-08-2026
|
|
|
|
**De statuspagina op de lijst van de gebruiker, na een week met 0.4.0 gewerkt te hebben.** Negen punten,
|
|
alle negen gedaan.
|
|
|
|
**Een tijdvenster van twee minuten in plaats van een schakelaar.** Openzetten, apparaat koppelen, en de deur
|
|
sluit zichzelf; vroegtijdig sluiten of de twee minuten opnieuw starten kan ook. **De teller loopt in het
|
|
relay-proces en niet in de pagina**, want een teller in een tabblad dat je sluit, sluit de deur niet.
|
|
`policy.js` heeft er `learningUntil`, `isLearningOpen` en `expireLearning` voor gekregen, zonder
|
|
`STATE_VERSION` te verhogen: een verhoging zou de allowlist van de draaiende installatie laten afwijzen.
|
|
|
|
**Labels op een eigenaar-id.** Een `OwnerId` is een reeks tekens zonder betekenis; nu kun je er een naam aan
|
|
hangen. De labels staan in een eigen `labels.json` met de agent als enige schrijver, dus ze zijn meteen
|
|
opgeslagen en labelen werkt ook als de relay omgevallen is.
|
|
|
|
**Geblokkeerde en geweigerde eigenaars in één kader**, met een badge die zegt welke van de twee het is. Wat
|
|
je ermee doet was toch hetzelfde: toelaten of vergeten.
|
|
|
|
**De pagina is gelijkgetrokken met Electrum Gate**: dezelfde breedte van 1760 pixels, hetzelfde raster,
|
|
hetzelfde icoon van 64 pixels, dezelfde kop en het versienummer erachter. Knoppen verschijnen bij hover over
|
|
een regel, de uitleggende alinea's zijn verdwenen, en de voetregel is vervangen door een menu-item "About
|
|
this app" waar die uitleg nu staat.
|
|
|
|
**Wat er aan toetsen bij kwam**, want de pagina's waren met bijna drieduizend regels ongetoetst:
|
|
`tests/test_relay_agent.py` (nieuw), `tests/test_paginas_parsen.mjs` (nieuw), een dollarteken-toets waarvan
|
|
het commentaar al beweerde dat hij bestond, en een toets dat er geen werkbestanden in een app-map staan.
|
|
Verder `tools/voorbeeldpagina.mjs`, waarmee een `*.template` in een browser te bekijken is; dat vond meteen
|
|
twee echte fouten in de nieuwe pagina.
|
|
|
|
## 0.4.0 - 28-08-2026
|
|
|
|
**Reparatie.** De statuspagina wisselde tussen werken en een foutmelding: hij bereikte zijn agent via de
|
|
korte containernaam `agent`, en Electrum Gate in deze store heeft er ook een. Ongeveer de helft van de
|
|
verzoeken kwam bij de verkeerde app uit, en het maakte de pagina van Gate mee kapot. Beide apps wijzen nu
|
|
naar `<app-id>_agent_1`.
|
|
|
|
Verder de tekst die de app aan één cliënt verbond eruit: het is een algemene Evolu-relay. En de uitleg onder
|
|
de schakelaar voor nieuwe eigenaars klopte niet, die beschreef de open stand ook als hij dicht stond.
|
|
|
|
Let op: het manifest stond hier op 0.4.0 terwijl de image 0.3.0 bleef, want er wijzigde niets in het
|
|
relay-programma.
|
|
|
|
## 0.3.0 - 28-08-2026
|
|
|
|
**De eerste versie die op de Umbrel draait en gebruikt wordt.** De eigen eigenaars-allowlist erin, met de
|
|
statuspagina achter de umbrelOS-inlog, en TLS via Zoraxy op een eigen subdomein. Trezor Suite
|
|
synchroniseert eroverheen, heen én terug; die tweede richting is gemeten met een tweede gebruikersaccount
|
|
dat met een lege database alle labels binnenkreeg.
|
|
|
|
De poorten zijn omgedraaid ten opzichte van 0.0.2: de **pagina** hangt achter de app-proxy mét de inlog, en
|
|
de **relay** publiceert zijn eigen host-poort 3852. Een sync-cliënt is geen browser met een sessiecookie en
|
|
zou achter de inlog een inlogpagina krijgen.
|
|
|
|
## 0.2.0 - 28-08-2026
|
|
|
|
**De relay is vervangen.** Tot 0.0.2 pakketteerde deze app de eigen uitrol van een leverancier, met een
|
|
quota-manager en een PostgreSQL erbij, en die kon buiten hun eigen dienst in de kern niet werken: cliënten
|
|
slaan de quota-manager over zodra je ze naar een eigen relay wijst, terwijl die relay elke eigenaar weigert
|
|
die de quota-manager nooit geregistreerd heeft.
|
|
|
|
Hiervoor in de plaats komt de relay van het Evolu-project zelf, aangeroepen uit ons eigen programma in
|
|
`tools/evolu-relay/`. Gemeten en niet aangenomen: een cliënt synchroniseerde ernaartoe en de data kwam aan.
|
|
Drie containers werden een relay plus een statuspagina, en de database met zijn wachtwoord is verdwenen.
|
|
|
|
Wat wij toevoegen zijn de twee terugroepfuncties die `createRelay` daarvoor heeft, `isOwnerAllowed` en
|
|
`isOwnerWithinQuota`. De relay zelf is niet nagebouwd en niet aangepast.
|
|
|
|
## 0.0.1 - 25-08-2026
|
|
|
|
Eerste versie, nog niet geinstalleerd.
|
|
|
|
Drie containers: de relay en de quota-manager uit dezelfde zelfgebouwde image met een ander `command`, en
|
|
een Postgres eronder. De quota-manager gaat mee omdat de relay elke eigenaar zonder limietenrij weigert.
|
|
|
|
De app-proxy staat op `PROXY_AUTH_ADD: "false"`, want Trezor Suite is geen browser met een sessiecookie.
|
|
Dat is het patroon van de eigen nostr-relay-app van Umbrel. Poort 3851.
|
|
|
|
De image komt uit `tools/evolu-relay/build.sh`, gepind op commit `c03a204` van
|
|
`trezor/trezor-suite-sync`. Trezor publiceert zelf geen image.
|
|
|
|
Nog niets van dit alles is op een Umbrel gedraaid.
|