diff --git a/Docs/CHANGELOG-electrum-gate.md b/Docs/CHANGELOG-electrum-gate.md index 231645a..4ab9f03 100644 --- a/Docs/CHANGELOG-electrum-gate.md +++ b/Docs/CHANGELOG-electrum-gate.md @@ -8,6 +8,33 @@ Wat er nog moet gebeuren staat **niet** hier maar in de plannen; zie [CONTINUE_H Een lijst met geplande features op twee plekken loopt uit elkaar, en dan is geen van beide meer te vertrouwen. +## [0.0.28] - 2026-09-04 + +### Removed + +- **De widget met de blokhoogte is eruit, op verzoek van de gebruiker.** Reden: het is niet aan deze + app om die informatie te tonen. Deze app is een TLS-voordeur op een Electrum-server; wat de keten + doet, staat in elke wallet en elke block explorer die de gebruiker al heeft. Wat er overblijft zijn + vier widgets die alle vier over deze gateway gaan: waar het verkeer heen gaat, of dat antwoordt en + hoe snel, hoe lang het certificaat nog goed is, en of de voordeur zelf staat. + + Drie dingen liften mee, en die zijn geen opschoning maar noodzaak: + + - **de leeftijd van de meting stond onder de blokhoogte** als "as of ... ago" en was daarmee de + laatste plek op de pagina waar stond hoe oud de gegevens zijn. Twee eerdere versies haalden de + voetregel (0.0.10-tijd, 19-08-2026) en de badge (20-08-2026) weg met precies dat argument: het + staat al onder de blokhoogte. De regel is dus meeverhuisd naar de reactietijd, dezelfde meting uit + dezelfde ronde. Hij staat daar ná de sparkline, zodat de vier onderregels op één lijn blijven; + - **de bovenste rij is een raster van vier geworden** in plaats van vijf. De breekpunten zijn + daarmee 1100 en 560 pixels, en op elke stap staan er nu volle rijen. De derde stap die bepaalde + wélke widget alleen kwam te staan is vervallen: vier deelt door twee; + - **de agent neemt de blokhoogte niet meer over uit het antwoord.** Het verzoek zelf blijft + `blockchain.headers.subscribe`, want dat is het goedkoopste verzoek waar een geldig antwoord op + komt en de reactietijd wordt eruit gemeten. Wat er van het antwoord gebruikt wordt is dat het er + is en dat het te ontleden valt. Ook `num()` in de pagina is weg, de functie die een getal met + spaties per duizend afbrak: de blokhoogte was de enige waarde die groot genoeg was om dat te + vragen. + ## [0.0.27] - 2026-08-31 ### Fixed diff --git a/Docs/CONTINUE_HERE.md b/Docs/CONTINUE_HERE.md index 6be2d87..3df1f40 100644 --- a/Docs/CONTINUE_HERE.md +++ b/Docs/CONTINUE_HERE.md @@ -31,7 +31,7 @@ |-|-|-|-| | [Umbrelapp](Plannen/Actief/008-Umbrelapp/TAKEN.md) | Relay | **0.5.4 staat klaar (31-08-2026): de statuswidget staat rechts en heet Status, gelijk aan Electrum Gate.** Daarvóór 0.5.3 (31-08-2026): "Running" weer in de accentkleur en op een telefoon terug naar de vlakke stand.** Daarvóór 0.5.2 (31-08-2026): de opfrisbeurt uit het gedeelde designsysteem** (accentgloed, doorschijnende kaarten met randlicht en schaduw, één hoek voor elk buitenste kader, het volle accentpalet met oranje als stand). Alleen de pagina, dus geen nieuwe image. **Nog nakijken op het apparaat, en dat is een blik.** Daarvóór stond er: **0.5.1 staat klaar en de pagina is af op de lijst van de gebruiker (30-08-2026):** tijdvenster van twee minuten met de teller in het relay-proces, labels op een eigenaar-id, geblokkeerd en geweigerd in één kader, maatvoering gelijk aan Electrum Gate. De image is dezelfde dag op de Umbrel gebouwd, geduwd en gepind. **Volgende stap is van de gebruiker en is een blik, geen sessie:** verversen, updaten, en dan de drie dingen nakijken die alleen het apparaat kan zeggen (teller met de pagina dicht, label na een herstart, het adres achter de app-proxy). Wat daarna nog open is: data per eigenaar wissen, en een `package-lock.json`. **Het pinnen van `python:3-alpine` en `nginx:alpine` is bewust géén werk meer hier** en wacht op Eigenimage; zie [KNOWLEDGE.md](KNOWLEDGE.md) | 🔶 | | [Proefopstelling](Plannen/Actief/007-Proefopstelling/TAKEN.md) | Relay | **Volledig ingehaald op 28-08-2026 en klaar voor het archief.** Beide vragen die het nog bezat zijn beantwoord door **Umbrelapp**: Trezor Suite accepteert een eigen relay, en een eigenaar registreren is niet meer nodig sinds de quota-manager eruit is. Wat er in fase 2 en 3 stond gaat over een pakket dat niet meer bestaat. **Eén beslissing van de gebruiker: opheffen of laten staan** | 🔶 | -| [Webinterface](Plannen/Actief/005-Webinterface/TAKEN.md) | Gate | **0.0.27 (31-08-2026): de statuskaart loog vijf minuten na elke herstart.** De agent mat vóórdat nginx luisterde (die start ná de agent) en herhaalde pas na vijf minuten; nu slaat de eerste ronde over en wordt een mislukking binnen een minuut herhaald. Daarvóór 0.0.26 (31-08-2026): "Running" weer in de accentkleur en op een telefoon terug naar de vlakke stand.** Daarvóór 0.0.25 (31-08-2026): dezelfde opfrisbeurt als de Relay**, uit het gedeelde designsysteem, plus een reparatie die daarbij aan het licht kwam: `prefers-reduced-motion` zette per ongeluk de hele opmaak plat, omdat die wens met `prefers-reduced-transparency` in één media-query stond. **Nog nakijken op het apparaat.** Daarvóór: **De pagina is af en goedgekeurd, op een breed scherm én op een telefoon (27-08-2026).** Op 28-08-2026 kapotgegaan door de tweede app en gerepareerd in 0.0.23. In 0.0.24 (30-08-2026) is de statuswidget van "Answering" naar "Running" gegaan en is er een menu-item "About this app" bij gekomen; dat kwam uit het werk aan Evolu Relay, waar de gebruiker de twee pagina's naast elkaar zag. **Nog nakijken op het apparaat, en dat is een blik en geen sessie.** Wat er verder staat wacht op tijd (het activiteitenlog een etmaal laten lopen) of is een beslissing van de gebruiker (waar Nginx Proxy Manager zijn certificaten neerzet, en of Zoraxy een harde afhankelijkheid wordt) | 🔶 | +| [Webinterface](Plannen/Actief/005-Webinterface/TAKEN.md) | Gate | **0.0.28 (04-09-2026): de widget met de blokhoogte is eruit,** op verzoek van de gebruiker: het is niet aan deze app om die informatie te tonen. Vier widgets over, alle vier over deze gateway. De leeftijd van de meting verhuisde mee naar de reactietijd. **Nog nakijken op het apparaat, en dat is een blik.** Daarvóór 0.0.27 (31-08-2026): de statuskaart loog vijf minuten na elke herstart.** De agent mat vóórdat nginx luisterde (die start ná de agent) en herhaalde pas na vijf minuten; nu slaat de eerste ronde over en wordt een mislukking binnen een minuut herhaald. Daarvóór 0.0.26 (31-08-2026): "Running" weer in de accentkleur en op een telefoon terug naar de vlakke stand.** Daarvóór 0.0.25 (31-08-2026): dezelfde opfrisbeurt als de Relay**, uit het gedeelde designsysteem, plus een reparatie die daarbij aan het licht kwam: `prefers-reduced-motion` zette per ongeluk de hele opmaak plat, omdat die wens met `prefers-reduced-transparency` in één media-query stond. **Nog nakijken op het apparaat.** Daarvóór: **De pagina is af en goedgekeurd, op een breed scherm én op een telefoon (27-08-2026).** Op 28-08-2026 kapotgegaan door de tweede app en gerepareerd in 0.0.23. In 0.0.24 (30-08-2026) is de statuswidget van "Answering" naar "Running" gegaan en is er een menu-item "About this app" bij gekomen; dat kwam uit het werk aan Evolu Relay, waar de gebruiker de twee pagina's naast elkaar zag. **Nog nakijken op het apparaat, en dat is een blik en geen sessie.** Wat er verder staat wacht op tijd (het activiteitenlog een etmaal laten lopen) of is een beslissing van de gebruiker (waar Nginx Proxy Manager zijn certificaten neerzet, en of Zoraxy een harde afhankelijkheid wordt) | 🔶 | | [Appstore](Plannen/Actief/010-Appstore/TAKEN.md) | Gate | De repo `ElectrumTLS` weghalen op de Git-server; daar staat het domein nog in de historie. **De omschakeling naar Fulcrum is op 27-08-2026 gelukt zonder aanpassing**, dus daarvan is alleen de herstartcontrole nog over, en die komt vanzelf bij de eerstvolgende herstart | 🔶 | ## C - Wacht op afhankelijkheid diff --git a/Docs/Plannen/Actief/005-Webinterface/PROGRESS.md b/Docs/Plannen/Actief/005-Webinterface/PROGRESS.md index ae15215..5ea295e 100644 --- a/Docs/Plannen/Actief/005-Webinterface/PROGRESS.md +++ b/Docs/Plannen/Actief/005-Webinterface/PROGRESS.md @@ -1,5 +1,20 @@ # Voortgang - Webinterface +## 04-09-2026 - de blokhoogte was niet van deze app + +Opdracht van de gebruiker: de widget met de blokhoogte helemaal weg, want het is niet aan deze app om die +informatie te tonen. Dat is ook zo: dit is een voordeur op een Electrum-server, en de keten staat in elke +wallet die de gebruiker al heeft. Vier widgets over, alle vier over deze gateway. Versie 0.0.28. + +Wat er niet in de opdracht stond maar er wel bij hoort: de leeftijd van de meting stond onder de blokhoogte +en was daarmee de laatste plek waar de pagina zei hoe oud zijn gegevens zijn. De voetregel en de badge die +hetzelfde zeiden zijn in augustus weggehaald met precies dat argument. Die regel staat nu onder de +reactietijd, ná de sparkline zodat de vier onderregels op één lijn blijven. + +De rij is een raster van vier geworden met breekpunten op 1100 en 560 pixels: vier deelt door twee, dus de +stap die bepaalde wélke widget alleen kwam te staan is vervallen. In de agent is de hoogte uit het antwoord +gehaald, maar het verzoek niet: daar wordt de reactietijd uit gemeten. + ## 30-08-2026 - wat de buur duidelijker deed, is hier overgenomen Geen gepland werk aan dit plan. Bij het verbouwen van de pagina van Evolu Relay zag de gebruiker de twee diff --git a/Docs/Plannen/Actief/005-Webinterface/TAKEN.md b/Docs/Plannen/Actief/005-Webinterface/TAKEN.md index 836cf41..eacdc24 100644 --- a/Docs/Plannen/Actief/005-Webinterface/TAKEN.md +++ b/Docs/Plannen/Actief/005-Webinterface/TAKEN.md @@ -28,6 +28,12 @@ ## Volgende stap +- [x] **De widget met de blokhoogte weggehaald (04-09-2026, 0.0.28).** Op verzoek van de gebruiker: het + is niet aan deze app om die informatie te tonen. Vier widgets over, alle vier over deze gateway. + De leeftijd van de meting is meeverhuisd naar de reactietijd, want die stond onder de blokhoogte + en was de laatste plek op de pagina waar stond hoe oud de gegevens zijn; twee eerdere versies + haalden de voetregel en de badge weg met precies dat argument. De agent neemt de hoogte niet meer + over; het verzoek blijft `headers.subscribe`, want daar wordt de reactietijd uit gemeten. - [x] **De opfrisbeurt uit het gedeelde designsysteem (31-08-2026, 0.0.25).** Accentgloed achter de pagina, doorschijnende kaarten met randlicht en schaduw, en één hoek voor elk buitenste kader (28 naar 20 pixels). Het volle accentpalet staat erin, met oranje als stand; er komt bewust geen diff --git a/whatsnext-electrum-gate/agent.py.template b/whatsnext-electrum-gate/agent.py.template index ae6bd95..89d1254 100644 --- a/whatsnext-electrum-gate/agent.py.template +++ b/whatsnext-electrum-gate/agent.py.template @@ -630,10 +630,16 @@ def apply_certificate(cert): # --- De backend bevragen ---------------------------------------------------- def probe_backend(): - """Blokhoogte en reactietijd van de Electrum-server. + """Reactietijd van de Electrum-server, en of hij antwoordt. Eén verzoek over een verse verbinding. Het Electrum-protocol is JSON-RPC met een regeleinde eraan, dus dit is een socket en niets meer. + + De methode is nog steeds headers.subscribe: het is het goedkoopste + verzoek waar een geldig antwoord op komt. De blokhoogte die erin staat + wordt sinds 0.0.28 niet meer overgenomen, want het is niet aan deze app + om die te tonen. Wat we van het antwoord gebruiken is dat het er is en + dat het te ontleden valt. """ result = {"address": ELECTRUM_HOST + ":" + str(ELECTRUM_PORT), "reachable": False} result["name"] = BACKEND_NAMES.get(ELECTRUM_HOST) @@ -662,12 +668,9 @@ def probe_backend(): break elapsed = (time.monotonic() - start) * 1000.0 line = b"".join(chunks).split(b"\n", 1)[0] - answer = json.loads(line.decode("utf-8")) - height = (answer.get("result") or {}).get("height") + json.loads(line.decode("utf-8")) result["reachable"] = True result["response_ms"] = int(round(elapsed)) - if isinstance(height, int): - result["height"] = height except Exception as e: # noqa: BLE001 - elke fout betekent hetzelfde voor # de pagina: de backend antwoordde niet. result["error"] = str(e) diff --git a/whatsnext-electrum-gate/index.html.template b/whatsnext-electrum-gate/index.html.template index 63780d0..eb9b432 100644 --- a/whatsnext-electrum-gate/index.html.template +++ b/whatsnext-electrum-gate/index.html.template @@ -250,7 +250,7 @@ body { .grid > .card { display: flex; flex-direction: column; } /* Hier stonden ook .col-5 en .col-7, met een mediaregel die ze onder 1100px vol breed maakte. Sinds de tweede indeling (27-08-2026) is er geen rij meer die in - tweeën valt: de bovenste rij heeft zijn eigen raster van vijf, en het log en het + tweeën valt: de bovenste rij heeft zijn eigen raster van vier, en het log en het instelkader zijn allebei vol breed. Weggehaald in plaats van laten staan, want ongebruikte klassen nodigen uit tot een indeling die er niet meer is. */ .col-full { grid-column: 1 / -1; } @@ -336,32 +336,32 @@ body { .card-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.1rem; } /* ── De bovenste rij ──────────────────────────────────────────────────────── - Vijf gelijke widgets (27-08-2026). Hier stond een raster van drie tegels waarvan - de reactietijd er twee nam, naast een kader met lijstregels; dat vroeg twee - kunstjes die nu weg zijn, namelijk meerekken met de hoogte van de buur en een - dubbele kolom voor de sparkline. + Vier gelijke widgets (27-08-2026, sinds 0.0.28 vier in plaats van vijf). Hier + stond een raster van drie tegels waarvan de reactietijd er twee nam, naast een + kader met lijstregels; dat vroeg twee kunstjes die nu weg zijn, namelijk + meerekken met de hoogte van de buur en een dubbele kolom voor de sparkline. - Een eigen raster en geen deling van de twaalf kolommen hierboven, want vijf - past daar niet in. Dat is nieuw op deze pagina: elke andere rij viel in tweeën. + Een eigen raster en geen deling van de twaalf kolommen hierboven. Met vier zou + dat kunnen (drie kolommen elk), maar de rij houdt zijn eigen breekpunten: de + twaalf kolommen breken bij andere breedtes dan waar een widget te smal wordt. - Wat er bij het versmallen gebeurt, is daarom expliciet en niet aan auto-fit - overgelaten. Met vijf items levert elke stap een ongelijke laatste rij op, en - dan wil je zelf bepalen wélke widget alleen komt te staan. Dat is steeds de - laatste, de zelfcontrole, en die is als enige begrijpelijk zonder buur. */ + Wat er bij het versmallen gebeurt, is expliciet en niet aan auto-fit + overgelaten. Vier deelt door twee, dus elke stap levert nu volle rijen op; met + vijf stond hier een derde stap om te bepalen wélke widget alleen kwam te staan. + Die is vervallen. */ .row1 { grid-column: 1 / -1; display: grid; - grid-template-columns: repeat(5, 1fr); + grid-template-columns: repeat(4, 1fr); gap: 1.5rem; } -/* Onder deze breedte wordt een widget van een vijfde te smal voor "Wrong - certificate" of een blokhoogte met scheidingstekens. Drie plus twee. */ -@media (max-width: 1400px) { .row1 { grid-template-columns: repeat(3, 1fr); } } -@media (max-width: 900px) { .row1 { grid-template-columns: repeat(2, 1fr); } } +/* Onder deze breedte wordt een widget van een kwart te smal voor "Wrong + certificate". Twee plus twee, en dus geen losse widget onderaan. */ +@media (max-width: 1100px) { .row1 { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 560px) { .row1 { grid-template-columns: 1fr; } } -/* De widgets zetten hun waarde onderaan, zodat de vijf getallen op één lijn - staan ook als de ene titel over twee regels valt en de andere niet. +/* De widgets zetten hun waarde onderaan, zodat de getallen op één lijn staan ook + als de ene titel over twee regels valt en de andere niet. De min-height is er op verzoek van de gebruiker (27-08-2026): zonder die maat bepaalt de hoogste widget de rij, en dat leverde vijf krappe blokjes op waarin @@ -382,14 +382,15 @@ body { op 20-08-2026 op zijn telefoon zag. Met min(420px, 100%) mag de track krimpen tot de schermbreedte. */ .clients { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr)); gap: 1.2rem 2.4rem; } -/* Eén maat voor alle vijf de widgets (27-08-2026). Hier stonden er drie: 1,9rem - voor een getal, 1,5rem voor "unknown" en 1,3rem voor een woord. Op de rij naast - elkaar viel dat op, en terecht: "964 307" oogde groter dan "Fulcrum" ernaast, - terwijl het even belangrijk is. +/* Eén maat voor alle widgets (27-08-2026). Hier stonden er drie: 1,9rem voor een + getal, 1,5rem voor "unknown" en 1,3rem voor een woord. Op de rij naast elkaar + viel dat op, en terecht: "964 307" oogde groter dan "Fulcrum" ernaast, terwijl + het even belangrijk is. - 1,55rem is de maat waarop allebei werkt. Groter en "Wrong certificate" loopt op - een vijfde van de breedte over drie regels; kleiner en een blokhoogte verliest - het gewicht dat hem het eerste maakt waar je naar kijkt. */ + 1,55rem is de maat waarop een getal en een woord allebei werken. Groter en + "Wrong certificate" loopt op een kwart van de breedte over drie regels; kleiner + en "7 ms" verliest het gewicht dat een waarde het eerste maakt waar je naar + kijkt. */ .stat-val { font-size: 1.55rem; font-weight: 700; letter-spacing: -0.025em; font-variant-numeric: tabular-nums; line-height: 1.2; } /* Alleen de kleur, geen eigen maat meer: onbekend is een andere toestand van dezelfde waarde en hoort niet ook nog van formaat te verschillen. */ @@ -933,15 +934,16 @@ body { schermen stapelt hij precies zo. -->