De leeskant is bewezen, en daarmee is het doel van Umbrelapp gehaald

Getest met een tweede gebruikersaccount op dezelfde Mac, en dat is schoner dan een
tweede apparaat: die installatie begint met een lege lokale Evolu-database, dus
alles wat daar verschijnt kan alleen van de relay komen. De labels kwamen door, en
een wijziging aan die kant komt ook weer terug. Beide richtingen dus, met bewijs.

Daarmee staat er wat dit plan beloofde: een tweede app in deze store,
geinstalleerd op de Umbrel, met Trezor Suite die erop synchroniseert. Het restwerk
is klein en wacht nergens op: een herstart van de app overleven, twee images
pinnen, en data per eigenaar kunnen wissen.

Prioriteitsherziening die daarbij hoort. Umbrelapp zakt van A naar B. Eigenimage
gaat naar A, want dat lag alleen stil omdat de gebruiker eerst Evolu Relay wilde
afmaken; het is hernummerd naar 004 zodat de bovenkant van de reeks weer op
tier-orde staat. Proefopstelling zakt naar B en is klaar voor het archief: alle
vragen die het bezat zijn hier beantwoord, en de rest gaat over een pakket dat niet
meer bestaat.

De takenlijst is opgeschoond van regels die over het oude pakket gingen: de
Postgres-pin, de schemavraag, het adres op 3851 en de twee blokkades. In plaats
daarvan staan de twee images die nu nog ongepind zijn. En de controle of deze app
Electrum Gate raakt is afgevinkt met wat er werkelijk gebeurde: dat deed hij, via
een gedeelde containernaam, en dat is gerepareerd.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Harmen
2026-08-28 13:59:15 +02:00
co-authored by Claude Opus 5
parent af7857251d
commit e4a8747307
8 changed files with 54 additions and 34 deletions
@@ -1,6 +1,9 @@
# Taken - Proefopstelling
> Prioriteit: **A** | Afhankelijk van: -
> Prioriteit: **B** | Afhankelijk van: -
>
> Van A naar B op 28-08-2026: er valt hier niets meer te doen behalve beslissen of het plan wordt
> opgeheven. Alle vragen die het bezat zijn door **Umbrelapp** beantwoord.
>
> Actief sinds 25-08-2026, bij het inrichten van dit project.
>
@@ -23,9 +23,13 @@ van de gebruiker: de `OwnerId` wordt op de Trezor afgeleid, en zijn model kan no
apparaat kent de app geen device state, en dan slaat Suite een label lokaal op en doet verder niets, zonder
melding. Bronregels in [OPEN.md](OPEN.md) punt 9.
Daardoor blijft de leeskant ongemeten, en dat is nu de belangrijkste openstaande controle. Er is een tweede
cliënt voor nodig die wél een sleutel kan afleiden; een tweede desktop met dezelfde Trezor is de kortste
weg.
**En de leeskant is aan het eind van de dag alsnog bewezen**, met een tweede gebruikersaccount op dezelfde
Mac. Dat is zelfs schoner dan een tweede apparaat: die installatie begint met een lege lokale
Evolu-database, dus alles wat daar verschijnt kan alleen van de relay komen. De labels kwamen door.
**Daarmee is het doel van dit plan gehaald:** een tweede app in deze store, geïnstalleerd op de Umbrel, met
Trezor Suite die erop synchroniseert, heen en terug. Wat er nog openstaat is klein: een herstart van de app
overleven, twee images pinnen, en het wissen van data per eigenaar.
**Geraakt:** de hele app-map, `tools/evolu-relay/`, `tests/`, `CLAUDE.md`, `whatsnext-electrum-gate/` en de
documentatie. **Tests:** alle vier groen.
+40 -27
View File
@@ -1,6 +1,8 @@
# Taken - Umbrelapp
> **App: Evolu Relay.** Prioriteit: **A** | Afhankelijk van:
> **App: Evolu Relay.** Prioriteit: **B** | Afhankelijk van:
>
> Van A naar B op 28-08-2026: het doel van dit plan is gehaald en het restwerk wacht nergens op.
>
> Actief sinds 25-08-2026. Gepromoveerd uit `Masterplannen/` omdat de gebruiker besloot het pakket meteen te
> maken. De afhankelijkheid op **Proefopstelling** is daarmee geen blokkade meer maar een parallelle bron:
@@ -24,11 +26,11 @@
gekoppeld worden. Zonder apparaat kent de app geen `deviceStaticSessionId`, en dan slaat Suite een
label lokaal op en doet verder niets, zonder melding. De hele redenering met bronregels staat in
[OPEN.md](OPEN.md) punt 9
- [ ] **De leeskant nog meten.** Er is nooit een tweede werkende cliënt geweest, dus dat een ander apparaat
de labels terugkrijgt is niet gezien. **Dit is nu de belangrijkste openstaande controle van dit plan**,
en er is een tweede cliënt voor nodig die wél een sleutel kan afleiden: een tweede desktop met
dezelfde Trezor is de kortste weg. iOS valt af zolang het apparaat niet aan de telefoon kan.
**Eigenaar: gebruiker**
- [x] **De leeskant gemeten en in orde (28-08-2026).** Getest met een tweede gebruikersaccount op dezelfde
Mac, en dat is schoner dan een tweede apparaat: die installatie heeft een **lege** lokale
Evolu-database, dus alles wat daar verschijnt kan alleen van de relay komen. Dezelfde Trezor en
dezelfde wallet, dus dezelfde `OwnerId` en geen nieuwe eigenaar. De labels kwamen door. Daarmee zijn
beide richtingen bewezen
- [x] **Besloten wat er met het huidige pakket gebeurt (28-08-2026): het gaat eruit.** De relay van Trezor,
de quota-manager en de Postgres vervallen. Wat ervoor in de plaats komt staat in [PLAN.md](PLAN.md)
§4g en §4h
@@ -91,12 +93,12 @@ Wat er niet staat: iOS doet niets mee, en daardoor is de leeskant nooit gemeten.
- [x] **De fout die dat opleverde is gerepareerd:** de korte containernaam `agent` is op het gedeelde
Docker-netwerk niet uniek, dus de helft van de verzoeken kwam bij Electrum Gate uit. Beide apps
wijzen nu naar `<app-id>_agent_1`, en `test_appstore_vorm.py` toetst dat voortaan
- [ ] **De app opnieuw installeren in plaats van updaten.** De gebruiker heeft de oude installatie op
28-08-2026 weggehaald; dat is ook de nette weg, want niet elk bestand bereikt een bestaande
installatie via een update
- [ ] **Zoraxy inrichten** op het eigen subdomein met TLS, doorverwijzend naar de relay-poort, met de
WebSocket-upgrade aan. Testen met de handshake-curl uit [PLAN.md](PLAN.md) §6a stap 3, met de
publieke naam in plaats van het IP. **Eigenaar: gebruiker**
- [x] **De app opnieuw geïnstalleerd in plaats van geüpdatet (28-08-2026).** De oude installatie was er
eerst afgehaald, en dat was ook de nette weg: niet elk bestand bereikt een bestaande installatie via
een update
- [x] **Zoraxy ingericht (28-08-2026)** op een eigen subdomein met TLS, doorverwijzend naar de relay-poort,
met de WebSocket-upgrade aan. De handshake-curl uit [PLAN.md](PLAN.md) §6a stap 3 geeft daar
`101 Switching Protocols`, en de desktop synchroniseert eroverheen
## Fase 1 - De app-map
@@ -127,9 +129,11 @@ Wat er niet staat: iOS doet niets mee, en daardoor is de leeskant nooit gemeten.
`sc.kamenier-hamer.nl/sysop/evolu-relay:c03a204@sha256:2fe1e9e9…`, op beide services. Dat moest wel:
zie fase 4. **Let op dat dit één architectuur is** (amd64), want er is alleen amd64 geduwd. Voor de
officiele store hoort er een multi-arch index-digest met arm64 in; dat staat bij **Publicatie-Relay**
- [ ] **`postgres:17-alpine` pinnen op de multi-arch index-digest.** Kan meteen, met
`docker buildx imagetools inspect`, en het is het laatste ongepinde in deze app. Staat als TODO in de
compose
- [x] **De Postgres-pin is vervallen (28-08-2026):** die database zit niet meer in de app
- [ ] **`python:3-alpine` en `nginx:alpine` pinnen op hun multi-arch index-digest.** Dat zijn de twee laatste
ongepinde images van deze app, en ze staan als TODO in de compose. Met
`docker buildx imagetools inspect` op de Umbrel. Electrum Gate heeft precies dezelfde twee openstaan,
dus dit is één handeling voor beide apps
## Fase 3 - Het bouwrecept
@@ -160,18 +164,27 @@ Niets hiervan is op een laptop te doen. Eigenaar van deze hele fase: **gebruiker
`quota-manager` en `db`, met `db` op healthy en de app-proxy op 3851. De lokale images waren vooraf
weggehaald, dus de pull uit het register is echt gedaan en het hele pad is bewezen: broncode →
bouwrecept → register → gepinde digest → installatie
- [ ] **Gecontroleerd of het databaseschema zichzelf aanmaakt.** Niet uitgezocht, en dit is de eerste
plek waar het misgaat als het antwoord nee is. Kijk in de logs van de relay-container
- [ ] Trezor Suite naar `<umbrel>:3851` laten wijzen en een label synchroniseren. **Dit is de enige
controle die telt**, en hij kan mislukken op de eigenaarsregistratie zonder dat er iets mis is met het
pakket
- [ ] De app gestopt en gestart, en de database heeft het overleefd
- [ ] Gecontroleerd dat het toevoegen van deze app Electrum Gate niet raakt
- [x] **De schemavraag is vervallen (28-08-2026):** de kale relay maakt zijn SQLite bij de start zelf aan,
en de Postgres waar deze vraag over ging zit niet meer in de app
- [x] **Trezor Suite synchroniseert (28-08-2026), heen én terug.** Niet naar 3851 zoals hier stond maar naar
3852: de poorten zijn omgedraaid, want 3851 draagt nu de statuspagina. Zie de "Volgende stap"
hierboven
- [ ] De app gestopt en gestart, en de data heeft het overleefd. **Nog niet gedaan**, en het is de laatste
controle van dit plan die er echt toe doet: de allowlist en de labels staan onder
`${APP_DATA_DIR}/data/relay`, dus een herstart hoort niets te kosten. **Eigenaar: gebruiker**
- [x] **Gecontroleerd of het toevoegen van deze app Electrum Gate raakt (28-08-2026), en dat deed het.**
Niet zoals verwacht via poorten of geheugen, maar via een naam: beide apps hadden een service `agent`
op hetzelfde Docker-netwerk, en Docker verdeelde de naam over allebei. De pagina van Gate ging daardoor
stuk. Gerepareerd in beide apps, met een toets in `test_appstore_vorm.py` zodat het niet stil
terugkomt
## Geblokkeerd / wacht op
- [ ] **Hoe registreer je een eigenaar bij de quota-manager?** Zonder antwoord kan er niet gesynchroniseerd
worden, ook al draait alles. Wacht op **Proefopstelling** fase 1; begin bij `bruno-collection/` in de
bovenstroomse repo
- [ ] **Accepteert Trezor Suite dit adres, en in welke vorm?** Wacht op **Proefopstelling**, "Volgende
stap". Als het antwoord nee is, is dit pakket zonder waarde
**Leeg sinds 28-08-2026.** Beide blokkades zijn opgeheven en ze staan hier voor de geschiedenis.
- [x] **"Hoe registreer je een eigenaar bij de quota-manager?"** is vervallen: de quota-manager zit niet
meer in de app, en de kale relay kent geen limietentabel. De vraag bestond alleen bij het pakket van
Trezor
- [x] **"Accepteert Trezor Suite dit adres, en in welke vorm?"** is beantwoord: ja, met `http(s)://` en
desgewenst een pad, zowel via het dev-utils-veld als via de gewone "Custom server"-instelling. Gemeten
op de desktop, heen en terug