Meest recent bovenaan, in beide kaders en over de groepen heen. De rijen stonden in de volgorde van het bestand, dus van binnenkomst. De volgorde schuift mee zonder herladen: de ronde van vijf seconden bouwt de lijsten toch al opnieuw op. Alleen de pagina, dus geen nieuwe image. Erbij gevonden en als open taak genoteerd: lastSeen wordt alleen bij de verbinding gezet, niet bij een sync erover. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
207 lines
12 KiB
Markdown
207 lines
12 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.6 - 07-09-2026
|
|
|
|
**Alleen de pagina, dus geen nieuwe image.** `VERSION` in `tools/evolu-relay/build.sh` blijft op 0.5.0.
|
|
|
|
**De eigenaars staan op volgorde van laatst gezien, meest recent bovenaan**, in beide kaders en over de
|
|
groepen heen: een blokkade van vanmorgen staat boven een afgewezen poging van vorige week. Tot nu stonden
|
|
de rijen in de volgorde van het bestand, dus van binnenkomst. Op verzoek van de gebruiker. De volgorde
|
|
schuift mee zonder herladen, want de ronde van vijf seconden bouwt de lijsten toch al opnieuw op.
|
|
|
|
"Laatst gezien" is wat het relay-proces bijhoudt: het tijdstip van de laatste **verbinding**. Een sync
|
|
over een verbinding die al openstaat verandert dat tijdstip niet; daar is een wijziging in de relay-code
|
|
voor nodig, en dus een nieuwe image.
|
|
|
|
## 0.5.5 - 04-09-2026
|
|
|
|
**Alleen de pagina, dus geen nieuwe image.** `VERSION` in `tools/evolu-relay/build.sh` blijft op 0.5.0.
|
|
|
|
**De accentgloed achter de pagina staat uit**, op verzoek van de gebruiker en gelijk aan Electrum Gate
|
|
0.0.29. Hij kwam in 0.5.2 en deed wat hij moest doen, maar dit is een pagina waar je een blik op werpt,
|
|
en een gekleurde waas over het hele venster is daar veel opsmuk voor. De rand, de schaduw, het randlicht
|
|
en de doorschijnende kleur van de vlakken blijven; alleen het licht erachter is uit.
|
|
|
|
**Het is een schakelaar geworden en geen verwijdering:** `data-glow="on"` op het html-element zet hem
|
|
terug, en dat werkt alleen samen met `data-depth="deep"`. Die eis is van de gebruiker en hij is juist: de
|
|
gloed is de onderste van de vier dieptelagen, dus hem aanzetten op een vlakke pagina legt een verloop
|
|
achter vlakken die er dekkend voor staan.
|
|
|
|
De blur gaat met de gloed mee, want een `backdrop-filter` op een egale ondergrond levert per definitie
|
|
niets op. Daarmee verviel het mobiele blok uit 0.5.3 volledig: dat viel onder 900 pixels terug op de
|
|
vlakke stand, en zette nu drie dingen om die al uit stonden. Meegevonden en gerepareerd: de selector met
|
|
twee attributen wint van de `:root` in de `prefers-reduced-transparency`-query, die daardoor de blur niet
|
|
meer uit kreeg; die query noemt de gloedselector nu letterlijk.
|
|
|
|
## 0.5.4 - 31-08-2026
|
|
|
|
**Alleen de pagina, dus geen nieuwe image.**
|
|
|
|
De statuswidget staat nu **rechts** in de bovenste rij in plaats van links, en heet **Status** in
|
|
plaats van **Relay** (keuze gebruiker). Gelijk aan Electrum Gate, en dat is de reden: de twee
|
|
pagina's zijn één app store en horen op dezelfde manier te lezen. Het is bovendien de widget die als
|
|
enige begrijpelijk is zonder buur, dus hij is de juiste om alleen op een regel te belanden als het
|
|
scherm versmalt.
|
|
|
|
De id's `relay-state` en `relay-sub` blijven zoals ze zijn: dat is nog steeds waar de waarde vandaan
|
|
komt, en hernoemen zou alleen het JavaScript raken zonder dat iemand er iets aan heeft.
|
|
|
|
## 0.5.3 - 31-08-2026
|
|
|
|
**Alleen de pagina, dus geen nieuwe image.** `VERSION` in `tools/evolu-relay/build.sh` blijft op 0.5.0.
|
|
|
|
Twee bijstellingen op 0.5.2, allebei op verzoek van de gebruiker en allebei ook in Electrum Gate:
|
|
|
|
- **"Running" staat weer in de accentkleur.** Die tekst hing aan `--pos`, en die ging in 0.5.2 van
|
|
oranje naar groen omdat hij het accent volgde en dat als merkkleur las. Nu staat hij op
|
|
`--accent-text`: "Running" is de eigen toestand van de app en geen positief cijfer. `--pos` blijft
|
|
groen en betekent "het staat in de plus", dus de twee betekenissen blijven uit elkaar.
|
|
- **Op een telefoon valt de pagina terug op de vlakke stand.** De gloed is 58rem breed, ongeveer 928
|
|
pixels; op een telefoonscherm is het beeld dus smaller dan de gloed zelf en wordt het een egale waas
|
|
in plaats van een verloop. De blur gaat mee eruit, want doorzichtigheid met niets erachter is gewoon
|
|
grijs terwijl een `backdrop-filter` op een telefoon wel per frame rekenwerk kost. Grens: 900 pixels.
|
|
|
|
## 0.5.2 - 31-08-2026
|
|
|
|
**Alleen de pagina, dus geen nieuwe image.** `VERSION` in `tools/evolu-relay/build.sh` blijft staan; het
|
|
manifest gaat naar 0.5.2. Precies het geval waar de regel bovenaan dit bestand over gaat.
|
|
|
|
De opfrisbeurt uit het gedeelde designsysteem (`HomeGit/Docs/website-design-system.html`), in dezelfde
|
|
ronde doorgevoerd in Electrum Gate en in AssetApp:
|
|
|
|
- **een accentgloed achter de pagina**, uit de linkerbovenhoek, met een zwakker tegenlichtje rechtsboven.
|
|
Dit doet het meeste werk en het is de vóórwaarde voor de rest: een `backdrop-filter` op een egale
|
|
ondergrond levert per definitie niets op, dus er moet eerst iets áchter de vlakken staan;
|
|
- **kaarten zijn doorschijnend met een randlicht en een schaduw**, zodat ze lezen als panelen die op de
|
|
pagina liggen in plaats van als vlakken die erop geschilderd zijn;
|
|
- **één hoek voor élk buitenste kader**: de kaart van 28 naar 20 pixels, gelijk aan het logkader en aan
|
|
AssetApp. De geneste hoek van dat logkader rekent mee.
|
|
|
|
De vijf accentkleuren van AssetApp staan nu in het palet; deze app blijft op oranje en heeft er bewust
|
|
geen knop voor. Om dezelfde reden staat de diepte hier vást aan, terwijl het in AssetApp een instelling
|
|
is. `--pos` is groen geworden in plaats van oranje: hij volgde het accent, en dat las als merkkleur in
|
|
plaats van als betekenis.
|
|
|
|
**Eén valkuil is meteen ingebouwd en verdient het om onthouden te worden.** `prefers-reduced-motion` en
|
|
`prefers-reduced-transparency` mogen niet in één media-query: Windows heeft een schakelaar
|
|
"Animatie-effecten" die bij veel mensen uit staat en die zet `reduced-motion` op `reduce`, waarna er van
|
|
de hele opmaak niets overbleef. Ze staan apart, en `reduced-motion` haalt alleen de overgang weg.
|
|
|
|
## 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.
|