|
@@ -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
|