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

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 1 месяц назад
Родитель
Сommit
9962a823ef
1 измененных файлов с 99 добавлено и 99 удалено
  1. 99 99
      TASKS.md

+ 99 - 99
TASKS.md

@@ -1,13 +1,41 @@
 # Uitgaanskrant — takenlijst
 # 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
 Zie `CLAUDE.md` voor werkinstructies/conventies. Elke openstaande taak
 hieronder is zelfstandig te begrijpen zonder de chat gelezen te hebben
 hieronder is zelfstandig te begrijpen zonder de chat gelezen te hebben
 waarin hij ontstond.
 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
 op verzoek ("pak nog wat taken op") eerst een code-only audit van
 `api_calls.dart` tegen de openstaande P1-7-taak (favorietenpagina) —
 `api_calls.dart` tegen de openstaande P1-7-taak (favorietenpagina) —
 **twee stale/onvolledige aannames in P1-7 gecorrigeerd, geen van beide
 **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
 `flutter analyze` (geen nieuwe treffers). Zie bijgewerkte P1-7
 hieronder voor de volledige stappen (herbruikbaar recept).
 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
 gebruikt omdat Bob meldde gelijktijdig zelf in een andere sessie aan de
 slag te gaan —
 slag te gaan —
 gedeelde Chrome dus niet ingezet):** `ff-session-check.sh` toonde 20
 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
   aanpassen lost daar de crash niet op, alleen de zichtbare tekst als
   hij (na de P1-15-fix) wél verborgen wordt.
   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,
 **P1-16 · Eigenaar: Bob (Firebase-koppeling is account-/builder-niveau,
 geen Claude-taak).** Geen crash-reporting/analytics (bv. Firebase
 geen Claude-taak).** Geen crash-reporting/analytics (bv. Firebase
@@ -1520,10 +1515,15 @@ code).
   - Verwijderen kan gewoon via de builder (API Calls-paneel → call
   - Verwijderen kan gewoon via de builder (API Calls-paneel → call
     selecteren → verwijderen) — geen custom code/lokale bestanden bij
     selecteren → verwijderen) — geen custom code/lokale bestanden bij
     betrokken, dus geen export-sync-risico zoals bij widget-edits.
     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-/
 **P2-8 · Opgegaan in P1-7 (2026-08-09).** Hartje-tap op gemeente-/
 provincienaam om te favorieten is nu onderdeel van de bredere
 provincienaam om te favorieten is nu onderdeel van de bredere