Negen punten uit echt gebruik met 0.4.0, alle negen gedaan. Twee ervan waren onderzoeksvragen en die staan onderaan. Evolu Relay 0.5.0 - Een tijdvenster van twee minuten voor nieuwe eigenaars, met een stopknop. De teller zit in het relay-proces en niet in de pagina: een teller in een tabblad dat je sluit, sluit de deur niet. policy.js kreeg learningUntil, isLearningOpen en expireLearning. - decideOwner kijkt naar isLearningOpen en niet naar het veld learning. De lus die een verlopen venster opruimt loopt elke twee seconden, en in dat gat zou een onbekende alsnog binnenkomen. - Zonder STATE_VERSION te verhogen, met een toets die dat verdedigt: een verhoging zou de allowlist van de draaiende installatie laten afwijzen en de deur sluiten voor eigenaars die er al in stonden. - Labels op een eigenaar-id, in een eigen labels.json met de agent als enige schrijver. Een label zegt niets over toegang, dus de relay hoeft het niet te weten; het is daardoor meteen opgeslagen en werkt ook als de relay omligt. - Geblokkeerde en geweigerde eigenaars in een kader, met een badge die zegt welke van de twee het is. De badge staat buiten het hover-blok, anders is dat onderscheid onzichtbaar tenzij je over de regel gaat. - Maatvoering gelijk aan Electrum Gate: 1760px, hetzelfde raster, icoon van 64 pixels, dezelfde kop, versienummer erachter. Uitleg uit de kaders, knoppen pas bij hover, geen voetregel. Electrum Gate 0.0.24 - Menu-item "About this app", in beide apps. - De statuswidget zei "Answering" met "answered in 7 ms, from inside the app" en zegt nu "Running" met de meting eronder. De nuance dat de controle van container naar container loopt is verplaatst naar een eigen kopje in die dialoog, waar er ruimte voor is; vier woorden waren te weinig. Toetsen en gereedschap - tests/test_relay_agent.py (nieuw, 65 toetsen) en tests/test_paginas_parsen.mjs (nieuw). Muteertests gedraaid op de beslissende regels. - Een dollarteken-toets in test_appstore_vorm.py. Het commentaar in drie bestanden beweerde al dat die test bestond; nu is dat waar. - Een toets dat er geen werkbestanden in een app-map staan. umbreld kopieert de hele map naar het apparaat en in de back-up. - tools/voorbeeldpagina.mjs maakt van een *.template een pagina die je in een browser kunt openen. Dat vond meteen twee echte opmaakfouten. De twee onderzoeksvragen - Een geweigerde eigenaar komt niet in de database: isOwnerAllowed zit in de WebSocket-upgrade, dus het is een 401 en een gesloten socket. Het gewenste gevolg treedt wel op, via de client: die is local-first en levert bij toelating de hele geschiedenis. Blokkeren werkt daarentegen pas bij de volgende verbinding, en dat staat als open punt. - De blobs zijn niet met een xpub te ontcijferen; een OwnerId komt daar niet uit. Met de SLIP-21-node van het apparaat kan het wel, maar die geeft volledige zeggenschap, dus dat hoort niet in een relay. Als plan-punt opgenomen bij de tool in HomeGit/Trezor. Nog niet uitgerold: de image 0.5.0 moet gebouwd en geduwd worden. De digest staat daarom niet in de compose, want een oude digest onder een nieuwe tag levert stil de oude relay. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
23 KiB
Taken - Webinterface
Prioriteit: B | Wacht op: –
Van A naar B op 27-08-2026, na fase 6. De pagina is af en goedgekeurd door de gebruiker, op een breed scherm én op een telefoon: "helemaal zoals ik het gewild heb". Wat er nog staat is niet te plannen (een etmaal wachten op het log) of het is een beslissing van de gebruiker (Nginx Proxy Manager, Zoraxy als harde afhankelijkheid). Er is niets meer dat een sessie zelf kan oppakken, en dat is precies wat tier B betekent.
Eigenimage is dezelfde dag gepromoveerd naar
Actief/en heeft tier A overgenomen, zoals de gebruiker op 27-08-2026 besloot. Beantwoord daar eerst open punt 1: blijft het Gitea-register ook bij publicatie de bron. Dit plan houdt zijn nummer 005; alleen het gepromoveerde plan kreeg een nieuw tussennummer.Bij het opruimen op 27-08-2026 zijn zes vinkjes rechtgezet die door de gebeurtenissen ingehaald waren: open punt 5, fase 5, "draaien op de Umbrel", "verifiëren tegen een echte status.json", en het nakijken van de eerste indeling op een breed scherm, een indeling die niet meer bestaat.
Van C naar B naar A op 20-08-2026, op één dag. Eerst verviel de blokkade "de app geïnstalleerd en de agent draaiend". Aan het eind van die dag is dit het enige plan met werk dat nú te doen is: Appstore heeft alleen nog een herstart nodig die niet te plannen is, en Publicatie wacht op een publieke repo. Het nummer is daarom van 020 naar 005 gegaan; alleen dit plan kreeg een nieuw nummer, Appstore houdt 010.
Afgezakt van A naar C op 19-08-2026 bij het afsluiten van de sessie. De pagina is af voor zover dat zonder de Umbrel kan; al het resterende werk in dit plan begint met kijken of de agent doet wat hij zou moeten doen, en dat kan niet vóór de installatie.
Volgende stap
-
De statuswidget verduidelijkt en een dialoog "About this app" toegevoegd (30-08-2026, 0.0.24). Dit kwam niet uit dit plan maar uit het werk aan Evolu Relay: de gebruiker zag de twee pagina's naast elkaar en meldde dat de tegel "Answering / answered in 7 ms, from inside the app" onduidelijk is terwijl "Running" bij de relay meteen leest.
Dat was op twee losse punten terecht. "Answering" is een tegenwoordig deelwoord en leest als een handeling die bezig is, niet als een toestand, en "Checking" ernaast is er wél een. En "from inside the app" probeerde in vier woorden de nuance te dragen dat deze controle van container naar container loopt en dus niets zegt over de router; vier woorden zijn daar te weinig voor. Nu: "Running", met "the TLS port answered in 7 ms" eronder. **De nuance is verplaatst en niet weggelaten**, naar een eigen kopje in de nieuwe dialoog. Dat kopje is dus geen sier: haal je het weg, dan staat die bewering nergens meer. -
0.0.24 op het apparaat nakijken. Eigenaar: gebruiker. Alleen de dialoog en de widgettekst zijn gewijzigd, dus het is een blik en geen sessie: opent het menu-item, staat er "Running", en klopt het versienummer in de kop
-
0.0.10 op een telefoon nagekeken. In orde (20-08-2026). De gebruiker meldt dat het er goed uitziet op mobiel. Eén ding kwam eruit: de kopieerknoppen stonden niet op één lijn, omdat de knop door het omvouwen de lengte van het adres volgde. Verholpen in 0.0.11 met
margin-left: autoop de knop. Bijvangst:0.0.10na0.0.9levert wél een update op, dus tweecijferige versiedelen zijn veilig -
De agent zien draaien. Gelukt op 20-08-2026, over drie versies. De agent start en luistert, de pagina laadt, hij vond veertien certificaten in
/certs/zoraxyen weigerde daarom te kiezen, een keuze op de pagina werd aangenomen, en daarna verbindt een wallet over 50022. De keten waar dit plan op wachtte is dus rond. -
Vervallen op verzoek van de gebruiker (27-08-2026): "de cert test met verkeerde key geloof ik wel." Dit was het uploaden op het niet-gelukkige pad met een sleutel die niet bij het certificaat hoort. De guard zelf is met echte sleutelparen getoetst én mutatie-getest, dus wat hier ongezien blijft is alleen de weg van de melding naar de pagina. Dat is een bewuste keuze en geen vergetelheid: valt het ooit tegen, dan zit het in
accept_uploadnaarup-noteen nergens anders -
0.0.7 en 0.0.9 in de browser nagekeken. Gelukt (20-08-2026): uploaden werkt, kiezen werkt, ook met de certificaten uit Zoraxy, de keuzelijst bij het installeren zag er goed uit en het versienummer op de pagina klopt. Daarmee is het uploadpad uit 0.0.7 bewezen op het gelukkige pad
-
0.0.6 in de browser nagekeken (20-08-2026). Ziet er goed uit volgens de gebruiker. Wat eruit kwam: de badges konden weg, "your choice" zei niets, Trezor Suite is niet desktop-only, en Blockstream Green heet Blockstream
-
De pagina naast een werkende app gelegd (20-08-2026). Blokhoogte en backend-reactietijd komen binnen. Wat eruit kwam: van een verbonden wallet was niets te zien, de keuzelijst was te druk, en een reeks uitleg-teksten kon weg. Alles verwerkt in 0.0.6
-
Het activiteitenlog een etmaal laten lopen en dan kijken of het klopt: komt er een
connected-regel bij een nieuwe wallet, en wat staat er na een nacht in. De teller is nieuw en is alleen tegen tijdelijke bestanden getoetst, niet tegen een echte wallet. Loopt sinds 27-08-2026 bij de gebruiker; hij kijkt er na een etmaal naar. Eigenaar: gebruiker -
Fase 6, de tweede indeling, gebouwd in 0.0.17 (27-08-2026). Alles uit de opdracht zit erin; wat er nog staat is het nakijken in een browser, en dat is de helft van de verificatie bij een verbouwing van deze omvang. Zie de fase zelf voor wat er per punt gedaan is
Daarna, en niet eerder:
- Uitzoeken waar Nginx Proxy Manager op umbrelOS zijn certificaten neerzet. De mount staat
uitgecommentarieerd in
docker-compose.yml: een gok invullen zou Docker een lege maphierarchie laten aanmaken in de app-data van een app die er misschien niet eens is - Open punt 5: gebouwd in 0.0.16 en bevestigd op het apparaat (27-08-2026). Zie fase 6 voor wat de controle wel en niet bewijst
- Open punt 6: een certificaat uploaden via de pagina. Gebouwd in 0.0.7 (20-08-2026). Beschrijfbare
mount voor de agent, een eigen nginx-locatie met een grotere limiet, en validatie met
load_cert_chainvoordat er iets geplaatst wordt. De bestandsnaam komt uit het certificaat zelf, dus padtrucs kunnen niet. Nog niet in een browser geprobeerd - Open punt 7: beslissen of Zoraxy een harde afhankelijkheid wordt. "Zoraxy of NPM" kan niet, en dat is op 20-08-2026 in de bron nagetrokken; alleen de wens staat nog open. Zie OPEN.md punt 7
- Fase 5, het activiteitenlog: gebouwd en uitgerold in 0.0.6, verfijnd in 0.0.14. Zie de fase zelf
De drie controles op openssl, nc en de WebDAV-module zijn vervallen met de komst van de agent: die
doet dat werk zelf met de standaardbibliotheek. Zie PLAN.md §4a0.
Hier stonden nog twee regels die naar fase 2 en fase 5 vooruitwezen. Allebei vervallen op 27-08-2026 bij het opruimen: die fasen zijn af, en een vooruitwijzing naar afgerond werk leest als openstaand werk.
Fase 1 - Het liegen eruit
- De verzonnen statusblokken (
Online,Online) en het verzonnen logvenster weg - Het hardgecodeerde domein weg. De pagina bevat geen enkele installatiespecifieke waarde meer
- Taal naar Engels, zie OPEN.md punt 2
- Opnieuw opgebouwd op het design-systeem: tokens,
card,badge,alert,list-item,btn, donker met een lichte variant en een schakelaar - De pagina verhuisd naar
index.html.templatein de app-root. Onderweb/zou elke latere wijziging een herinstallatie kosten: umbreld ververst bij een update alleen een whitelist en die kijkt niet in submappen. Als template zit hij in de whitelist én wordt hij bij elke start ingevuld
Fase 2 - De agent schrijft status.json
Herzien 19-08-2026: dit is een tweede container met een python-programma geworden in plaats van een shell-lus in de compose. Onderbouwing in PLAN.md §4a0.
agent.py.template, met de instellingen uit de omgeving in plaats van uit template-invulling. Daardoor staat er geen accolade-variabele in en blijft het geldige Python, dus is het te importeren in een test. De eerste toets intests/controleert precies die aanname- Schrijft
status.jsonatomair via een tijdelijk bestand enos.replace, want de pagina leest het elke minuut en een half geschreven bestand geeft een lege pagina - Einddatum van het certificaat met een eigen DER-lezer. Getoetst tegen
sslop 74 echte CA-certificaten, op een levend servercertificaat, en op beide tijdvormen - Blokhoogte en reactietijd via
blockchain.headers.subscribeover een verse socket - Een
history-reeks bijhouden, afgekapt op 24 uur, met alléén de reactietijd. De sparkline is sinds 19-08-2026 de enige afnemer - Herkennen welke backend het is aan de hand van het adres, en
unknownals hij niet in de tabel staat. Zie PLAN.md §4c: liever minder informatief dan onwaar - De lus valt nooit stil: een mislukte ronde wordt gelogd en overgeslagen. Stoppen zou de pagina op oude gegevens bevriezen, en dat is precies het liegen dat dit plan moest afschaffen
- Draait op de Umbrel sinds 20-08-2026. Deze regel stond er nog van vóór de installatie
Fase 3 - De pagina vult zichzelf
fetchopstatus.json, elke minuut- Elk veld heeft een zichtbare onbekend-toestand; nooit een leeg veld, want dat leest als "in orde"
- "Laatst bijgewerkt" tonen, en oude gegevens als zodanig laten zien zodra ze ouder zijn dan twee schrijfronden. Bijgesteld 19-08-2026 op verzoek van de gebruiker: dat gebeurt niet meer met een melding bovenaan de pagina maar alleen bij de waarden zelf, want die melding zei voor de vierde keer wat er al onder de blokhoogte, in de badge bij de Electrum-server en in de voettekst stond
- Leesbare melding als het bestand ontbreekt, zonder dat het op een fout lijkt. Zie OPEN.md punt 1
- Geverifieerd tegen een échte
status.jsonsinds de app draait (20-08-2026), en sindsdien bij elke release opnieuw
Fase 4a - De indeling
Vastgesteld door de gebruiker op 19-08-2026 na het bekijken van de eerste versie. Ontwerp in PLAN.md §4a1.
- Volgorde: Electrum-server, drie statustegels, activiteitenlog, certificaatkeuze, instellen van je wallet
- "Point your wallet here" opgegaan in "Setting up your wallet"; het waren dezelfde kaders
- Breed met een raster van twaalf kolommen, rijen die 5/7 en 7/5 afwisselen, afgekapt op 1760px
- De leesvolgorde in de HTML is de bedoelde volgorde, zonder
orderin de CSS, zodat stapelen op een smal scherm dezelfde volgorde geeft. Gecontroleerd op 1760px en op mobiel - Statustegels rekken mee met de hoogte van hun buur, anders staat er een gat rechtsboven
- Het logblok scrollt zelf horizontaal in plaats van de regel met puntjes af te kappen
- Alle kaders hetzelfde opgebouwd (19-08-2026): een
card-headmet een titel int-h3, dan de inhoud. De drie statustegels hadden een eigen kleine grijze kop in kapitalen. De titel gebruikt de token--text-primary, niet letterlijk wit, anders is hij onzichtbaar in de lichte variant - De onderregel van een statustegel is even hoog als de sparkline, zodat de drie getallen op één lijn staan. Gecontroleerd: koppen op y=153, getallen op y=311
- De badge "Serving this page" verwijderd (19-08-2026, op aanwijzing van de gebruiker). Zie OPEN.md punt 5 voor wat er wél op die plek zou horen
- De voetregel verwijderd (19-08-2026). Daarin stond "Last reading ... ago" plus het versienummer; het eerste stond al bij de waarden zelf
- Het versienummer teruggezet, klein achter de tagline als
v0.0.3. Dezelfde dag op verzoek van de gebruiker. In--text-secen niet in--text-ter, want die laatste is in de lichte variant#bbbbbbop wit en op deze grootte onleesbaar - De certificaatlijst scrollt, met het aantal in de kop. Een gedeelde certificatenmap kan er tientallen bevatten. Gecontroleerd met 19 certificaten: 1062px inhoud in een vak van 360px, knop blijft eronder staan
- Het logblok en het certificaatkader zijn even hoog. Het langste kader van de rij bepaalt de hoogte, en wat mag meegroeien zegt dat zelf met flex. Gemeten: 636px bij vier certificaten, 773px bij negentien, in beide gevallen allebei gelijk
- Certificaat en activiteitenlog omgedraaid (19-08-2026, op verzoek). Certificaat links en smal, log rechts en breed. Dat pakt twee kanten goed uit: de kolomgrens valt nu samen met die van de rij erboven (gemeten: x=738 in beide rijen), en monospace logregels hebben de breedte beter nodig
- Het losse verbindingsadres met kopieerknop eruit, plus het label "tested clients". Zonder verlies: hetzelfde adres staat bij elke clientregel, in de vorm die díe client wil, met een kopieerknop erbij. Het instelkader werd daarmee 533px in plaats van 610px
- Vervallen: deze indeling bestaat niet meer. De regel ging over het nakijken van fase 4a op een breed scherm, en fase 6 heeft die indeling op 27-08-2026 vervangen. Wat er nagekeken is, staat daar
Fase 4 - Bruikbaar in plaats van alleen eerlijk
- Verloopwaarschuwing onder de dertig dagen, en een foutmelding als het certificaat verlopen is
- Kopieerknop op het verbindingsadres, met terugval voor http zonder de clipboard-API
- Verbindingsregels per client, met kopieerknop per regel. Bron:
Referenties/Clients.md§4 - Kopieerknoppen verschijnen bij hover over de regel. Met
opacityen niet metdisplay, zodat ze met de tab-toets bereikbaar blijven, plusfocus-withinen altijd zichtbaar op aanraakschermen - De kopieerknop echt uitproberen achter de app-proxy van umbrelOS. Die draait over http, dus de
terugval met
execCommandis daar het pad dat gebruikt wordt en niet de uitzondering. Wat op 19-08-2026 lokaal wél bewezen is: de faalroute meldt "Press Ctrl+C" in plaats van stil niets te doen. De geslaagde route vraagt een echte muisklik, want de clipboard-API weigert een klik die uit een script komt. Sinds 0.0.17 zijn het er twee in plaats van tien, allebei in het dichtgeklapte instelkader, dus het is één klik om te proberen. Eigenaar: gebruiker
Fase 4b - De certificaatkeuze
Besloten 19-08-2026 door de gebruiker: een keuzelijst op het dashboard in plaats van een sleutel in het configuratiebestand. Het ontwerp hoort bij het plan Configuratie §4e en §4f; hier staat alleen wat de pagina en de compose ervoor doen.
- Keuzelijst op de pagina, met per certificaat de bron, de bestandsnaam, het domein en het aantal resterende dagen. Een verlopen certificaat staat er rood bij en wordt niet verborgen: het bestaat, en het kiezen ervan moet een zichtbare vergissing zijn en geen onvindbare
PUTnaarapi/certificate, doorgestuurd naar de agent. De WebDAV-truc is vervallen: de agent neemt de keuze aan en kan hem ook controleren, wat WebDAV niet kon- De pagina meldt níet zelf dat het gelukt is. Nginx moet het certificaat nog herladen, en dat blijkt
pas uit de volgende
status.json - De Zoraxy-mount van
/certsnaar/certs/zoraxy, en/certs/ownerbij, zodat er per bron een map is. Beide containers hebben ze nodig: de agent om te kiezen, nginx om het bestand te openen certificatesinstatus.json, met per certificaat de bron, de naam, het domein uit het certificaat en de einddatum- De guard: een id die de agent niet zelf gevonden heeft, wordt geweigerd. Zowel bij de
PUTals bij het kiezen. Getest, inclusief de mutatietest - Bij meerdere kandidaten kiest de app niet. Bijgesteld nadat bleek dat mijn eerste versie "de langst geldige" pakte, wat het plan Configuratie §4c uitdrukkelijk verbiedt: een verkeerd certificaat geeft een verbinding die het lijkt te doen en bij de wallet stukloopt op naamverificatie. De pagina toont dan een foutmelding met de kandidaten erin
- De pagina toont bovenaan een foutmelding als er geen certificaat actief is, want dan is er geen TLS en dat is het ergste wat deze app kan overkomen
Fase 5 - Het activiteitenlog
Voorstel, nog niet besloten. Ontwerp in PLAN.md §4e. De kaart staat al op de pagina en toont
no data, zodat de vorm te beoordelen is voordat er iets voor gebouwd wordt.
- Vorm: logregels onder elkaar, monospace, nieuwste bovenaan, met de grens erbij vermeld dat een regel per protocolaanroep niet kan zonder het verkeer van de gebruiker uit te lezen
- Gelukt, precies langs de weg die hier voorgesteld werd (opgemerkt 27-08-2026, het vinkje bleef
staan terwijl het werk gedaan was). Het
command-blok schrijft/var/lib/gate/stream-log.confmet$$ontsnapt, enstream.conf.templatehaalt dat op met eeninclude. Daarmee is hetlog_formatlangs de template-invulling gekomen zonder dat umbreld de dollartekens leegmaakte - Bytes van een lópende verbinding: nog steeds niet, en dat is een bewuste halve oplossing. nginx
logt een stream-sessie pas bij het sluiten, dus een wallet die uren openstaat levert geen regel op.
Wat er in plaats daarvan kwam is een teller uit
/proc/net/tcpin hetcommand-blok: die ziet dat er verbindingen zijn, maar niet hoeveel er doorheen gaat. Voor "is mijn wallet verbonden" is dat genoeg; wie bytes wil, moet iets anders verzinnen loginstatus.json, zonder client-IP en zonder bronpoort. Gebouwd (vinkje bleef staan). De agent leeststream.log, voegt de vorige regels samen en houdt de laatste 200 aan
Fase 6 - De tweede indeling
Opgegeven door de gebruiker op 27-08-2026, na het zien en testen van alles uit de eerste indeling. Ontwerp in PLAN.md §4a2, inclusief de twee besluiten die hier bewust teruggedraaid worden en de eis die deze indeling zelf oproept.
Volgorde: eerst de zelfcontrole, dan de opmaak. Die eerste is het enige echte nieuwe werk en hij levert de vijfde widget; de rest is de pagina verbouwen om wat er dan staat.
-
De zelfcontrole gebouwd in 0.0.16 (27-08-2026). De agent verbindt met poort 50022 van de nginx-container ernaast, maakt de handdruk af en vergelijkt het getoonde certificaat byte voor byte met het gekozen bestand. Die vergelijking is het punt: een herlading die niet aankwam ziet er van buiten goed uit. Vier toestanden in
status.jsonondertls.self_check:off,ok,wrong-certificate,failed. Bij een wijziging komt er een regel in het activiteitenlog**Twee dingen die bij het bouwen anders liepen dan het plan zei.** Ten eerste bewijst de controle de doorverbinding naar de Electrum-server **niet**; zie §4a2 voor waarom dat een bewuste ruil is. Ten tweede bleek elke meting een sessieregel op te leveren, dus er zit nu een rem op (vijf minuten) en een filter die de eigen regels weglaat. Zonder die twee ging het activiteitenlog over onszelf Getest in `tests/test_agent_zelfcontrole.py`, 22 toetsen, met de nadruk op de niet-gelukkige paden: geen certificaat, dichte poort, iets dat luistert maar geen TLS spreekt, en een ander certificaat aan de lijn. Alle vier de beslissende regels zijn mutatie-getest -
Rij 1 is vijf gelijke widgets: Electrum-server, blokhoogte, reactietijd, certificaat, zelfcontrole
-
Een eigen raster van vijf kolommen, met expliciete stappen (5 → 3 → 2 → 1). Niet aan
auto-fitovergelaten: 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, want die is als enige te begrijpen zonder buur -
De Electrum-serverwidget kleiner: de naam als waarde, het adres als onderregel. "Last checked" is eruit, want dat stond al onder de blokhoogte als "as of ... ago"
-
De certificaatwidget toont de dagen tot vernieuwing, met de naam als onderregel. Bij een verlopen certificaat staat er
expiredin het rood, en zonder keuzenoneen nietunknown: er is niets onbekends aan -
Kiezen, uploaden en de details naar een dialoog achter het menu, met het
dialog-element -
De licht/donker-schakelaar het menu in, met de huidige stand als waarde. Het menu toont drie punten en geen hamburger, op aanwijzing van de gebruiker: dat is wat umbrelOS bij zijn eigen apps doet. Als tekst en niet als SVG, zodat hij meeschaalt met de lettergrootte
-
De foutmelding "geen certificaat actief" heeft de knop die de dialoog opent. De harde eis van deze indeling, en hij staat als zodanig in de code
-
Het activiteitenlog over de volle breedte
-
"Setting up your wallet" dichtgeklapt met
details/summary, en compacter -
Twee kopieerknoppen, met de wallets gegroepeerd onder de vorm die ze vragen
-
Opgeruimd wat vervalt: de hoogtekoppeling van log en certificaatkader, het meerekken van de tegels, en
.col-5en.col-7uit de CSS -
Op een breed scherm nagekeken (27-08-2026). Werkt goed volgens de gebruiker, met een lijst bijstellingen die in 0.0.18 verwerkt is: menu zonder knoplook,
Settings…zonder certificaatnaam, dialoog in het midden, hogere widgets met de waarde onderin, reactietijd en blokhoogte omgedraaid, log half zo hoog, en de widget heet nuStatus -
En de widget vond meteen een echte fout.
Not answeringmet[Errno 111] Connection refusedop een werkende gateway:GATE_TLS_HOSTstond op de servicenaamserver, die op een Umbrel met meer apps niet van ons alleen is. Nu de volledige containernaam. Verholpen in 0.0.18 -
De zelfcontrole bevestigd op het apparaat (27-08-2026):
Answering, handdruk in 10 ms. Daarmee is de containernaam-verklaring uit 0.0.18 juist gebleken, en is de keten uit open punt 5 rond: gebouwd, getoond, en gezien dat hij klopt -
Laatste bijstellingen in 0.0.19: de onderregels van de widgets staan onderin hun vak, gelijk met de sparkline ernaast, en de chevron van het instelkader staat links vóór de titel met accent bij hover
-
Op een telefoon nagekeken (27-08-2026). In orde volgens de gebruiker, inclusief de stappen van vijf naar drie naar twee kolommen en de dialoog op een smal scherm
-
Meer diepte en contrast in het lichte thema (0.0.22), overgenomen uit AssetApp: een rand naast de schaduw op de kaders, en een steviger
--border. Dezelfde wijziging is doorgevoerd in het gedeelde ontwerpdocumentHomeGit/Docs/website-design-system.html, want anders neemt de volgende app die dat document volgt de oude waarden weer over
Geblokkeerd / wacht op
Niets. De afhankelijkheid van Configuratie is vervallen, zie PLAN.md.
Als platte regel en niet als vinkje (opgeruimd 27-08-2026): een leeg vakje bij het woord "niets" telt mee als openstaand werk zodra iemand de vinkjes telt, en dat is precies wat deze kop moet uitsluiten.