Ververs 23 rood staande goldens + macos-gate.yml CI-poort (#1988) #1991

Merged
brenno merged 2 commits from fix/1988-golden-tests-rood into main 2026-09-04 13:11:31 +00:00
Owner

Wat er aan de hand was

23 van de 51 golden-tests stonden rood op main zonder dat er een wijziging tegenover stond (#1988). make check viel op test-golden en was daarmee voor iedereen rood.

Oorzaak

Pixel-vergelijking van alle 23 gewijzigde goldens:

  • Max channel-delta: 1-9 op 255
  • Verschil: 0.0002%-0.04% van alle pixels
  • Patroon: anti-aliasing op randpixels, geen lay-outwijziging

De goldens gebruiken het Ahem-testfont (tekst als blokjes), dus glyph-rendering kan de oorzaak niet zijn. De baseline (7c0c37798, 2026-09-03) is een voorouder van main; geen code-wijziging sindsdien raakt de renderlaag. De font-PR (#1985) voegde Noto Sans Math toe voor PDF-export alleen, niet als Flutter-text-font.

Conclusie: een sub-promille verschuiving in de renderlaag (anti-aliasing op vormen/randen), niet veroorzaakt door een code-wijziging.

Wat deze PR doet

  1. Ververst 23 golden PNGs — geregenereerd op dezelfde machine met dezelfde toolchain (Flutter 3.47.1, macOS 26.6.2). De verschillen zijn uitsluitend anti-aliasing op randpixels.

  2. Voegt macos-gate.yml toe — een CI-workflow die make test-golden draait op de Mac-runner na elke push naar main. Dit is de CI-gap die het issue benoemt: de golden-tests draaiden nergens in CI, alleen de committer lokaal. De docs zeiden zelf al: "To gate them once a CI runner exists, add a single-platform job that runs make test-golden." Geen required PR-check (de Mac-runner staat niet altijd aan en de goldens zijn machine-specifiek) — een post-merge vangnet dat een regressie binnen minuten ziet.

  3. Werkt docs/CHECKS.md bij — documenteert de nieuwe CI-poort.

Bewaker-stap

Expliciet overgeslagen. Deze wijziging raakt geen bestandsformaat, opslag, afhankelijkheid, uitgaand verkeer, of publieke belofte. Het zijn test-assets (golden PNGs), een CI-workflow, en documentatie.

Testplan

  • make test-golden — 51/51 groen na regeneratie
  • make check-static — groen
  • make check-secrets — schoon (gitleaks + trufflehog)
  • make sast — schoon (semgrep, 0 findings)
  • Pixel-vergelijking oud vs nieuw: max delta 1-9 op 255, bevestigd anti-aliasing
  • static-gate CI-check groen

Closes #1988

Generated with Devin

## Wat er aan de hand was 23 van de 51 golden-tests stonden rood op `main` zonder dat er een wijziging tegenover stond (#1988). `make check` viel op `test-golden` en was daarmee voor iedereen rood. ## Oorzaak Pixel-vergelijking van alle 23 gewijzigde goldens: - Max channel-delta: 1-9 op 255 - Verschil: 0.0002%-0.04% van alle pixels - Patroon: anti-aliasing op randpixels, geen lay-outwijziging De goldens gebruiken het Ahem-testfont (tekst als blokjes), dus glyph-rendering kan de oorzaak niet zijn. De baseline (`7c0c37798`, 2026-09-03) is een voorouder van `main`; geen code-wijziging sindsdien raakt de renderlaag. De font-PR (#1985) voegde Noto Sans Math toe voor PDF-export alleen, niet als Flutter-text-font. Conclusie: een sub-promille verschuiving in de renderlaag (anti-aliasing op vormen/randen), niet veroorzaakt door een code-wijziging. ## Wat deze PR doet 1. **Ververst 23 golden PNGs** — geregenereerd op dezelfde machine met dezelfde toolchain (Flutter 3.47.1, macOS 26.6.2). De verschillen zijn uitsluitend anti-aliasing op randpixels. 2. **Voegt `macos-gate.yml` toe** — een CI-workflow die `make test-golden` draait op de Mac-runner na elke push naar `main`. Dit is de CI-gap die het issue benoemt: de golden-tests draaiden nergens in CI, alleen de committer lokaal. De docs zeiden zelf al: *"To gate them once a CI runner exists, add a single-platform job that runs `make test-golden`."* Geen required PR-check (de Mac-runner staat niet altijd aan en de goldens zijn machine-specifiek) — een post-merge vangnet dat een regressie binnen minuten ziet. 3. **Werkt `docs/CHECKS.md` bij** — documenteert de nieuwe CI-poort. ## Bewaker-stap Expliciet overgeslagen. Deze wijziging raakt geen bestandsformaat, opslag, afhankelijkheid, uitgaand verkeer, of publieke belofte. Het zijn test-assets (golden PNGs), een CI-workflow, en documentatie. ## Testplan - [x] `make test-golden` — 51/51 groen na regeneratie - [x] `make check-static` — groen - [x] `make check-secrets` — schoon (gitleaks + trufflehog) - [x] `make sast` — schoon (semgrep, 0 findings) - [x] Pixel-vergelijking oud vs nieuw: max delta 1-9 op 255, bevestigd anti-aliasing - [ ] `static-gate` CI-check groen Closes #1988 Generated with [Devin](https://devin.ai)
23 van de 51 golden-tests stonden rood op main (#1988) zonder dat er een
wijziging tegenover stond. Pixel-vergelijking: max channel-delta 1-9 op
255, 0.0002%-0.04% verschil — anti-aliasing op randpixels, geen
lay-outwijziging. De goldens gebruiken het Ahem-testfont (tekst als
blokjes), dus glyph-rendering kan de oorzaak niet zijn.

De baseline (7c0c37798, 2026-09-03) is een voorouder van main; geen
code-wijziging sindsdien raakt de renderlaag. De font-PR (#1985) voegde
Noto Sans Math toe voor PDF-export alleen, niet als Flutter-text-font.

Closes #1988

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
ci(golden): macos-gate.yml draait make test-golden op push:main
All checks were successful
scans / scans (pull_request) Successful in 3m2s
static-gate / static-gate (pull_request) Successful in 6m45s
e516ba9796
De golden-tests draaiden nergens in CI — alleen de committer lokaal. Zo
dreef main rood op 23 goldens (#1988) zonder dat een CI-check het zag.
De docs zeiden zelf al: "To gate them once a CI runner exists, add a
single-platform job that runs make test-golden."

macos-gate.yml draait make test-golden op de Mac-runner (mac-brenno)
na elke push naar main. Geen required PR-check, want de Mac-runner
staat niet altijd aan en de goldens zijn machine-specifiek — een
post-merge vangnet dat een regressie binnen minuten ziet in plaats van
pas wanneer iemand lokaal make check draait.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
brenno force-pushed fix/1988-golden-tests-rood from e516ba9796
All checks were successful
scans / scans (pull_request) Successful in 3m2s
static-gate / static-gate (pull_request) Successful in 6m45s
to 703b9cafa6
All checks were successful
scans / scans (pull_request) Successful in 2m45s
static-gate / static-gate (pull_request) Successful in 5m57s
2026-09-04 13:04:38 +00:00
Compare
brenno merged commit 3fec3da06c into main 2026-09-04 13:11:31 +00:00
Sign in to join this conversation.
No description provided.