9ec39b1cd07e718ba8ee8de1c7940d1e6a9c1bc1
8
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
cd4c7da0d7 |
Gate 0.0.29 en Relay 0.5.5: de gloed uit, als schakelaar
Op verzoek van de gebruiker, in beide apps. De accentgloed uit Gate 0.0.25 en Relay 0.5.2 gaat uit; de rand, de schaduw, het randlicht en de doorschijnende kleur van de vlakken blijven staan. Het is een schakelaar geworden en geen verwijdering: data-glow="on" op het html-element zet hem terug, en alleen samen met data-depth="deep". Die tweede eis is van de gebruiker en hij is juist: de gloed is de onderste van de vier dieptelagen, dus aanzetten op een vlakke pagina legt een verloop achter vlakken die er dekkend voor staan. De blur hangt nu aan de gloed en niet aan de diepte, want een backdrop-filter op een egale ondergrond levert per definitie niets op. Daarmee verviel het mobiele terugvalblok (Gate 0.0.26, Relay 0.5.3) volledig: dat zette gloed, blur en vlakkleur om, en de eerste twee staan nu al uit. Meegevonden en gerepareerd: een 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. Alle zeven tests groen: 22 + 43 + 39 + 54 + 28 + 115 + 65 goed, 0 fout. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|
|
dbec428e62 |
Gate 0.0.28: de blokhoogte was niet van deze app
Op verzoek van de gebruiker. Dit is een TLS-voordeur op een Electrum-server; wat de keten doet staat in elke wallet die hij al heeft. Vier widgets over, alle vier over deze gateway. 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, na de sparkline zodat de vier onderregels op een lijn blijven. De rij is een raster van vier met breekpunten op 1100 en 560 pixels; vier deelt door twee, dus de stap die bepaalde welke 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. Alle tests groen: 22 + 43 + 39 + 54 + 28 + 115 + 65 goed, 0 fout. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|
|
b3b1881af2 |
De pagina van Evolu Relay op de lijst van de gebruiker
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> |
||
|
|
bf8bedcda9 |
Sessie afgesloten: waar we staan met Evolu Relay
De app draait als 0.3.0 en wordt gebruikt: kale relay met een eigen eigenaars-allowlist, statuspagina achter de umbrelOS-inlog, en TLS via Zoraxy op een eigen subdomein waar de handshake 101 geeft. De desktop synchroniseert eroverheen, met een geleerde eigenaar en een gesloten deur erna. iOS blijft open, en het vermoeden van vanmiddag is weerlegd in plaats van bevestigd: TLS was niet de verklaring. Met een geldig certificaat, een opgeslagen URL en de sync-schakelaar aan komt er nog steeds niets aan, en sinds 0.3.0 is dat hard gemeten in plaats van afgeleid: het relay-proces logt elke eigenaar die zich meldt, ook bekende en geweigerde, en van de telefoon verschijnt niets. Daarmee is de hele app vrijgepleit. De volgende stap staat als eerste taak en kost een minuut: kijken of het verzoek de telefoon uberhaupt verlaat, via het log van Zoraxy. Doordat iOS niet meedoet is de leeskant nooit gemeten. Dat is de tweede taak en hij hangt aan de eerste, want iOS zou die tweede client zijn. Proefopstelling is hiermee volledig ingehaald: beide vragen die dat plan nog bezat zijn beantwoord, en wat er verder in stond gaat over een pakket dat niet meer bestaat. Dat staat als een beslissing in de index, niet als een daad. De reparatie aan Electrum Gate heeft een eigen entry gekregen in het plan Webinterface, want die app ging kapot door de tweede app en dat hoort daar nagelezen te kunnen worden. Tests: alle vier groen (34, 54, 39 en 61 goed, 0 fout). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|
|
498b0fe695 |
De nieuwe widget vond meteen een fout, en die zat in de widget zelf
De Status-widget meldde "Not answering" met Errno 111 op een gateway die gewoon werkte. Die foutmelding was het bewijs: geweigerd betekent dat de naam oploste, alleen niet naar ons. GATE_TLS_HOST stond op de servicenaam "server", en dat is een naam die meer apps op een Umbrel gebruiken; op een gedeeld netwerk is het dus een gok wie je krijgt. Nu de volledige containernaam, precies de vorm die umbrelOS van APP_HOST verlangt en die twee regels hoger in dezelfde compose al stond. Wat dit zegt over de aanname van gisteren: er stond dat dit "dezelfde weg is die nginx andersom gebruikt". Dat klopte voor de richting maar niet voor de naam, en het was opgeschreven als redenering in plaats van als meting. De rest zijn bijstellingen van de gebruiker na het bekijken van 0.0.17. Het menu is drie kale punten met een accent bij hover in plaats van een knop, de eerste regel heet Settings zonder de certificaatnaam erachter, de dialoog opent in het midden in plaats van linksboven, de widgets zijn hoger met hun waarde langs de onderrand, reactietijd en blokhoogte zijn omgedraaid zodat de reactietijd naast de server staat waar hij over gaat, en het log is half zo hoog. De manifest-toets ving onderweg een echte fout: bij het herschrijven van de release notes was de sleutel releaseNotes zelf weggeknipt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|
|
be91125cce |
De tweede indeling gebouwd, en er ging meer weg dan erbij kwam
Vijf widgets op de bovenste rij, de certificaatkeuze in een dialoog achter een puntjesmenu, het activiteitenlog vol breed, en het instelkader dichtgeklapt met twee kopieerknoppen. Uitgeleverd als 0.0.17. De zelfcontrole uit 0.0.16 heeft daarmee eindelijk een plek om te verschijnen. Wat opvalt is wat er verdween. Twee mechanismen bestonden alleen omdat er kaders naast elkaar stonden: het meerekken van de tegels met de hoogte van hun buur, en het samen groeien en krimpen van log en certificaatkader. Dat tweede was de hele inhoud van 0.0.13. Vijf gelijke widgets en een vol breed log hebben geen buur, dus beide zijn weg, samen met .col-5 en .col-7. De harde eis staat in de code en niet alleen in het plan: de foutmelding "geen certificaat in gebruik" heeft de knop die de dialoog opent. Een verse installatie heeft geen certificaat en de pagina is de enige plek waar je er een kiest; dat achter een menu verstoppen zou de klem van 0.0.3 in een andere vorm zijn. Twee dingen onderweg bijgestuurd. Het menu werd drie punten in plaats van een hamburger, op aanwijzing van de gebruiker, want dat is wat umbrelOS bij zijn eigen apps toont. En het ontwerp beweerde dat de certificaatlijst een lijst was, terwijl die op 20-08 al een dropdown geworden is; dat is rechtgezet in 4a2 en de dropdown is ongewijzigd meeverhuisd. Niet geverifieerd: niets hiervan is in een browser gezien, op geen enkele schermbreedte. Dat staat als taak met de gebruiker als eigenaar. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|
|
c8d9765cb3 |
De app kijkt naar zijn eigen voordeur, en meet minder dan het plan beloofde
Open punt 5 van Webinterface, goedgekeurd en gebouwd. De agent verbindt met de eigen TLS-poort, maakt de handdruk af en vergelijkt het getoonde certificaat byte voor byte met het gekozen bestand. Die vergelijking blijkt waardevoller dan de handdruk. Ze vangt een certificaatwissel die nginx nooit heeft toegepast, en dat is precies het geval waar een controle op vertrouwen blind voor is. Er wordt daarom bewust niet tegen de certificaatwinkel van het besturingssysteem geverifieerd: een zelfondertekend certificaat uploaden is een ondersteunde bron en die opstelling zou dan als kapot gemeld worden. Twee dingen liepen anders dan het plan zei en staan nu rechtgezet in PLAN 4a2, OPEN punt 5 en de changelog. De belofte "luisteren, certificaat en doorverbinding in een keer" klopt voor twee van de drie: na de handdruk wordt er niets verstuurd. Een echt verzoek zou de sessie bytes geven, en sessies met bytes worden nooit uit het activiteitenlog gefilterd, want die kunnen een storing zijn. En dat filteren was de tweede verrassing. Elke meting is voor nginx een gewone sessie en levert dus een logregel op; zonder rem ging het log over onszelf in plaats van over wallets. Er zit nu een rem van vijf minuten op, er wordt niet gemeten vlak na een herlading omdat het vorige certificaat er dan nog staat, en de eigen regels worden weggelaten op grond van het moment. Tests: 22 nieuw, met de nadruk op de niet-gelukkige paden en op de rem, want dat is wat het log bruikbaar houdt. Alle vier de beslissende regels mutatie-getest. De changelog kreeg ook de ontbrekende 0.0.15 erbij. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|
|
67ed9b603b |
Eén app store, twee apps
umbrelOS leest per store één repo, dus twee apps in twee repo's kan niet. Deze repo is de store en bevat vanaf nu Electrum Gate en het werk aan Evolu Relay. Opgezet als verse repo op verzoek van de gebruiker: de historie van ElectrumTLS en van EvoluRelay komt niet mee. Dat heeft één gevolg dat verder gaat dan opruimen. In de historie van ElectrumTLS staat het domein van de gebruiker en het certificaatpad, van vóór de opschoning van 19-08. Die komt hier niet in. Zolang die repo op de Git-server blijft staan verandert dat niets, dus het weghalen ervan is het laatste stuk van open punt 3 van het plan Appstore, en geen bijzaak. De store zelf hoefde niet te veranderen: store-id whatsnext, en dus blijft het app-id whatsnext-electrum-gate. Dat hangt aan het store-id en niet aan de URL, dus voor umbrelOS is dit dezelfde app in een andere store. Dat de store op 19-08 naar de maker genoemd werd in plaats van naar deze ene app, betaalt zich hier uit. Wat de documentatie betreft is dit één wortel voor beide apps, en dat was de reden om samen te voegen en niet de prijs ervan: de appstore-spec, het pinnen van images en de werkwijze golden al voor allebei en stonden in twee repo's naast elkaar. De kruisverwijzing die daarvoor nodig was (Referenties/Umbrel-appstore.md in de oude EvoluRelay-repo) is verdwenen; wat daarin stond over de plekken waar de relay een ander geval is, staat nu als ontwerp in het masterplan Umbrelapp §4. Botsende namen kregen een achtervoegsel met de app, en alleen die: Publicatie werd Publicatie-Gate en Publicatie-Relay, CHANGELOG.md werd CHANGELOG-electrum-gate.md. Proefopstelling kreeg 007, tussen de twee bestaande nummers, zodat de bovenkant van de reeks op tier-orde blijft staan. CONTINUE_HERE.md heeft een kolom App, maar de tiers lopen over beide apps heen: er is één volgorde van werken. Electrum Gate gaat naar 0.0.15, want website, repo, support, submission en icon wijzen nu naar UmbrelApps en zonder versieverhoging rolt dat niet uit. De release notes leggen aan de gebruiker uit dat hij de store opnieuw moet toevoegen. Of een geïnstalleerde app een wisseling van store-URL overleeft is nog steeds niet uitgezocht; dat blijkt bij het omzetten. Twee dingen in de plannen van Electrum Gate waren door deze verhuizing niet meer waar en zijn bijgewerkt: de taak "de repo hernoemen" in fase 7 is afgevinkt, en de repo-vorm in PLAN.md §4a toonde nog de store-id electrumtls, die al sinds fase 7 achterhaald was. Tests: 39 goed 0 fout en 54 goed 0 fout, niets overgeslagen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |