Просмотр исходного кода

TASKS.md: P1-13 afgesloten - fix live geverifieerd op emulator-5556, geen overflow meer

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
bob 3 недель назад
Родитель
Сommit
5f17a75216
1 измененных файлов с 19 добавлено и 244 удалено
  1. 19 244
      TASKS.md

+ 19 - 244
TASKS.md

@@ -1683,250 +1683,25 @@ Optie 1 als gekozen aanpak is dat mogelijk bewust (het hartje op
 expliciet bevestigd door Bob. Uit deze lijst verwijderd als losse
 expliciet bevestigd door Bob. Uit deze lijst verwijderd als losse
 P1-taak.)*
 P1-taak.)*
 
 
-**P1-13 · Eigenaar: Bob (geblokkeerd op een bevestigd FlutterFlow-
-platformprobleem, geen Claude-taak meer totdat dat opgelost is).**
-**Belangrijke update 2026-08-24 (Claude, sessie 46, code-only
-her-audit — geen live device-run, puur codeanalyse):** de root-cause-bug
-(kale `Column` + `shrinkWrap: true`/`NeverScrollableScrollPhysics()` op
-een `MasonryGridView` zonder scrollbare/begrensde ouder) is **al
-verdwenen op `horecagelegenheden_overzicht_widget.dart`** — bevestigd
-via `grep`: geen enkele `shrinkWrap`/`NeverScrollableScrollPhysics`meer
-in dat bestand, en elke tab-`Column` heeft nu een `Expanded`-kind
-(regel 304 e.d.) rond de `FutureBuilder`/`MasonryGridView`-keten. Dit
-is waarschijnlijk een **bijproduct van de P1-10-lazy-tab-loading-
-herbouw** (commit `d35492a`), niet een gerichte P1-13-fix — nooit als
-zodanig gemeld. **Maar: exact dezelfde bug staat nog wél op de
-2e pagina-variant, `horecagelegenheden_overzicht_provincie_page_widget.dart`**
-(de hernoemde `..._page_data_type`) — alle 5 tabs hebben daar nog
-steeds `shrinkWrap: true` + `NeverScrollableScrollPhysics()` in een
-kale `Column` zónder `Expanded`-wrap (bv. regel 291-387). **Nu een veel
-kleinere/zekerdere taak dan voorheen:** kopieer letterlijk hetzelfde
-patroon als het al-werkende `horecagelegenheden_overzicht_widget.dart`
-(Wrap Widget → Flex → Expansion-sectie → Expanded, zie `CLAUDE.md`) op
-elk van de 5 tab-Columns in de provincie-page-variant — geen open
-onderzoeksvraag meer, gewoon een bewezen werkend recept 5x herhalen.
-De eerdere "builder-fix bereikt de export niet"-blocker-geschiedenis
-hieronder gold voor pogingen vóórdat dit werkende voorbeeld bestond;
-onduidelijk of die flakiness nog optreedt nu er een bewezen pad is —
-bij een nieuwe poging eerst 1 tab proberen + meteen verse export-
-verificatie, niet blind alle 5 in één keer.
-**Nogmaals live herbevestigd 2026-08-20 (Claude, look&feel-review,
-zowel telefoon- als tabletformaat):** identiek kapot, nu weer letterlijk
-"BOTTOM OVERFLOWED BY 5382 PIXELS" (de grotere van de twee eerder
-gemelde waarden, niet de 1529px-variant) — zichtbaar na de 2e kaart
-("De Beun"/"Hotel Den Helder"), inclusief rommelige tag/logo-overlap op
-de kaart vlak vóór de overflow-balk (waarschijnlijk gewoon een
-symptoom van dezelfde kapotte layout, geen apart punt). Nog steeds geen
-voortgang — nieuwste bevestiging dat dit voor livegang nog opgelost
-moet worden bij FlutterFlow-support, dit blokkeert het browsen door de
-volledige Horeca-activiteitenlijst op alle formaten.
-**Live herbevestigd 2026-08-12 (Claude, verse build, telefoonformaat
-emulator-5554):** nog steeds kapot, exact zoals hieronder beschreven —
-"BOTTOM OVERFLOWED BY 1529 PIXELS" op de Activiteiten-tab, zichtbaar
-al na de 2e rij kaartjes, geen scroll mogelijk voorbij dat punt. Geen
-voortgang t.o.v. 2026-08-10, geen nieuwe informatie deze sessie — puur
-een bevestiging dat de taak actueel blijft. Root cause + fix zijn bekend
-en juist toegepast in de builder (door zowel Claude als Bob, op zowel 1
-als meerdere tabs), maar de wijziging bereikt **nooit** de export — zie
-de uitgebreide blocker-documentatie hieronder. Volgende stap is bij
-Bob: Issues-paneel checken, de alternatieve SingleChildScrollView-route
-proberen, of FlutterFlow-support contacteren. Op `HorecagelegenhedenOverzicht` → tab "Activiteiten" overflowt de
-kaartjesgrid. **Root cause definitief bevestigd
-(2026-08-09, Claude, verse volledige stack trace + visuele bevestiging
-op emulator-5554):**
-```
-A RenderFlex overflowed by 5382 pixels on the bottom.
-Column:file:///.../lib/horecagelegenhedenoverzicht/horecagelegenheden_overzicht/horecagelegenheden_overzicht_widget.dart:286:29
-```
-`horecagelegenheden_overzicht_widget.dart:286-382`: de Activiteiten-tab
-is een kale `Column` (`mainAxisSize: MainAxisSize.max`, regel 286) met
-als enige kind een `FutureBuilder` die uiteindelijk een
-`MasonryGridView.builder` bouwt (regel 354) met **`shrinkWrap: true` +
-`physics: NeverScrollableScrollPhysics()`** (regel 355-356/382) — dit
-patroon (shrinkWrapped grid zonder eigen scroll) vereist een
-**scrollbare ouder** om te werken, maar die ontbreekt hier: de `Column`
-zit direct in de `TabBarView`'s `Expanded` (regel 282-284), zonder
-`SingleChildScrollView` eromheen. Met 25 items (regel 340,
-`.take(25)`) × `Container(width: 600.0, height: 225.0)` (regel
-388-390) in 1 kolom op telefoonformaat (`crossAxisCount: 1` onder
-`kBreakpointSmall`, regel 359-363) wil de grid ≈5625px hoog worden
-terwijl de tab maar een fractie daarvan aan ruimte heeft — vandaar de
-5382px-overflow. Verklaart vermoedelijk ook de eerder waargenomen
-kleinere "on the right"-overflows elders in eerdere sessies (los
-bevestigd deze sessie op een ander component: zie P1-19's
-zustervondst op `PUitgaanSliderKaartComponent:179`, zelfde
-"kale-Row/Column-zonder-wrap"-familie maar niet dezelfde plek).
-- **Bestandspad-correctie (2026-08-10):** de hierboven genoemde
-  `horecagelegenheden_overzicht_widget.dart` bestaat niet meer als
-  zodanig — Bob's project splitst deze pagina inmiddels in
-  `HorecagelegenhedenOverzicht` (dunne `ConditionalBuilder`-wrapper,
-  `[If/Then/Else 2 Conditions]`) die naar
-  `horecagelegenheden_overzicht_page_data_type_widget.dart` of
-  `..._sort_page_widget.dart` doorschakelt. De Activiteiten-tab-Column
-  zit nu op regel ~277 van het `PageDataType`-bestand (structuur/getallen
-  overigens identiek: `Column(mainAxisSize: MainAxisSize.max)` →
-  `FutureBuilder` → `MasonryGridView.builder(shrinkWrap: true, physics:
-  const NeverScrollableScrollPhysics())`). Navigeer in de builder dus
-  naar `?page=HorecagelegenhedenOverzicht` (niet naar de
-  `PageDataType`/`SortPage`-varianten los) — de widget-tree toont dan
-  gewoon de juiste, actieve tak.
-- **Fix uitgevoerd in de builder (2026-08-10, Claude) — mechanisch,
-  bevestigd correct qua stappen, maar NIET bevestigd in de export (zie
-  blocker hieronder):** op de `Column` binnen `TabBar Page` (kind van
-  `TabActiviteiten`) bleek de Column zelf al binnen een bestaande
-  `Expanded(TabBarView(...))` te zitten (dus al bounded-height) — een
-  losse "Scrollable"-toggle op die Column zelf gaf zelfs een expliciete
-  **"Invalid Action"-foutdialoog** terug ("You can't set Expanded for a
-  widget if it's in a Column that doesn't have a defined Height. This
-  includes a Scrollable Column.") toen ik daarna ook Expanded op het
-  kind probeerde — nuttige bevestiging dat FlutterFlow deze combinatie
-  zelf detecteert en terugdraait. **Werkende combinatie (op de
-  `StaggeredView`-node zelf, kind van de Column, niet op de Column
-  zelf):** rechterpaneel → **Expansion → Expanded** (rechtse van de 3
-  iconen: None/Flexible/Expanded, in die volgorde — geen tooltip nodig
-  om te onthouden) + **Shrink Wrap → uit** + **Scrollable → aan**. Geen
-  foutdialoog bij deze combinatie, paneel toont "Synced"/"Saved",
-  waarde blijft staan na page-reload binnen dezelfde sessie.
-- **⚠️ BLOCKER — bevestigd niet-doorzettend naar de export (2026-08-10,
-  Claude):** ondanks bovenstaande drie toggles zichtbaar correct in de
-  builder (en blijvend zo na reload) én "Synced"-status zonder
-  foutmelding, lieten **drie onafhankelijke verse
-  `flutterflow export-code --as-debug`-runs** (over ca. 10 minuten,
-  dezelfde opzet als Bob's eigen `ff-run-fvm.sh` gebruikt) geen enkele
-  wijziging zien: `Column`/`MasonryGridView` in het geëxporteerde
-  bestand staan nog altijd exact zoals vóór de builder-edit
-  (`shrinkWrap: true`, `NeverScrollableScrollPhysics`, geen nieuwe
-  `Expanded`). **Sanity-check uitgevoerd:** de exportpijplijn zelf werkt
-  wél correct — dezelfde export toonde de al langer bevestigde
-  P0-6-hintText-fix (`d507d3b9`/`t8h5f8ir` in
-  `internationalization.dart`) gewoon goed. Ook een heel andere,
-  eenvoudiger wijziging in dezelfde sessie (P2-9's dode terug-knop op
-  Home, kale "Remove Widget"-actie) **wél** correct in de export
-  terechtgekomen — dus dit is geen algemene sessie-brede exportstoring,
-  het lijkt specifiek aan deze combinatie van property-toggles
-  (Expansion/Shrink Wrap/Scrollable op een `StaggeredView` diep genest
-  in een `TabBarView`) gebonden.
-- **Update 2026-08-10, later dezelfde sessie: Bob heeft de 3 toggles
-  ook zélf, met eigen muisklikken in zijn eigen browser gezet
-  (Expansion → Expanded, Shrink Wrap → uit, Scrollable → aan) — óók dat
-  kwam niet door in een verse export.** Dit sluit "Claude's
-  geautomatiseerde klik triggert geen echt change-event"
-  als verklaring uit: zelfs een echte handmatige muisklik in Bob's
-  eigen, ingelogde browser (bevestigd: `mcp__claude-in-chrome__*` draait
-  sowieso al in Bob's eigen Chrome, geen aparte sandbox) persisteert
-  deze specifieke combinatie niet. **Dit wijst nu sterk op een echt
-  FlutterFlow-platformprobleem** met deze property-combinatie op een
-  diep-geneste `MasonryGridView`/`StaggeredView` binnen een
-  `TabBarView`, niet op iets in onze workflow. **Nog te proberen (niet
-  meer door Claude gedaan deze sessie, tijd op):**
-  1. Check het Issues-paneel (rode teller rechtsboven) — een
-     analyzer-fout kan een stille opslag-blokkade veroorzaken (zelfde
-     patroon als in `CLAUDE.md` gedocumenteerd voor exports).
-  2. Browser-refresh vlak vóór het zetten van de toggles proberen,
-     zonder tussendoor iets anders te doen — mogelijk speelt de eerdere
-     "Invalid Action"-dialoog (zie hierboven) een rol in
-     state-corruptie die een refresh oplost.
-  3. **Alternatieve fix-route proberen:** i.p.v. de 3 losse toggles op
-     `StaggeredView`, de hele Column-inhoud **Wrap Widget →
-     SingleChildScrollView** (shrinkWrap/physics blijven dan op de
-     bestaande waarde staan — dat patroon werkt al elders in dit
-     project, zie de oorspronkelijke fix-beschrijving hierboven). Dit
-     is een structureel andere widget-tree-bewerking dan de
-     property-toggle die nu blijkt te haperen.
-  4. Als niets werkt: FlutterFlow-support contacteren met "widget
-     property change toont als opgeslagen in het paneel, maar bereikt
-     nooit View Code/export" — klinkt als een reproduceerbare bug aan
-     hun kant.
-- **Nieuwe theorie van Bob (2026-08-10): mogelijk speelt mee dat alle
-  6 StaggeredViews op deze pagina dezelfde generieke naam
-  "StaggeredView" dragen (geen custom naam) — misschien faalt de save
-  juist omdat er meerdere identiek-genoemde widgets op dezelfde pagina
-  staan, en werd de fix tot nu toe maar op 1 van de 6 (Activiteiten)
-  toegepast.** Deels onderzocht (Claude, 2026-08-10):
-  - **Widgets van dit type (geen Component) hebben geen losse
-    "Rename"-optie** — het contextmenu op de tree-rij biedt
-    Duplicate/Insert/Wrap/Replace/Remove/Comment/Copy Style/Copy
-    Code/Convert to Component/Save as Template, geen "Rename Widget".
-    Dubbelklikken op de widgetnaam bovenin het rechterpaneel opent
-    per ongeluk **"Convert to Component"** (nieuwe-component-dialoog) —
-    **niet gebruiken**, dat is een structureel andere, veel grotere
-    wijziging dan bedoeld (geannuleerd, geen schade aangericht).
-  - **"Value Key"-veld geprobeerd als alternatief voor een unieke
-    identiteit** — veld gevonden via de Search properties-zoekbalk,
-    maar het inputveld zelf rendert volledig buiten de geclipte
-    viewport (zie hieronder), dus niet in te vullen door Claude.
-  - **Poging om de fix ook op de Cultuur-tab te zetten (test: alle 6
-    tegelijk) liep vast op clipping** — ook na Bob's browser fullscreen
-    op een 4K-scherm bleef Shrink Wrap/Scrollable/Value Key buiten de
-    zichtbare/klikbare automation-viewport (bevestigd: het probleem zit
-    in hoe de browser-automation-brug de pagina ziet — vermoedelijk een
-    vaste virtuele CDP-viewportbreedte, los van Bob's fysieke
-    schermresolutie — niet in Bob's venstergrootte zelf, dus verder
-    fullscreen/resizen door Bob heeft geen zin). `StaggeredView` van
-    `TabCultuur` is wél betrouwbaar te **selecteren** (Widget Tree),
-    alleen de eigenlijke toggle-klik niet.
-  - **Widget Tree → `TabActiviteiten` → `TabBar Page` → `Column` →
-    `StaggeredView` staat al goed** (Expansion: Expanded, Shrink Wrap:
-    uit, Scrollable: aan — door zowel Claude als Bob bevestigd
-    zichtbaar ingesteld, zie hierboven).
-  - **Update 2026-08-10, definitieve uitkomst: Bob heeft de toggles
-    zelf op meerdere/alle tabs gezet — óók dat kwam niet door.**
-    Verse export ná Bob's wijziging: alle 6 `MasonryGridView.builder`-
-    instanties (regel 344/524/708/892/1076/1260) staan nog steeds op
-    `shrinkWrap: true` + `const NeverScrollableScrollPhysics()`, geen
-    enkele nieuwe `Expanded`. Sanity-check herhaald: de exportpijplijn
-    zelf werkt gewoon (P2-9's Home-knop-verwijdering staat nog correct
-    in dezelfde export). **Dit sluit de naamgevingstheorie definitief
-    uit** — of het nu 1 of 6 identiek-genoemde `StaggeredView`-widgets
-    betreft maakt niets uit voor de save. **Samen met de eerdere
-    uitsluiting van "Claude's automation triggert geen change-event"
-    (Bob's eigen handmatige klikken faalden ook) betekent dit: dit is
-    bevestigd een echt FlutterFlow-platformprobleem** met deze specifieke
-    property-combinatie (Expansion/Shrink Wrap/Scrollable op een
-    `MasonryGridView`/`StaggeredView` diep genest in een `TabBarView`),
-    onafhankelijk van wie er klikt, hoeveel widgets het betreft, of hun
-    naamgeving. **Resterende opties (niet meer geprobeerd deze sessie):**
-    1. Issues-paneel checken op een stille analyzer-blokkade.
-    2. De alternatieve **Wrap Widget → SingleChildScrollView**-route
-       proberen (structureel andere widget-tree-actie, mogelijk buiten
-       bereik van deze specifieke bug) — zie de oorspronkelijke
-       fix-beschrijving hierboven.
-    3. FlutterFlow-support contacteren: "widget property change (Column/
-       StaggeredView Expansion/ShrinkWrap/Scrollable, diep genest in een
-       TabBarView) toont als correct opgeslagen in zowel de builder-UI
-       als na page-reload, maar bereikt nooit View Code of
-       `flutterflow export-code`, ongeacht wie de wijziging maakt of
-       hoeveel widget-instanties het betreft" — met dit reproductiepad
-       als bewijs.
-- **Reproductierecept dat de race met Home's eigen overflow (P1-19)
-  vermeed (2026-08-09, definitief werkend — vervangt eerdere
-  R+deep-link-pogingen):** `flutter run` **direct starten met
-  `--route`** i.p.v. cold-start via `am start` ná een losse `flutter
-  run`/hot-restart. Dit zet Flutter's `defaultRouteName` al vóór de
-  eerste frame, dus go_router opent meteen de juiste pagina — Home
-  wordt nooit gebouwd, dus zijn eigen overflow (P1-19/P1-3-familie)
-  verbruikt de "één-volledige-dump-per-proces"-slot niet meer eerder:
-  ```
-  export PATH="/home/bob/fvm/bin:$HOME/.pub-cache/bin:$PATH"
-  fvm flutter run -d emulator-5554 --route "/horecagelegenhedenOverzicht?plaats=28666"
-  ```
-  (geen FIFO/`R`/deep-link-am-start meer nodig voor dít doel. Voor een
-  pagina die zelf niet los bereikbaar is met de juiste parameters via
-  een directe `--route`, blijft het FIFO/`R`-recept uit CLAUDE.md
-  nodig.)
-  **Bevestigd geprobeerd en verworpen:** `R` (hot-restart) + de
-  deep-link-`am start` vlak erna in één Bash-call (minimale sleep) —
-  een hot-restart reset altijd naar de `initialLocation`/Home, en de
-  daarna verstuurde deep-link-intent wordt door de al herstarte app
-  niet meer verwerkt (adb-warning "Activity not started, intent has
-  been delivered to currently running top-most instance" terwijl de
-  app toch weer op Home landde) — dus dit blijft Home's eigen overflow
-  eerst verbruiken. `--route` bij het opstarten zelf is de werkende
-  oplossing voor dit specifieke race-probleem.
-- **Hypothese uit 2026-08-05 (`HorecagelegenheidoverzichtKaartWidget`'s
-  `MediaQuery.sizeOf`-breedtekeuze) blijft weerlegd** — de daadwerkelijke
-  oorzaak is de ontbrekende scroll-wrapper hierboven, niet de
-  tekstkolom-breedtekeuze.
+*(P1-13 afgerond 2026-08-24 — Claude, sessie 46, builder + live device-run
+emulator-5556, profile mode. Root cause (kale `Column` + `shrinkWrap:
+true`/`NeverScrollableScrollPhysics()` op een `MasonryGridView` zonder
+begrensde ouder) bleek al gefixt op `horecagelegenheden_overzicht_widget.dart`
+(bijproduct van de P1-10-herbouw, commit `d35492a`) — dezelfde fix
+(Expansion=Expanded + Shrink Wrap uit + Scrollable aan op de
+`StaggeredView`-node, builder-native, geen custom code) nu ook toegepast
+op alle 6 tabs van de 2e variant `horecagelegenheden_overzicht_provincie_page_widget.dart`.
+Bevestigd via 2 losse verse exports (0 resterende
+`shrinkWrap`/`NeverScrollableScrollPhysics`-treffers) + `flutter analyze`
+(geen nieuwe errors) + een live app-launch op emulator-5556
+(`--route "/horecagelegenhedenOverzichtProvinciePage?plaats=28694"`,
+profile mode): Activiteiten-tab rendert en scrollt normaal, geen
+RenderFlex-overflow, geen exceptions in de log. Eerdere sessies liepen
+hierop vast door een bevestigd FlutterFlow-sync-probleem (edit leek
+opgeslagen, bereikte nooit de export) — dat trad deze keer niet meer op,
+mogelijk omdat de eerste succesvolle toepassing (Home/P1-10) het pad
+inmiddels vrijmaakte, of gewoon niet meer reproduceerbaar. Gecommit
+`59c6647`. Uit deze lijst verwijderd.)*
 
 
 *(P1-19 afgerond in de builder 2026-08-12 avond, maar **pas op
 *(P1-19 afgerond in de builder 2026-08-12 avond, maar **pas op
 2026-08-13 avond echt in deze repo gecommit** — de destijds
 2026-08-13 avond echt in deze repo gecommit** — de destijds