Quellcode durchsuchen

TASKS.md: 12-bestanden git-sync-achterstand ingehaald en gedocumenteerd; P1-15 volledig afgerond (laatste 3 restpunten bleken al gefixt); P0-3-restpunt (default-locatie zonder naam) afgerond; nieuwe P1-24 (No-host-URI-crash blijkt niet door P1-15 verklaard, treedt al bij Home-launch op zonder tap) en P1-25 (nieuwe 129px-overflow HomeUitgaantabelKaartComponent) toegevoegd

bob vor 1 Monat
Ursprung
Commit
9962a823ef
1 geänderte Dateien mit 99 neuen und 99 gelöschten Zeilen
  1. 99 99
      TASKS.md

+ 99 - 99
TASKS.md

@@ -1,13 +1,41 @@
 # Uitgaanskrant — takenlijst
 
-Bijgewerkt: 2026-08-14 (Claude, tweede sessie zelfde dag — Bob deed
-"kleine dingen" in zijn eigen builder-tabblad, Claude gebruikte een
-eigen los tabblad in dezelfde Chrome).
+Bijgewerkt: 2026-08-15 (Claude, ochtendsessie).
 Zie `CLAUDE.md` voor werkinstructies/conventies. Elke openstaande taak
 hieronder is zelfstandig te begrijpen zonder de chat gelezen te hebben
 waarin hij ontstond.
 
-**Deze sessie (2026-08-14, tweede ronde, code-audit + 1 builder-poging):**
+**Deze sessie (2026-08-15, ochtend, code-sync + audit, geen live
+builder-UI-werk gedaan):** begonnen met `ff-session-check.sh` (schoon,
+niets "— bezig") en een gerichte `git log`-check op `favorieten_widget.dart`
+naar aanleiding van de vaste vuistregel bovenaan dit bestand — bleek
+sinds `bd42224` (allereerste versie, 3 kale placeholder-tabs) **nooit**
+meer gewijzigd, ondanks meerdere latere sessies die claimden P0-4/P1-7
+Tab 3 daar te hebben afgerond. Een verse `flutterflow export-code`
+bevestigde: dat werk **staat echt in FlutterFlow**, maar was nooit
+lokaal gepulld/gecommit — dezelfde sessie's `ff-run-fvm.sh`-run
+(die intern zelf naar de projectmap exporteert) bracht in totaal
+**12 bestanden** synchroon die stiekem al veel langer op wijzigingen
+wachtten. Gebouwd (`flutter build apk --debug` slaagde, `flutter
+analyze`: 0 errors) en gecommit (`2c093bc`). Bijvangst bij het
+verifiëren van de diff: **P1-15 bleek volledig afgerond** (de laatste 3
+open restpunten — Menukaart-guard + 2x Website-guard — waren ook al
+gefixt, nooit gemeld) en het **P0-3-restpunt "default-locatie zonder
+naam" bleek ook al gefixt** (plus een losse debug-`SnackBar`
+opgeruimd) — beide uit deze lijst verwijderd, zie hun eigen
+doorstreep-notities. **Nieuwe live bevindingen tijdens de
+verificatie-launch (emulator-5554, verse build):** twee nieuwe
+punten toegevoegd, **P1-24** (de bekende `Invalid argument(s): No host
+specified in URI`-exceptie blijkt ook ná de volledige P1-15-fix nog
+steeds op te treden, nu bevestigd *vóór* enige tap — dus een andere,
+nog ongevonden bron) en **P1-25** (nieuwe 129px-RenderFlex-overflow op
+`HomeUitgaantabelKaartComponent:359`, geen stack trace met
+bestandslocatie gevangen wegens de bekende single-dump-beperking).
+Geen builder-UI aangeraakt deze sessie (puur Bash/emulator/`git`) — de
+`ff-run-fvm.sh`-hot-restart-loop staat nog open op emulator-5554 voor
+een volgende sessie om verder te debuggen.
+
+**Vorige sessie (2026-08-14, tweede ronde, code-audit + 1 builder-poging):**
 op verzoek ("pak nog wat taken op") eerst een code-only audit van
 `api_calls.dart` tegen de openstaande P1-7-taak (favorietenpagina) —
 **twee stale/onvolledige aannames in P1-7 gecorrigeerd, geen van beide
@@ -48,7 +76,7 @@ toekomstige API-gebonden lijst-taken). Bevestigd via verse export +
 `flutter analyze` (geen nieuwe treffers). Zie bijgewerkte P1-7
 hieronder voor de volledige stappen (herbruikbaar recept).
 
