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>
This commit is contained in:
Harmen
2026-08-27 15:24:24 +02:00
co-authored by Claude Opus 5
parent fc7ec7fc6c
commit c8d9765cb3
10 changed files with 668 additions and 20 deletions
@@ -1,5 +1,29 @@
# Voortgang - Webinterface
## 27-08-2026 - de app kijkt eindelijk naar zijn eigen voordeur, en meet minder dan beloofd
Open punt 5 is goedgekeurd en gebouwd in 0.0.16. De agent verbindt met de eigen TLS-poort, maakt de
handdruk af en vergelijkt het getoonde certificaat byte voor byte met het gekozen bestand. Dat laatste
bleek waardevoller dan de handdruk zelf: het vangt een certificaatwissel die nginx nooit heeft toegepast,
en dat is precies het geval waar een controle op vertrouwen blind voor is.
**Twee dingen liepen anders dan het plan zei, en allebei zijn ze in de documentatie rechtgezet.** De
belofte "bewijst luisteren, certificaat en doorverbinding in één keer" klopte 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 dat zou een storing kunnen verbergen.
En dat filteren was de tweede verrassing: elke meting is voor nginx een gewone sessie en levert dus een
logregel op. Zonder rem en zonder filter ging het activiteitenlog over onszelf in plaats van over wallets.
Er zit nu een rem op van vijf minuten, er wordt niet gemeten vlak na een herlading (dan staat het vorige
certificaat er nog), en de eigen regels worden weggelaten op grond van het moment.
De widget zelf komt bij fase 6; tot die tijd is een wijziging zichtbaar als regel in het activiteitenlog.
**Geraakt:** `agent.py.template`, `docker-compose.yml`, `umbrel-app.yml` (0.0.16),
`tests/test_agent_zelfcontrole.py` (nieuw), dit plan, de changelog (waar 0.0.15 nog ontbrak).
**Tests:** 22 goed 0 fout nieuw, plus 54, 39 en 32 goed 0 fout bestaand. Alle vier de beslissende regels
mutatie-getest.
## 20-08-2026 - scans zijn geen weigeringen, en meer lucht tussen de kaders
De gebruiker vroeg wat een logregel `refused ... status 500` met nul bytes betekende. Antwoord: een