fix(ci): de conventiepoort laten struikelen op één regel is geen poort #1707

Merged
brenno merged 3 commits from fix/linux-gate-conventions-ratchet into main 2026-08-22 00:53:04 +00:00
Owner

Waarom

gate-linux viel tussen 21-08 22:38 en 23:51 vijf keer rood op main, telkens op check-conventions en telkens op één of twee regels:

taak bevinding
2718, 2721 lib/state/tabs_provider.dart: 1017 regels (plafond 1007)
2754, 2755 document_editor_screen.dart: 1211 (plafond 1209) + de State 1213 (plafond 1211)
2761 document_editor_screen.dart: 1212 (plafond 1211) + de State 1214 (plafond 1213)

Geen enkele viel om op een test. Het is ook geen flakiness: de statische poort draait per PR en toetst de voorvertoning van díe samenvoeging met main zoals hij er toen bijstond. Werken twee sessies tegelijk in hetzelfde bestand — en dat deed de hele documentmodus-golf — dan zijn beide PR's groen en is de uitkomst het niet.

Dat het telkens om één regel ging, komt doordat elke verhoging het plafond exact op de toenmalige telling zette. Met nul lucht is de eerstvolgende regel er één te veel. De tip onderaan de poortrun vroeg daar zelf om, en meldde zich ook bij een winst van twee regels.

main is op dit moment rood; deze PR maakt hem groen.

Wat er verandert

1. Eén zoek-/vervangstand voor beide broneditors. De find/replace-staat stond twee keer in de boom — zeven velden en acht methoden, in document_editor_screen.dart én in markdown_deck_editor.dart, tot op de klemregels na gelijk. Nu één FindReplaceSession.

  • document_editor_screen.dart: 1225 → 1113 regels, _DocumentEditorScreenState 1228 → 1115
  • markdown_deck_editor.dart: 993 → 895 — die stond zeven regels onder de harde grens van 1000 en was de volgende in de rij