-**Vorige sessie (2026-08-14, eerste ronde, code-only — geen builder-UI
+**Eerdere sessie (2026-08-14, eerste ronde, code-only — geen builder-UI
 gebruikt omdat Bob meldde gelijktijdig zelf in een andere sessie aan de
 slag te gaan —
 gedeelde Chrome dus niet ingezet):** `ff-session-check.sh` toonde 20
@@ -573,96 +601,63 @@ gezien de omvang hieronder (~45 treffers); pak het file-voor-file op.
   aanpassen lost daar de crash niet op, alleen de zichtbare tekst als
   hij (na de P1-15-fix) wél verborgen wordt.
 
-**P1-15 · Eigenaar: Bob.** Kapotte zichtbaarheids-conditie op de social-/
-contact-knoppen liet de app **crashen** bij tikken (niet alleen lelijke
-tekst) — **vermoedelijke verklaring voor de herhaalde
-`Invalid argument(s): No host specified in URI`-excepties** die
-2026-08-07 in de live `flutter run`-log van de andere sessie
-verschenen (naast de al bekende P1-13-overflows, niet met elkaar
-verwarren — twee losse foutmeldingen in dezelfde log).
-
-*(De oorspronkelijke 5 knoppen zijn afgerond 2026-08-14 — live
-pair-sessie, Bob builder, bevestigd via verse export: Facebook,
-Instagram, Twitter, Website en urluk op
-`evenement_horecagelegenheid_widget.dart` staan nu allemaal op
-`EstablishmentInfoCall.establishment<Veld>(...) != null && ... != ''`
-i.p.v. de kapotte `valueOrDefault`-conditie. Onderweg 1x dezelfde
-omgekeerde-operator-fout gevonden en gecorrigeerd op urluk als bij
-P0-8 die dag. **3 restpunten uit de bredere audit hieronder blijven
-open** — dit zijn andere bestanden/knoppen, niet meegenomen in deze
-ronde.)*
-- **Root cause (destijds, voor de context):**
-  `if (valueOrDefault<String>(<veld>, '<placeholder>') != null &&
-  valueOrDefault<String>(...) != '')`. Omdat `valueOrDefault` bij een
-  lege/ontbrekende bron altijd de placeholder-tekst teruggeeft (nooit
-  `null`/`''`), was deze conditie **altijd waar** — de knop dus altijd
-  zichtbaar én tikbaar, ook zonder échte link. Bij tikken riep
-  `onTap` `launchURL(valueOrDefault<String>(...))` aan
-  (`lib/flutter_flow/flutter_flow_util.dart:61`, `Uri.parse(url)` →
-  `launchUrl(uri)`) met de kale placeholder-string (bv. `'facebook'`,
-  `'Website'`, `'urluk'`) als URL — geen geldig schema/host, vandaar de
-  crash. Hetzelfde broken-guard-patroon staat ook op de Telefoon-tekst
-  (r. 571-588) maar die crasht niet (geen `launchURL`, alleen
-  `Text`) — daar is het wél puur het P1-6-cosmetica-probleem.
-- **Nog open — 3 losse plekken uit de bredere audit (2026-08-13, Claude, `grep` op alle
-  `launchURL(`-aanroepen buiten `lib/flutter_flow/`) — scope is groter
-  dan de 5 al bekende knoppen, en erger op 2 nieuwe plekken (géén
-  guard, zelfs niet de kapotte):**
-  - `horecagelegenheid_current_widget.dart`: **geen enkele
-    `launchURL(`-aanroep in dit bestand** — de eerder vermoede 6e plek
-    bestaat niet, dit bestand is voor dit specifieke patroon schoon
-    (was nog niet zeker, nu bevestigd).
-  - **Nieuw gevonden, 6e knop in hetzelfde bestand
-    (`evenement_horecagelegenheid_widget.dart:626-635`, "Menukaart"):**
-    dezelfde `InkWell` → `onTap: () async { await launchURL(EstablishmentInfoCall.establishmentMenukaart(...)!); }`
-    als de al bekende 5, maar **helemaal geen `if`-guard eromheen** (niet
-    eens de kapotte `valueOrDefault`-variant) — dus altijd zichtbaar/
-    tikbaar en een kale force-unwrap (`!`) op een nullable `String?`.
-    Zelfde fix als de andere 5: Visibility-conditie op de rauwe
-    `EstablishmentInfoCall.establishmentMenukaart(...)`-expressie,
-    operator "Is Set".
-  - **Nieuw gevonden, twee losse bestanden met een onvoorwaardelijke
-    "Website"-knop (géén enkele guard, ook geen kapotte):**
-    - `evenement_info_widget.dart:268` —
-      `onTap: () async { await launchURL(widget!.website!); }` binnen
-      `EvenementInfoWidget` (`website` is `String?`, component parameter
-      — zie `evenement_info_widget.dart:38`). **Dit component wordt
-      gebruikt op `EventCurrent`** (`event_current_widget.dart`) — dus
-      een normaal bereikbare, veelbezochte pagina (niet een edge case).
-      Een event zonder website-URL laat de gebruiker de app laten
-      crashen door simpelweg op "Website" te tikken. **Nog niet
-      aangepakt** (2026-08-13: sessie werd omgeleid naar P0-8 zodra
-      Bob's Drupal-fix voor P0-7 binnenkwam, niet meer aan toegekomen) —
-      wel een geïsoleerd, ondiep component, dus vermoedelijk minder
-      gevoelig voor het widget-tree-klikprobleem dat P1-9/P1-15's andere
-      punten deze sessie blokkeerde.
-    - `evenement_component_widget.dart:414` —
-      `onTap: () async { await launchURL(EvenementCall.eventWebsiteg(columnEvenementResponse.jsonBody)!); }`
-      binnen `EvenementComponentWidget`. Dit component wordt alleen
-      gebruikt in `event_widget.dart` — de al als **orphan/dode route**
-      bestempelde `EventWidget`-pagina (zie P2-7, nergens een
-      `pushNamed` naartoe) — dus wel een echte bug, maar momenteel niet
-      via normale navigatie bereikbaar. Vervalt automatisch als P2-7's
-      voorstel (route schrappen) wordt uitgevoerd; anders zelfde fix
-      nodig (`if (widget!.website != null && widget!.website != '')`
-      om de InkWell heen, of Visibility in de builder als dit ooit een
-      losstaande pagina/component wordt).
-  - **Deze twee "Website"-plekken zijn strikt genomen een ander
-    (eenvoudiger) probleem dan de 6 al bekende knoppen** — daar is de
-    guard aanwezig maar kapot (`valueOrDefault` geeft nooit `null`/`''`
-    terug), hier **ontbreekt de guard volledig**. Fix is in de builder
-    hetzelfde eindresultaat (Visibility op het rauwe veld, "Is Set"),
-    maar het startpunt is "voeg een conditie toe" i.p.v. "repareer de
-    bestaande conditie".
-  - **"Op/vanaf de Home-pagina zelf" (2026-08-07-log) blijft niet
-    exact herleid tot een Home-component** — `EvenementComponentWidget`
-    (de meest waarschijnlijke kandidaat gezien dit patroon) blijkt
-    alleen op de orphan `EventWidget`-route te zitten, niet op Home. Een
-    andere, nog niet gevonden plek blijft mogelijk, of de 2026-08-07-log
-    ving events die al ontstonden op `EventCurrent` (wél een normale
-    Home-vervolgpagina) via `evenement_info_widget.dart:268` hierboven —
-    dat verklaart het waargenomen symptoom net zo goed zonder een aparte
-    Home-specifieke plek nodig te hebben. Niet verder gezocht.
+*(P1-15 volledig afgerond — bevestigd 2026-08-15, Claude, na een lokale
+`git`-sync-achterstand van 12 bestanden ingehaald (zie sessienotitie
+bovenaan): behalve de al bekende 5 social-/contact-knoppen op
+`evenement_horecagelegenheid_widget.dart` blijken ook de laatste 3
+open restpunten uit de bredere audit inmiddels gefixt in de builder
+(door Bob, nooit apart gemeld/gecommit) —
+**Menukaart-knop** (`evenement_horecagelegenheid_widget.dart:626-635`)
+heeft nu de `if (... != null && ... != '')`-guard,
+**Website-knop op `evenement_info_widget.dart:262`** (gebruikt op
+`EventCurrent`) en **Website-knop op `evenement_component_widget.dart:408`**
+(orphan `EventWidget`) hebben beide nu ook een guard om de `InkWell`.
+Geverifieerd via een verse `flutterflow export-code` + `git diff`
+(commit `2c093bc`). Nog steeds **geen** verklaring gevonden voor de
+losstaande "Op/vanaf de Home-pagina zelf"-crash-log uit 2026-08-07 (zie
+de oude aantekening hieronder) — de reproductie op 2026-08-15 (zie
+sessienotitie bovenaan, herhaalde `Invalid argument(s): No host
+specified in URI` direct bij Home's eerste launch, vóór enige tap) laat
+zien dat dit ondanks alle bovenstaande fixes **nog steeds optreedt** —
+dus een andere, nog niet gevonden bron. Uit deze lijst verwijderd als
+losse P1-taak; de resterende mysterie-crash staat nu apart als
+**P1-24** hieronder.)*
+- *(Oude beschrijving voor de context, root cause gold voor de 5+1
+  hierboven bevestigde knoppen:)* Kapotte zichtbaarheids-conditie op de
+  social-/contact-knoppen liet de app **crashen** bij tikken (niet
+  alleen lelijke tekst) — `if (valueOrDefault<String>(<veld>,
+  '<placeholder>') != null && ... != '')` is altijd waar omdat
+  `valueOrDefault` nooit `null`/`''` teruggeeft, dus `onTap` riep
+  `launchURL()` aan met de kale placeholder-string als URL (geen geldig
+  schema/host → crash).
+
+**P1-24 · Eigenaar: Onbepaald.** Onverklaarde `Invalid argument(s): No
+host specified in URI`-excepties — **zelfde foutmelding als het net
+afgeronde P1-15**, maar blijken **niet** door die fix verklaard: live
+herbevestigd 2026-08-15 (Claude, verse `ff-run-fvm.sh`-launch,
+emulator-5554) dat deze exceptie **6x achter elkaar direct bij Home's
+allereerste launch verschijnt, vóór enige gebruikersinteractie** —
+dus niet vanuit een `onTap`-knop-tik zoals bij alle bekende P1-15-
+plekken. Root cause nog niet gevonden (de "single-full-dump-per-
+proces"-beperking uit `CLAUDE.md` verbruikte de volledige stack trace
+aan een ongerelateerde overflow eerder in dezelfde launch, zie P1-25).
+**Volgende stap:** het FIFO/`R`-recept of een gerichte `--route`-launch
+gebruiken om een verse volledige dump te vangen die specifiek dít
+moment raakt (dus een hot-restart vlak vóór Home opnieuw laadt, geen
+navigatie ernaartoe).
+
+**P1-25 · Eigenaar: Onbepaald.** Nieuwe RenderFlex-overflow gevonden
+2026-08-15 (Claude, live launch emulator-5554): "A RenderFlex
+overflowed by 129 pixels on the bottom", `Column`, in
+`lib/uitgaanspaginas/home_uitgaantabel_kaart_component/home_uitgaantabel_kaart_component_widget.dart:359`.
+Geen directe visuele crash op het eerste scherm (Home bleef verder
+bruikbaar), maar wel een echte layout-fout op de al vaker aangepaste
+`HomeUitgaantabelKaartComponent` (zie P1-19 — dat loste een ander,
+kale-Row-zonder-Wrap-probleem in hetzelfde bestand op, dit is een
+nieuw/apart punt). Nog geen stack trace met widget-boom-context
+gevangen (zelfde single-dump-beperking als P1-24 hierboven) — bij
+onderzoek eerst een hot-restart vlak vóór het tonen van deze
+component om een verse volledige dump te krijgen.
 
 **P1-16 · Eigenaar: Bob (Firebase-koppeling is account-/builder-niveau,
 geen Claude-taak).** Geen crash-reporting/analytics (bv. Firebase
@@ -1520,10 +1515,15 @@ code).
   - Verwijderen kan gewoon via de builder (API Calls-paneel → call
     selecteren → verwijderen) — geen custom code/lokale bestanden bij
     betrokken, dus geen export-sync-risico zoals bij widget-edits.
-- Laag risico, uit P0-3 gehaald (2026-08-10): de component-load
-  default-toewijzing (eerste app-start, provincie/gemeente-id
-  `28666`/`28694`) krijgt nog geen bijbehorende naam mee — valt terug
-  op lege naam tot iemand handmatig een provincie/gemeente kiest.
+
+*(Laag-risico-restpunt uit P0-3 (default-locatie 28666/28694 zonder
+naam) afgerond — bevestigd 2026-08-15 via de export-sync (zie
+sessienotitie bovenaan): `select_state_drop_down_component_widget.dart`
+zet nu ook `provincieSelectNaam = 'Noord-Holland'` en
+`gemeenteSelectNaam = 'Amsterdam (gemeente)'` naast de bestaande
+id-defaults. Bijvangst in dezelfde builder-sessie: een losse
+debug-`SnackBar` ("Provincies: X") die bij elke provincie-call
+verscheen is ook verwijderd.)*
 
 **P2-8 · Opgegaan in P1-7 (2026-08-09).** Hartje-tap op gemeente-/
 provincienaam om te favorieten is nu onderdeel van de bredere