Prechádzať zdrojové kódy

P1-13: setsid-fix bevestigd werkend (interactieve flutter run nu herhaalbaar) + nieuwe P1-19 gevonden (Home categorie-tag-Row overflow, verse stack trace)

- setsid op beide fifo/script-achtergrondprocessen lost de eerdere run_in_background-reap op; R-hot-restart werkt nu betrouwbaar over meerdere tool-calls heen
- Race tussen R en de deep-link-navigatie naar Activiteiten nog niet gewonnen (2x te laat, Home wint nog steeds) - infrastructuur staat er nu wel voor een volgende poging
- Bijvangst: HomeUitgaantabelKaartComponent (home_uitgaantabel_kaart_component_widget.dart:301) overflowt met exacte stack trace bevestigd - nieuwe P1-19, ongewrapte Row van categorie-tags
- CLAUDE.md: browser-automation naar FlutterFlow-builder hangt af van Bob's actieve/ontgrendelde sessie (2x 5min hang bevestigd terwijl hij weg was) - builder-UI-werk dus niet geschikt voor onbeheerde sessies

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
bob 1 mesiac pred
rodič
commit
0ab109fe9e
2 zmenil súbory, kde vykonal 79 pridanie a 0 odobranie
  1. 11 0
      CLAUDE.md
  2. 68 0
      TASKS.md

+ 11 - 0
CLAUDE.md

@@ -108,6 +108,17 @@ code-export.
   (badge rechtsboven) voordat je een bug bij jezelf zoekt — een rode
   teller blokkeert *elke* export, ook niet-gerelateerde, en is vaak
   Bob's eigen work-in-progress.
+- **De browser-automation naar de FlutterFlow-builder loopt via Bob's
+  eigen, ingelogde Chrome-sessie op zijn machine — dus alleen
+  betrouwbaar terwijl hij actief aanwezig is.** Bevestigd 2026-08-09:
+  terwijl Bob een uur weg was, hing een simpele `navigate`-aanroep naar
+  een FlutterFlow-URL 2x achter elkaar 5 minuten vast (op andere
+  MCP-calls in dezelfde browser, bv. `tabs_context`, geen probleem) —
+  vermoedelijke oorzaak: een vergrendeld/inactief scherm maakt de
+  extensie/CDP-brug onbetrouwbaar. **Praktisch gevolg: builder-UI-werk
+  is geen geschikte taak voor een sessie terwijl Bob niet achter zijn
+  scherm zit** (ook niet via `/loop` of een geplande taak) — Bash/
+  code-audit/emulator-werk (geen browserafhankelijkheid) juist wel.
 
 ## Lokale git-repo + pull/push-workflow
 

+ 68 - 0
TASKS.md

@@ -736,6 +736,74 @@ P1-15 (niet dezelfde oorzaak als deze RenderFlex-overflow).
     Nog niet geprobeerd: `nohup` + `setsid` (volledig loskoppelen van de
     procesgroep, niet alleen `disown`) — theoretisch zou dat dit specifieke
     reap-probleem kunnen omzeilen, onbevestigd.
