Bijgewerkt: 2026-08-04. Zie CLAUDE.md voor werkinstructies/conventies.
Elke openstaande taak hieronder is zelfstandig te begrijpen zonder de
chat gelezen te hebben waarin hij ontstond.
Formaat van elke taak: **P0-1 · Eigenaar: ...** als eerste regel
— een stabiel nummer (verandert niet als andere taken worden
afgerond/verwijderd) + wie 'm oppakt. Volgorde binnen elke prioriteit
= geschatte ernst/impact, hoogste eerst.
Eigenaar-waarden:
CLAUDE.md).⚠️ Voorkom dubbel werk: Bob start elke taak in een nieuwe, aparte chat — er kunnen dus meerdere sessies tegelijk actief zijn op hetzelfde project. Voordat je een taak oppakt: check of de Eigenaar-regel al "— bezig" zegt. Zo ja: niet zelfstandig ook gaan zitten werken aan hetzelfde bestand/component — vraag Bob eerst wie 'm afmaakt (dit gebeurde op 2026-08-04: twee sessies pakten onafhankelijk P0-2 op; Bob moest scheidsrechteren). Zet zelf "— bezig" in de Eigenaar-regel zodra je serieus aan een taak begint, en haal het weer weg (of verwijder de taak, zie hieronder) zodra je stopt.
Afronden: een volledig afgeronde taak wordt verwijderd uit deze lijst (niet gearchiveerd). Bij gedeeltelijke voortgang: taak laten staan met bijgewerkte inhoud die alleen het resterende werk beschrijft.
SSESS* staat al goed (bypass, eerste regel).
Werkhypothese: Cloudflare Bot Management behandelt FlutterFlow's
server-side traffic anders op basis van IP-reputatie/
TLS-fingerprint. Niet opnieuw diagnosticeren zonder navraag — check
eerst of Bob al verder is.P0-1 · Eigenaar: Bob (10 sec klusje) — status onbevestigd, zie
onder. Home-slider crasht (RangeError) bij 0 API-resultaten. Bob
koos: bij 0 resultaten component overslaan (niets tonen), geen
melding. CarouselSlider.builder met itemCount: 0 crasht. Native
fix gevonden: Carousel-widget (component HomeUitgaanSliderComponent
→ Widget Tree → ConditionalBuilder → If → Container → Carousel) →
rechterpaneel → "Empty List Widget" → vink "Show Empty List
Widget" aan → widget op een lege/onzichtbare placeholder zetten.
2026-08-04, na een verse export + builder-check: nog geen wijziging
zichtbaar — noch in de geëxporteerde code, noch in het "Empty List
Widget"-paneel zelf (geen "Show"-checkbox aangevinkt te zien). Mogelijk
is de klik niet aangekomen (zelfde rechterpaneel-clipping-risico als
waarom Claude 'm niet zelf kon doen, zie CLAUDE.md). Bob: kun je
nogmaals checken of de checkbox echt aanstaat?
P0-2 · Eigenaar: andere Claude-sessie — bezig. Foutafhandeling
ontbreekt op HorecagelegenhedenOverzicht. Niet oppakken vanuit deze
sessie of een nieuwe sessie zonder eerst bij Bob te checken of de
andere sessie nog bezig is. Bevinding van die sessie (accurater dan
eerdere aanname hier): het is geen "spinner blijft draaien"-bug maar
een crash — bij een mislukte API-call (statusCode: -1, jsonBody:
null) doet de code getJsonField(null, '$').toList() →
crash, op 6 identieke plekken in
lib/horecagelegenhedenoverzicht/horecagelegenheden_overzicht/horecagelegenheden_overzicht_widget.dart
(regels 327/511/695/879/1063/1247, telkens direct na de
!snapshot.hasData-check). Bob's antwoord blijft gelden: gewoon
skippen zodra er iets misgaat, geen melding/retry-knop nodig.
P0-3 · Eigenaar: Bob — geblokkeerd op designvraag. Hartje-icoon op gemeente. Bob koos: heart ergens anders dan de gemeente-dropdown zelf (die blijft ongewijzigd). 2026-08-04, Bob's antwoord: hartje naast de provincienaam én naast de gemeentenaam, in de titel. Bob wil dat elke pagina in de header de provincie- of gemeentenaam toont, zodat gebruikers altijd zien waar ze zitten. Nog te doen: Claude stelt een concreet voorstel op voor hoe dit in de gedeelde header verwerkt wordt (welke pagina's, welke plek exact, hoe de naam ophalen — zie de bekende valkuil hieronder) en legt dat voor aan Bob vóór het bouwen.
FFAppState().gemeenteSelectId) wordt doorgegeven als filter (bv.
plaats/townid param op PUitgaanPageWidget). GemeentenCall.
gemeenteName() in lib/backend/api_requests/api_calls.dart bestaat
al maar is ongebruikt.List<CustomDataType>-typed lookup function-argument (bv.
provincieNaamById/gemeenteNaamById in
lib/flutter_flow/custom_functions.dart, al gebouwd, compileert,
nog niet gekoppeld) — dat argument-bindingsdialoog loopt vast op de
geneste Set Variable-bug (zie CLAUDE.md). Simpeler: naam
vastleggen in een plain String App State-variabele op moment van
selectie i.p.v. 'm live op te zoeken.P0-4 · Eigenaar: Bob. Werkende login + favorieten — resterende deeltjes. Basis is af: login gekoppeld, wachtwoord-vergeten-flow, favorieten drawer-link + 3-tabblad-pagina, hartje op horeca-kaart + -detailpagina. Nog open:
lib/favorieten/favorieten_widget.dart.P0-5 · Eigenaar: Bob. Drupal: anonieme leestoegang onderzoeken voor browse-endpoints. Drupal-niveau, geen Claude-taak.
P1-1 · Eigenaar: Claude, ná P0-2. Loading/foutafhandeling-patroon uitrollen naar overige lijst-/detailpagina's. Zodra het patroon uit P0-2 (Horeca-overzicht) staat, hetzelfde toepassen op Event, HorecagelegenheidCurrent, sliders — nu nergens een echte foutstatus, alleen "geen data nog".
P1-2 · Eigenaar: Claude. Overflow op Home-pagina. Live
gereproduceerd tijdens testen (2026-08-03): RenderFlex overflowed by
7338 pixels in een Column zonder Expanded/scrollcontainer.
lib/uitgaanspaginas/home/home_widget.dart:316.
P1-3 · Eigenaar: Claude. Sliderkaartje: datumregel mist de
Flexible-wrap. Zelfde mechanische patroon als de twee regels eronder
die al gefixt zijn (consistentie) — bevestigd nog open.
p_uitgaan_slider_kaart_component_widget.dart (Row met
Icons.calendar_month + Text zonder Flexible).
P1-4 · Eigenaar: Bob. EstablishmentsCall crasht zonder
categoriefilter. horcat ??= null!; — bevestigd nog aanwezig, regel
lib/backend/api_requests/api_calls.dart. Fix zit vermoedelijk in de
FlutterFlow API-call-configuratie (default parameterwaarde), niet in
lokale code.P1-5 · Eigenaar: Bob. "Thuis bezorgen" koppelen aan een echt leverbaar-veld per horecagelegenheid. Wacht op Bob: eerst het API-endpoint aan Drupal-kant configureren. Daarna tonen/verbergen op basis van het echte veld i.p.v. de huidige dode tap.
P1-6 · Eigenaar: Bob. Letterlijke veldnaam i.p.v. nette placeholder
bij ontbrekende data — audit afgerond 2026-08-04, 13 treffers. Patroon:
valueOrDefault<String>(<bron>, '<default>') waarbij de default gelijk
is aan de veld-/functienaam. Fix is mechanisch (Default Value-tekst
aanpassen in de builder op het Text-widget), maar raakt waarschijnlijk
dezelfde "Set from Variable"-property als de Empty-URL-fix — zelfde
risico-inschatting als het CachedNetworkImage-patroon.
horecagelegenheidoverzicht_kaart_widget.dart:357/381/408 — titel/adres/plaatsevent_current_widget.dart:416 — nidevenement_info_widget.dart:134/156/211/236/291 — adres/plaats/entreeprijs/entreetoelichting/contactevenement_component_widget.dart:216/238 — title/eventDatep_uitgaan_slider_kaart_component_widget.dart:284
toont 'def' als datum ontbreekt; evenement_horecagelegenheid_widget.dart:406
toont 'establishmentnid'.'Evenement'
(kaart_tabel_uitgaan_comp_widget.dart:214,
kaart_tabel_uitgaan_s_comp_widget.dart:121) en 'Uitgaan'
(tag_categorie_component_widget.dart:111).P1-7 · Eigenaar: Bob. Account/profielscherm (wachtwoord wijzigen, uitloggen, account verwijderen). Bovenop de login/favorieten-P0-basis. Account verwijderen heeft mogelijk AVG-implicaties aan Drupal-kant.
P1-8 · Eigenaar: Claude, klein batchbaar in 1 sessie. Toegankelijkheid & navigatie, restpunten:
login_widget.dart (suffixIcon van
een TextFormField — standaard Tooltip-wrap werkt daar niet op, zie
CLAUDE.md; bevestigd nog open).nid).P1-9 · Eigenaar: Onbepaald. Visuele polish (los, per pagina): Uitgaan-pagina (typografie/contrast/spacing), Event-pagina, HorecagelegenhedenOverzicht, tabel-kaartje-afstemming met slider-kaartje, categorie-tag mag titel/datum niet overstemmen.
P1-10 · Eigenaar: Onbepaald, onderzoek nodig. Performance:
horecagelegenheden_overzicht(_sort_page/_page_data_type)_widget.dart.P1-11 · Eigenaar: Onbepaald, onderzoek nodig. Responsive/screensize-audit — o.a. het vaste 200×200px-tegelformaat in het venue-event-grid dat botst met de grid-berekening.
P2-1 · Eigenaar: Bob — testen in de API, komt terug. Datum-filter: Vandaag / Dit weekend / Deze week.
P2-2 · Eigenaar: Onbepaald. Google Maps-weergave van horecagelegenheden — bewust niet vóór livegang (Maps API-key + billing, onduidelijk of elke locatie al lat/long heeft, marker-UI — geen quick win).
P2-3 · Eigenaar: Onbepaald. "In de buurt"/geolocatie-browsen — aanvulling op het provincie/gemeente-model, geen vervanging.
P2-4 · Eigenaar: Onbepaald. Overige feature-ideeën, geen van alle uitgewerkt: "Wat is er vanavond"-melding/widget · deel-knop op eventpagina · "toevoegen aan agenda" (native kalender) · "events op deze locatie" prominenter op de horeca-detailpagina · reviews/ waardering voor horecagelegenheden (groot, vraagt nieuw Drupal content-type + moderatie, eigen project).
P2-5 · Eigenaar: Onbepaald. Ad-banners op horeca-overzicht, horeca-detail, event-detail; vaste regel: geen ads op locatie-kiezer/login/account.
P2-6 · Eigenaar: Onbepaald. Tekstzoeken op titel op de horeca-overzichtspagina (los van de Datatype/Sort-experimenten die Bob daar zelf op test — die zijn actief werk-in-uitvoering, geen dode code).
P2-7 · Eigenaar: Bob. Opschonen:
kaartTabelUitgaanComp + kaartTabelUitgaanSComp — Bob doet
dit zelf ("ik kijk er zelf naar").lib/kanweg opnieuw leegmaken indien teruggekomen na een latere
export-pull, plus eventuele nieuwe losse dode componenten in
lib/evenement/.PUitgaanPage's provincie/
gemeente-gescoopte categorieën zich tot elkaar verhouden.EventWidget-route: heraansluiten of definitief schrappen (losse
orphan-route).