test(shell): open-budget 400→1200 — act-poging uit #1770 teruggedraaid #1775

Merged
brenno merged 1 commit from fix/linux-gate-open-budget into main 2026-08-24 14:28:06 +00:00
Owner

Wat en waarom

PR #1770 probeerde act (één runAsync-blok) i.p.v. tap+settleUntil voor de file-tap in de browserdialoog. De hypothese was dat act de open-keten onbeperkte echte async-tijd geeft. De linux-gate liet het tegendeel zien: S3 faalde nu (i.p.v. WebDAV) met dezelfde fout binnen act (regel 179→342). act lost het niet structureel op — het verschuift welke test marginaal is.

De echte oorzaak: de open-keten (download → schijfimport → laden) doet echte schijf-IO (bestand schrijven, teruglezen, parsen). Op de 4-core Xeon-runner draait de suite met --concurrency=14, dus elk proces krijgt ~28% van een core en IO voltooit trager. Het standaardbudget van 400 stappen (2 s wandelklok) is marginaal — soms voltooid, soms niet, en welke van de twee open-tests rood wordt is toeval.

De fix

Terug naar settleUntil (het standaardpatroon) met steps: 1200 (6 s wandelklok). De testklok stopt na _clockSteps (100) met oplopen, dus een SnackBar verdwijnt niet door het langer wachten. De test breekt vroegtijdig zodra het deck geladen is, dus op een snelle machine is er geen vertraging.

Dit is een follow-up op #1770 dat de verkeerde hypothese toepaste. #1770 is al gemerged; deze PR herstelt de aanpak.

Wat niet verandert

Geen lib/-code, geen pubspec — uitsluitend test-harness. Bewaker-stap expliciet overgeslagen (raakt niets uit het rijtje).

Test plan

  • make check groen (10542 tests, 87,1% coverage)
  • make check-secrets schoon
  • make sast schoon (0 findings)
  • static-gate groen op CI
  • linux-gate groen op CI (de eigenlijke graadmeter)

Generated with Devin

## Wat en waarom PR #1770 probeerde `act` (één `runAsync`-blok) i.p.v. `tap`+`settleUntil` voor de file-tap in de browserdialoog. De hypothese was dat `act` de open-keten onbeperkte echte async-tijd geeft. **De linux-gate liet het tegendeel zien**: S3 faalde nu (i.p.v. WebDAV) met dezelfde fout binnen `act` (regel 179→342). `act` lost het niet structureel op — het verschuift welke test marginaal is. De echte oorzaak: de open-keten (download → schijfimport → laden) doet **echte schijf-IO** (bestand schrijven, teruglezen, parsen). Op de 4-core Xeon-runner draait de suite met `--concurrency=14`, dus elk proces krijgt ~28% van een core en IO voltooit trager. Het standaardbudget van 400 stappen (2 s wandelklok) is marginaal — soms voltooid, soms niet, en welke van de twee open-tests rood wordt is toeval. ## De fix Terug naar `settleUntil` (het standaardpatroon) met `steps: 1200` (6 s wandelklok). De testklok stopt na `_clockSteps` (100) met oplopen, dus een SnackBar verdwijnt niet door het langer wachten. De test breekt vroegtijdig zodra het deck geladen is, dus op een snelle machine is er geen vertraging. Dit is een follow-up op #1770 dat de verkeerde hypothese toepaste. #1770 is al gemerged; deze PR herstelt de aanpak. ## Wat niet verandert Geen `lib/`-code, geen pubspec — uitsluitend test-harness. Bewaker-stap expliciet overgeslagen (raakt niets uit het rijtje). #### Test plan - [x] `make check` groen (10542 tests, 87,1% coverage) - [x] `make check-secrets` schoon - [x] `make sast` schoon (0 findings) - [ ] `static-gate` groen op CI - [ ] `linux-gate` groen op CI (de eigenlijke graadmeter) Generated with [Devin](https://devin.ai)
test(shell): open-budget 400→1200 voor WebDAV/S3 — act-poging teruggedraaid
All checks were successful
scans / scans (pull_request) Successful in 2m47s
static-gate / static-gate (pull_request) Successful in 7m28s
a100a63001
PR #1770 probeerde `act` (één runAsync-blok) i.p.v. `tap`+`settleUntil`
voor de file-tap in de browserdialoog. De hypothese was dat `act` de
open-keten onbeperkte echte async-tijd geeft. De linux-gate liet het
tegendeel zien: S3 faalde nu (i.p.v. WebDAV) met dezelfde fout. `act`
lost het niet structureel op — het verschuift welke test marginaal is.

De echte oorzaak: de open-keten (download → schijfimport → laden) doet
échte schijf-IO (bestand schrijven, teruglezen, parsen). Op de 4-core
Xeon-runner draait de suite met `--concurrency=14`, dus elk proces krijgt
~28% van een core en IO voltooit trager. Het standaardbudget van 400
stappen (2 s wandelklok) is marginaal — soms voltooid, soms niet.

Terug naar `settleUntil` (het standaardpatroon) met `steps: 1200` (6 s
wandelklok). De testklok stopt na `_clockSteps` (100) met oplopen, dus
een SnackBar verdwijnt niet door het langer wachten. De test breekt
vroegtijdig zodra het deck geladen is, dus op een snelle machine is er
geen vertraging.

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

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
brenno merged commit a5d48ae22d into main 2026-08-24 14:28:06 +00:00
Sign in to join this conversation.
No description provided.