+  - **Update, zelfde avond: `setsid` bevestigd de fix — interactieve
+    `flutter run` (incl. werkende `R`-hot-restart) is nu een
+    betrouwbaar herhaalbaar recept, bewaar dit:**
+    ```
+    mkfifo /pad/naar/fifo
+    setsid bash -c "exec 9>'/pad/naar/fifo'; sleep 3600" < /dev/null > /dev/null 2>&1 &
+    disown
+    # in een aparte run_in_background Bash-call:
+    setsid script -qc "fvm flutter run -d <device>" /pad/naar/logfile < /pad/naar/fifo > /dev/null 2>&1 &
+    disown
+    # later, in weer een eigen call, om te restarten:
+    printf 'R' > /pad/naar/fifo
+    ```
+    De sleutel is `setsid` op **beide** achtergrondprocessen (niet
+    alleen `disown`) — dat geeft ze een eigen sessie, los van de
+    `run_in_background`-Bash-call die ze opstartte, en ze overleven
+    daarna gewoon zolang nodig, ook over meerdere losse tool-calls heen.
+    Hiermee **wél** een verse, volledige stack trace gevangen — alleen
+    niet (nog) voor de Activiteiten-tab-overflow zelf: het gat tussen
+    `R` versturen en de daaropvolgende deep-link-navigatie
+    (`adb shell am start -a android.intent.action.VIEW -d "..."`) bleek
+    **2x achter elkaar te laat** (~0.3-1s vertraging door
+    tool-call-overhead) — Home's eigen overflow (zie P1-19 hieronder)
+    vuurt binnen die tijd al. Race dus nog niet gewonnen; wel de
+    infrastructuur om het te proberen nu solide. **Idee voor een
+    volgende poging (niet meer beproefd deze sessie):** de deep-link
+    vanuit een tweede, al-vooraf-klaarstaande `adb`-aanroep zonder
+    tussenliggende Bash-tool-round-trip versturen (bv. beide commando's
+    — `R` sturen én de deep-link — in **één** Bash-aanroep met een zo
+    kort mogelijke `sleep` ertussen, i.p.v. twee losse tool-calls), of
+    onderzoeken of `flutter attach` (i.p.v. `flutter run`) op een al
+    lopend, via deep-link cold-started proces een raceloze combinatie
+    oplevert.
+
+**P1-19 · Eigenaar: Onbepaald.** Nieuwe, nog niet eerder gedocumenteerde
+`RenderFlex overflowed`-crash op de **Home-pagina**, live bevestigd met
+een **volledige, verse stack trace** (2026-08-09, via de `setsid`-
+interactieve-`flutter run`-sessie hierboven, 2x identiek reproduceerbaar
+bij elke fresh app-start/hot-restart):
+```
+A RenderFlex overflowed by 113 pixels on the right.
+Row:file:///.../lib/uitgaanspaginas/home_uitgaantabel_kaart_component/home_uitgaantabel_kaart_component_widget.dart:301:50
+constraints: BoxConstraints(0.0<=w<=111.5, 0.0<=h<=152.0)
+size: Size(111.5, 40.0)
+```
+**Root cause (code-niveau bevestigd,
+`home_uitgaantabel_kaart_component_widget.dart:299-301`):** een `Row`
+(`mainAxisSize: MainAxisSize.max`) met `children: List.generate(categorieitem.length,
+...)` — voor elk element in de dynamische `categorie`-lijst van een
+evenement wordt een `TagCategorieComponentWidget`-pilletje in de Row
+gezet, **zonder `Wrap`, zonder horizontale scroll, zonder
+`Expanded`/`Flexible` per tag**. Zodra een evenement 2+ categorieën
+heeft (of één lange categorienaam), passen de pilletjes niet in de
+~111px die de Row van zijn ouder krijgt. Dit is dezelfde soort bug als
+de al bekende ontbrekende-Flexible-patronen (P1-3/P1-11), maar op een
+**ander component** dan beide daar genoemde — niet eerder in dit
+bestand vermeld. **Fix (builder):** component
+`HomeUitgaantabelKaartComponent` → Widget Tree → de Row met de
+`TagCategorieComponentWidget`-kinderen (rond de hierboven genoemde
+code) → wrappen in een `Wrap`-widget (i.p.v. `Row`) zodat tags naar een
+volgende regel overlopen, of een horizontale `SingleChildScrollView`
+eromheen zodat ze scrollen i.p.v. overflowen — zelfde afweging als
+Bob eerder maakte voor vergelijkbare tag-rijen elders. **Nog niet
+gecheckt of hetzelfde patroon (kale `Row` van `List.generate`-tags,
+geen wrap) ook voorkomt op de niet-Home-varianten van dit component
+(`PUitgaantabelKaartComponent`/`kaartTabelUitgaanComp`/
+`kaartTabelUitgaanSComp`, zie ook de P2-7-opschoonnotitie over die
+laatste twee) — bij het oppakken van deze taak even meenemen.**
 
 **P1-9 · Eigenaar: Onbepaald.** Visuele polish (los, per pagina) —
 resterend na sessie 2026-08-06: