fix(privacy): een terzijdegelegde bevinding blokkeert de export niet meer (#740) #745

Merged
brenno merged 1 commit from fix/terzijdelegging-exportpoort-740 into main 2026-07-23 13:08:12 +00:00
Owner

Mijn eigen fout uit #651, en van een leerzame soort.

Het filter voor terzijdegelegde bevindingen zette ik in de paneelprovider. De exportpoort leest diezelfde bevindingen langs een andere weg, wist van niets, en telde ze nog als onafgehandeld — dus onderbrak de export op iets dat het paneel niet meer toonde. Ik repareerde één lezer terwijl er twee waren.

De reparatie is niet "tel het als opgelost". De poort en de nalevingsteller stellen verschillende vragen, en beide antwoorden kloppen:

Vraagt Terzijdelegging telt als
Exportpoort: heb je hiernaar gekeken? gekeken — hij blokkeert niet
MIAUW EIS 1.1: hoeveel staat er in dit document? staat er nog — hij telt

PrivacyExportSummary.setAside telt ze apart, níet opgeteld bij accepted: dat is een besluit over een hele dia en dit over één treffer.

Eén predicaat voor beide lezers. setAsidePredicate staat nu in de privacylaag, met de aantekening dat een derde lezer hem gebruikt in plaats van hem opnieuw te formuleren. summarisePrivacyForExport krijgt hem mee in plaats van zelf de scanner op te zoeken — die functie telt, zij scant niet.

4 tests; draai je de reparatie terug, dan vallen er drie om — inclusief de eigenschap zelf: wat het paneel toont is wat de poort tegenhoudt. Geen van de bestaande tests zag dit: de paneeltest keek of de melding verdween, de poorttests keken naar disposities, en het gat lag er tussenin.

FILE_FORMAT §6.7 draagt de uitkomst; dat stond daar als open vraag.

make check groen: 5995 tests.

Mijn eigen fout uit #651, en van een leerzame soort. Het filter voor terzijdegelegde bevindingen zette ik in de paneelprovider. De exportpoort leest diezelfde bevindingen langs een andere weg, wist van niets, en telde ze nog als onafgehandeld — dus onderbrak de export op iets dat het paneel niet meer toonde. **Ik repareerde één lezer terwijl er twee waren.** **De reparatie is niet "tel het als opgelost".** De poort en de nalevingsteller stellen verschillende vragen, en beide antwoorden kloppen: | Vraagt | Terzijdelegging telt als | | --- | --- | | Exportpoort: *heb je hiernaar gekeken?* | gekeken — hij blokkeert niet | | MIAUW EIS 1.1: *hoeveel staat er in dit document?* | staat er nog — hij telt | `PrivacyExportSummary.setAside` telt ze apart, níet opgeteld bij `accepted`: dat is een besluit over een hele dia en dit over één treffer. **Eén predicaat voor beide lezers.** `setAsidePredicate` staat nu in de privacylaag, met de aantekening dat een derde lezer hem gebruikt in plaats van hem opnieuw te formuleren. `summarisePrivacyForExport` krijgt hem mee in plaats van zelf de scanner op te zoeken — die functie telt, zij scant niet. 4 tests; draai je de reparatie terug, dan vallen er drie om — inclusief de eigenschap zelf: *wat het paneel toont is wat de poort tegenhoudt.* Geen van de bestaande tests zag dit: de paneeltest keek of de melding verdween, de poorttests keken naar disposities, en het gat lag er tussenin. FILE_FORMAT §6.7 draagt de uitkomst; dat stond daar als open vraag. `make check` groen: 5995 tests.
fix(privacy): een terzijdegelegde bevinding blokkeert de export niet meer
Some checks failed
CI / Gate (Linux) · Format · Analyze · Coverage (pull_request) Failing after 44s
CI / Web hardening (pull_request) Failing after 29s
CI / Docs links (pull_request) Failing after 31s
CI / Supply-chain (Trivy · advisory) (pull_request) Failing after 28s
CI / Gate (Linux) · Format · Analyze · Coverage (push) Failing after 27s
CI / Web hardening (push) Failing after 26s
CI / Docs links (push) Failing after 28s
CI / Supply-chain (Trivy · advisory) (push) Failing after 27s
CI / Test (macos-latest) (pull_request) Has been cancelled
CI / Test (windows-latest) (pull_request) Has been cancelled
CI / Test (macos-latest) (push) Has been cancelled
CI / Test (windows-latest) (push) Has been cancelled
124d0cd04e
Het filter voor terzijdegelegde bevindingen zat alleen in de
paneelprovider. De exportpoort leest diezelfde bevindingen langs een
andere weg, wist van niets, en telde ze nog als onafgehandeld — dus
onderbrak de export op iets dat het paneel niet meer toonde. Blokkeren
zonder aanwijzing, en precies het soort melding dat mensen leren
wegklikken (#740).

**De reparatie is niet "tel het als opgelost".** De poort en de
nalevingsteller stellen verschillende vragen, en beide antwoorden kloppen:

  * de poort vraagt *heb je hiernaar gekeken* — en een terzijdelegging ís
    per definitie gekeken, dus hij blokkeert niet;
  * MIAUW EIS 1.1 vraagt *hoeveel staat er in dit document* — en daar mag
    een oordeel van de auteur niets aan veranderen.

`PrivacyExportSummary.setAside` telt ze daarom apart, níet opgeteld bij
`accepted`: dat is een besluit over een hele dia en dit over één treffer.

**Eén predicaat voor beide lezers.** `setAsidePredicate` staat nu in de
privacylaag en wordt door het paneel én de poort gebruikt. Dat is de
eigenlijke les: ik repareerde één lezer terwijl er twee waren. Er staat een
aantekening bij dat een derde lezer hem moet gebruiken en niet opnieuw
formuleren.

`summarisePrivacyForExport` krijgt het predicaat mee in plaats van zelf de
scanner op te zoeken — die functie telt, zij scant niet.

Vier tests, waarvan drie omvallen als je de reparatie terugdraait,
inclusief de eigenschap zelf: wat het paneel toont is wat de poort
tegenhoudt. Geen van de bestaande tests zag dit — de paneeltest keek of de
melding verdween, de poorttests keken naar disposities, en het gat lag er
tussenin.

FILE_FORMAT §6.7 draagt de uitkomst; dat was daar een open vraag.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
brenno merged commit 0227eb7021 into main 2026-07-23 13:08:12 +00:00
brenno deleted branch fix/terzijdelegging-exportpoort-740 2026-07-23 13:08:14 +00:00
Sign in to join this conversation.
No description provided.