(Getallen na de rebase op #1706, dat er zelf 13 regels bij deed en het plafond wéér exact op de telling zette: 1225 op 1225.)

De oude baseline-regels beweerden dat dit niet kon zonder private-veldtoegang. Wat de methoden aan de State bond was _controller (gaat mee als parameter), _viewMode (blijft daar — alleen de gastheer weet of de cursor in de bron of in Quill staat) en setState (een callback).

2. Plafonds omlaag, mét lucht. 1225 → 1150 voor het bestand, 1228 → 1150 voor de State, bij een werkelijke 1113/1115. Zevenendertig regels lucht in plaats van strak op de telling; beide plafonds staan lager dan ervoor, dus de ratchet ging vooruit. De kop van fileSizeBaseline legt uit waarom strak-pinnen breekbaar is, en de krimp-tip vraagt nu om die lucht in plaats van erom hem weg te halen — en zwijgt bij een winst die te klein is om te verzilveren.

3. static-gate draait ook op een push naar main. Tot nu toe was de dure Linux-poort het eerste dat de échte samenvoeging zag, tientallen minuten later — lang genoeg voor de volgende sessie om eroverheen te mergen en dezelfde rode poort nog eens te melden. Drie van de vijf rode runs waren precies dat. Voorkómen doet dit niet; dat kan alleen door elke PR vlak vóór de merge opnieuw tegen de actuele main te draaien.

Twee gedragsverschillen, beide bewust

  • Een gesloten zoekbalk sleept de weergave niet meer naar een treffer (kon alleen via een aanroepvolgorde die de interface niet maakt).
  • Verse inhoud van buitenaf wist in de presentatie-broneditor de treffers zonder de balk te sluiten — dat was het oude gedrag; de eerste opzet sloot hem, dat is teruggedraaid.

Getoetst

  • make check-static — groen
  • make check-registrations — groen
  • dart run tool/check_conventions.dart — groen, en de tip is nu stil op de vijf ruis-meldingen (2–6 regels winst)
  • 189 tests over de geraakte suites groen (na de rebase op #1706): find_replace_session (nieuw, 13), find_replace_dialog, markdown_deck_editor + _coverage, editor_coverage_extra, document_editor_screen (incl. Bron/Visueel zoeken, vervangen, Escape), app_shell_actions, markdown_source_controller, class_size_ratchet, ratchet_trend_tool, docs_claims_match_code, file_extension, source_patcher
  • De volledige suite draait post-merge in gate-linux; die is hier niet lokaal gedraaid omdat een parallelle sessie de machine met een coverage-run bezet hield.

Bewaker

Overgeslagen, expliciet: deze wijziging raakt geen van de vijf criteria. Geen bestandsformaat, geen opslag, geen afhankelijkheid erbij, geen uitgaand verkeer, geen publieke belofte — het is een interne herschikking, een ratchet-waarde en een CI-trigger. Geen zichtbare tekst erbij, dus ook geen l10n.

## Waarom `gate-linux` viel tussen 21-08 22:38 en 23:51 vijf keer rood op `main`, telkens op `check-conventions` en telkens op één of twee regels: | taak | bevinding | |---|---| | 2718, 2721 | `lib/state/tabs_provider.dart`: 1017 regels (plafond 1007) | | 2754, 2755 | `document_editor_screen.dart`: 1211 (plafond 1209) + de State 1213 (plafond 1211) | | 2761 | `document_editor_screen.dart`: 1212 (plafond 1211) + de State 1214 (plafond 1213) | Geen enkele viel om op een test. Het is ook geen flakiness: de statische poort draait per PR en toetst de *voorvertoning* van díe samenvoeging met `main` zoals hij er toen bijstond. Werken twee sessies tegelijk in hetzelfde bestand — en dat deed de hele documentmodus-golf — dan zijn beide PR's groen en is de uitkomst het niet. Dat het telkens om één regel ging, komt doordat elke verhoging het plafond exact op de toenmalige telling zette. Met nul lucht is de eerstvolgende regel er één te veel. De tip onderaan de poortrun vroeg daar zelf om, en meldde zich ook bij een winst van twee regels. `main` is op dit moment rood; deze PR maakt hem groen. ## Wat er verandert **1. Eén zoek-/vervangstand voor beide broneditors.** De find/replace-staat stond twee keer in de boom — zeven velden en acht methoden, in `document_editor_screen.dart` én in `markdown_deck_editor.dart`, tot op de klemregels na gelijk. Nu één `FindReplaceSession`. - `document_editor_screen.dart`: 1225 → **1113** regels, `_DocumentEditorScreenState` 1228 → **1115** - `markdown_deck_editor.dart`: 993 → **895** — die stond zeven regels onder de harde grens van 1000 en was de volgende in de rij *(Getallen na de rebase op #1706, dat er zelf 13 regels bij deed en het plafond wéér exact op de telling zette: 1225 op 1225.)* De oude baseline-regels beweerden dat dit niet kon zonder private-veldtoegang. Wat de methoden aan de State bond was `_controller` (gaat mee als parameter), `_viewMode` (blijft daar — alleen de gastheer weet of de cursor in de bron of in Quill staat) en `setState` (een callback). **2. Plafonds omlaag, mét lucht.** 1225 → 1150 voor het bestand, 1228 → 1150 voor de State, bij een werkelijke 1113/1115. Zevenendertig regels lucht in plaats van strak op de telling; beide plafonds staan lager dan ervoor, dus de ratchet ging vooruit. De kop van `fileSizeBaseline` legt uit waarom strak-pinnen breekbaar is, en de krimp-tip vraagt nu om die lucht in plaats van erom hem weg te halen — en zwijgt bij een winst die te klein is om te verzilveren. **3. `static-gate` draait ook op een push naar `main`.** Tot nu toe was de dure Linux-poort het eerste dat de échte samenvoeging zag, tientallen minuten later — lang genoeg voor de volgende sessie om eroverheen te mergen en dezelfde rode poort nog eens te melden. Drie van de vijf rode runs waren precies dat. Voorkómen doet dit niet; dat kan alleen door elke PR vlak vóór de merge opnieuw tegen de actuele `main` te draaien. ## Twee gedragsverschillen, beide bewust - Een **gesloten** zoekbalk sleept de weergave niet meer naar een treffer (kon alleen via een aanroepvolgorde die de interface niet maakt). - Verse inhoud van buitenaf wist in de presentatie-broneditor de treffers **zonder de balk te sluiten** — dat was het oude gedrag; de eerste opzet sloot hem, dat is teruggedraaid. ## Getoetst - `make check-static` — groen - `make check-registrations` — groen - `dart run tool/check_conventions.dart` — groen, en de tip is nu stil op de vijf ruis-meldingen (2–6 regels winst) - 189 tests over de geraakte suites groen (na de rebase op #1706): `find_replace_session` (nieuw, 13), `find_replace_dialog`, `markdown_deck_editor` + `_coverage`, `editor_coverage_extra`, `document_editor_screen` (incl. Bron/Visueel zoeken, vervangen, Escape), `app_shell_actions`, `markdown_source_controller`, `class_size_ratchet`, `ratchet_trend_tool`, `docs_claims_match_code`, `file_extension`, `source_patcher` - De volledige suite draait post-merge in `gate-linux`; die is hier niet lokaal gedraaid omdat een parallelle sessie de machine met een coverage-run bezet hield. ## Bewaker Overgeslagen, expliciet: deze wijziging raakt geen van de vijf criteria. Geen bestandsformaat, geen opslag, geen afhankelijkheid erbij, geen uitgaand verkeer, geen publieke belofte — het is een interne herschikking, een ratchet-waarde en een CI-trigger. Geen zichtbare tekst erbij, dus ook geen l10n.
brenno force-pushed fix/linux-gate-conventions-ratchet from 534ed64bc5
All checks were successful
scans / scans (pull_request) Successful in 2m15s
static-gate / static-gate (pull_request) Successful in 5m22s
to b4c0daca9e
All checks were successful
scans / scans (pull_request) Successful in 3m18s
static-gate / static-gate (pull_request) Successful in 6m46s
2026-08-22 00:45:45 +00:00
Compare
brenno merged commit a0dd65e205 into main 2026-08-22 00:53:04 +00:00
Sign in to join this conversation.
No description provided.