|
|
@@ -607,6 +607,135 @@ P1-15 (niet dezelfde oorzaak als deze RenderFlex-overflow).
|
|
|
na de restart** zo snel mogelijk naar Activiteiten-tab vóórdat een
|
|
|
andere pagina (Home) een eigen overflow veroorzaakt en de dump-slot
|
|
|
opsoupeert.
|
|
|
+- **2026-08-09 avond, tweede sessie: de `mkfifo`-aanpak hierboven
|
|
|
+ uitgeprobeerd en bevestigd **niet werkend** — geen doodlopende hypothese
|
|
|
+ meer, dus niet opnieuw proberen.** `flutter run` gestart met stdin
|
|
|
+ gekoppeld aan een named pipe (met een losse `sleep 3600 > $FIFO &`
|
|
|
+ als permanente writer om de pipe open te houden) en daarna `R`/`R\n`
|
|
|
+ in de pipe geschreven — geen "Performing hot restart..." verschijnt
|
|
|
+ ooit in de log, de toetsaanslag komt nooit aan. Waarschijnlijke
|
|
|
+ oorzaak: Flutter's interactieve keyboard-handler test op een echte
|
|
|
+ TTY (`stdin.hasTerminal`/`Terminal.usesTerminalUi`) vóór hij raw
|
|
|
+ keypresses verwerkt — een FIFO is geen TTY, dus de handler activeert
|
|
|
+ zich niet, ook al accepteert `flutter run` de pipe zonder foutmelding.
|
|
|
+ Een echte fix zou `script -qc`/`socat`+pty nodig hebben (niet
|
|
|
+ geprobeerd, groter tijdsrisico dan de opbrengst rechtvaardigt).
|
|
|
+- **Werkende alternatieve route (geen hot-restart nodig): cold-start
|
|
|
+ direct de doelpagina via deep link + kale `adb logcat`, geen
|
|
|
+ `flutter run`-attach nodig.** `Activiteiten` is toevallig al
|
|
|
+ `initialIndex: 0`/de eerste tab van `HorecagelegenhedenOverzicht`
|
|
|
+ (`horecagelegenheden_overzicht_widget.dart:49`/238-241) — dus
|
|
|
+ `adb logcat -c` → `am force-stop com.uitgaanskrant.app` → `am start
|
|
|
+ -a android.intent.action.VIEW -d
|
|
|
+ "uitgaanskrant://uitgaanskrant.com/horecagelegenhedenOverzicht"
|
|
|
+ com.uitgaanskrant.app` landt bij cold start meteen op de juiste tab,
|
|
|
+ vóórdat Home ooit gebouwd wordt — omzeilt het hele
|
|
|
+ dump-slot-race-probleem zonder pipe-trucs. `adb logcat` (debug
|
|
|
+ builds) toont `dumpErrorToConsole`-output gewoon via de
|
|
|
+ `flutter`-tag, onafhankelijk van een actieve `flutter run`-sessie.
|
|
|
+ **Nog niet tot een verse stack trace gekomen bij uitvoering, om twee
|
|
|
+ losse praktische redenen, niet omdat de methode niet deugt:**
|
|
|
+ 1. Geprobeerd op `emulator-5556` (tablet, 1280px logische breedte) —
|
|
|
+ landde correct op tab Activiteiten maar toonde een **lege grijze
|
|
|
+ Container**, geen kaarten, geen overflow (zie ook bijvangst
|
|
|
+ hieronder). Dat spoort met de bestaande breedte-hypothese: bij
|
|
|
+ 1280px logische breedte pakt de MasonryGridView vermoedelijk de
|
|
|
+ 3-koloms/"large"-breakpoint, niet de 2-koloms/"medium" waar het
|
|
|
+ probleem wordt vermoed — tablet is dus niet het device om dit op
|
|
|
+ te reproduceren, gebruik `emulator-5554` (telefoon).
|
|
|
+ 2. `emulator-5554` had op het moment van onderzoek al **80+ minuten**
|
|
|
+ een eigen actieve `ff-run-fvm.sh`-sessie draaien (PID zichtbaar via
|
|
|
+ `ps aux`, sinds 14:55) — een read-only screenshot bevestigde
|
|
|
+ **live dat de overflow-banner daar al zichtbaar stond**
|
|
|
+ ("BOTTOM OVERFLOWED BY 5382 PIXELS" op tab Activiteiten, dus het
|
|
|
+ probleem is nog steeds aanwezig, nu met een andere/grotere
|
|
|
+ pixelwaarde dan de eerder gelogde 2653px — mogelijk meerdere
|
|
|
+ losse overflow-plekken op dezelfde tab). **Bewust niet
|
|
|
+ force-stopt/herstart** om die sessie niet te verstoren (kon niet
|
|
|
+ vaststellen of dat Bob's eigen live sessie was of restant-state) —
|
|
|
+ zie `CLAUDE.md`-concurrency-regel. Een `logcat -d`-check op dat
|
|
|
+ moment vond geen `EXCEPTION CAUGHT`/`RenderFlex overflowed`-tekst
|
|
|
+ meer terug — de ring buffer was na 80+ minuten al doorgerouleerd,
|
|
|
+ de oorspronkelijke dump is dus sowieso niet meer terug te halen
|
|
|
+ uit die sessie.
|
|
|
+ - **Volgende sessie, snelste concrete pad:** bevestig eerst dat
|
|
|
+ `emulator-5554` vrij is (geen recente sessie, zie
|
|
|
+ `CLAUDE.md`-concurrency-regel), dan de bovenstaande
|
|
|
+ logcat+deep-link-cold-start-procedure dáár uitvoeren (niet op de
|
|
|
+ tablet) — geen `mkfifo` nodig, geen `flutter run`-attach nodig,
|
|
|
+ dus ook uitvoerbaar met alleen `adb`/Bash zonder `run_in_background`.
|
|
|
+ - **Bijvangst, mogelijk apart P1-1-achtig puntje:** op de tablet-
|
|
|
+ breedte toont tab Activiteiten bij (schijnbaar) geen/nog niet
|
|
|
+ geladen resultaten een **kale lege grijze `Container`**, geen
|
|
|
+ nette empty-state-afbeelding zoals het `HorecagelegenhedenOverzicht`-
|
|
|
+ patroon elders in dit bestand (P1-1) beschrijft — niet
|
|
|
+ geverifieerd of dit een echt lege dataset was of een timing-
|
|
|
+ kwestie (deep-link-cold-start kan nog geen gemeente/provincie-
|
|
|
+ context gezet hebben). Bij het oppakken van bovenstaand punt even
|
|
|
+ meenemen: als tab Activiteiten op tablet-breedte structureel leeg
|
|
|
+ blijft zonder duidelijke reden, is dat een aparte bug.
|
|
|
+ - **Zelfde avond, direct vervolg (Bob akkoord om zelfstandig door te
|
|
|
+ werken op `emulator-5554`): het lege-databeeld hierboven verklaard
|
|
|
+ én opgelost — `plaats`-query-param ontbrak.** `HorecagelegenhedenOverzichtWidget`
|
|
|
+ verwacht een `plaats`-param (= `FFAppState().gemeenteSelectId`, zie
|
|
|
+ `nav.dart:194`/`drawer_component_widget.dart:1173-1180`) — zonder
|
|
|
+ param geen data. Deep link `uitgaanskrant://uitgaanskrant.com/
|
|
|
+ horecagelegenhedenOverzicht?plaats=28666` (bekende default-gemeente-id
|
|
|
+ uit P0-3) cold-start op `emulator-5554` **reproduceerde de bug meteen
|
|
|
+ en consistent** ("BOTTOM OVERFLOWED BY 5382 PIXELS", exact dezelfde
|
|
|
+ waarde als eerder die avond) — mét echte kaarten (De Beun, Hotel Den
|
|
|
+ Helder), zónder ooit Home te bouwen. Dit lost het dump-slot-race-
|
|
|
+ probleem dus wél op — **maar de opvolgende `adb logcat -d`-check
|
|
|
+ bevatte alsnog geen enkele regel met "overflow"/"RenderFlex"/
|
|
|
+ "exception", ondanks dat de banner zichtbaar op het scherm stond.**
|
|
|
+ Conclusie: `FlutterError.dumpErrorToConsole`-output komt op dit
|
|
|
+ device/deze Flutter-versie **niet** via de "flutter"-tag in
|
|
|
+ `adb logcat` terecht (eerdere sessies kregen de stack trace altijd
|
|
|
+ via een live `flutter run`'s eigen STDOUT/VM-service-verbinding,
|
|
|
+ nooit via logcat zelf — dat onderscheid was tot nu toe niet
|
|
|
+ expliciet vastgesteld). **Herziening van het "volgende sessie"-advies
|
|
|
+ hierboven: de logcat-route alléén volstaat niet, ondanks de
|
|
|
+ succesvolle reproductie.** Nodig blijft een echte VM-service-
|
|
|
+ verbinding. Twee opties, geen van beide deze sessie nog beproefd
|
|
|
+ (tijdsbudget op):
|
|
|
+ 1. `flutter run` starten met stdin aan een **echte pty** (bv. via
|
|
|
+ `script -qc "fvm flutter run -d emulator-5554" /dev/null` of
|
|
|
+ `socat`) i.p.v. de kale `mkfifo` hierboven (bevestigd niet-werkend
|
|
|
+ — geen TTY) — dan ná de deep-link-reproductie een `R` sturen is
|
|
|
+ niet eens meer nodig omdat de deep-link zelf al vóór Home
|
|
|
+ reproduceert; gewoon de sessie starten, dan de deep-link-cold-start
|
|
|
+ hierboven uitvoeren, dan STDOUT lezen.
|
|
|
+ 2. Rechtstreeks praten met de Dart VM Service (JSON-RPC over
|
|
|
+ WebSocket, poort staat in `flutter run`'s opstart-log) via
|
|
|
+ `curl`/een klein script — geeft toegang tot foutmeldingen/
|
|
|
+ widget-inspector zonder DevTools' canvas-UI nodig te hebben. Niet
|
|
|
+ geprobeerd, onbekend hoeveel opzoekwerk de exacte RPC-methode kost.
|
|
|
+ **Herbruikbaar ongeacht welke optie:** de `plaats=28666`-deep-link-
|
|
|
+ truc hierboven blijft de snelste manier om exact op het probleem te
|
|
|
+ landen zonder Home's eigen overflow ertussen te krijgen.
|
|
|
+ - **Optie 1 (`script -qc`) meteen geprobeerd, ook niet werkend — maar
|
|
|
+ om een andere, environment-specifieke reden dan de TTY-check.**
|
|
|
+ `script -qc "fvm flutter run -d emulator-5554" logfile < fifo`
|
|
|
+ gestart (fifo + een losse `sleep 3600 > fifo &`-writer om de pipe
|
|
|
+ open te houden, zelfde patroon als eerder): `flutter run` boot prima
|
|
|
+ op (key-commands-lijst toont nu correct zowel `r` als `R`, een teken
|
|
|
+ dat de pty-laag wél als terminal herkend wordt — beter dan de kale
|
|
|
+ fifo), maar het hele proces **beëindigde zichzelf binnen enkele
|
|
|
+ seconden** (`Script done ... COMMAND_EXIT_CODE="0"`) — dus vóórdat er
|
|
|
+ ooit een toets verstuurd kon worden. Waarschijnlijke oorzaak: dit
|
|
|
+ was gestart binnen een Claude Code `run_in_background`-Bash-aanroep;
|
|
|
+ zodra het **getrackte voorgrondcommando** binnen die aanroep klaar
|
|
|
+ is (hier: na de `echo ok`), lijkt de tool-harness de hele
|
|
|
+ procesgroep op te ruimen — óók de losse, `disown`'de achtergrond-
|
|
|
+ subshell die de fifo openhield, en daarmee indirect ook `script`/
|
|
|
+ `flutter run` zelf (EOF op stdin zodra de laatste writer weg is).
|
|
|
+ **Dit is dus niet (alleen) een Flutter/TTY-beperking maar een
|
|
|
+ beperking van hoe deze sandbox achtergrondprocessen beheert** —
|
|
|
+ losse `disown`'de kindprocessen overleven een `run_in_background`-
|
|
|
+ aanroep hier niet betrouwbaar zodra het main-commando zelf eindigt.
|
|
|
+ Nog niet geprobeerd: `nohup` + `setsid` (volledig loskoppelen van de
|
|
|
+ procesgroep, niet alleen `disown`) — theoretisch zou dat dit specifieke
|
|
|
+ reap-probleem kunnen omzeilen, onbevestigd.
|
|
|
|
|
|
**P1-9 · Eigenaar: Onbepaald.** Visuele polish (los, per pagina) —
|
|
|
resterend na sessie 2026-08-06:
|