Tendlo beslissingen — 26 juli 2026

Wat er op jouw beslissing wacht

Alles wat een keuze van jou vraagt, op één plek. Per punt: de vraag, waarom het uitmaakt, mijn advies en wat elke keuze betekent. Wat hier niet staat, is afgehandeld.

Waar staan we?Status en route naar TestFlight

Moet jij iets dóen?Jouw acties — de stappen die ik niet voor je kan zetten.

Bijgewerkt 27 juli 2026, gecontroleerd tegen Linear en tegen productie · bron: de beslislogs van 23, 25 en 26 juli

0 nu — niets blokkeert de testers vandaag 4 blokkeert werk 10 tickets wachten op de Triage-poort 3 vervolgtickets nog niet aangemaakt

1. Nu — dit blokkeert de testers vandaag

Agenda-backfill

GEDRAAID 27 julimigratie 0083

Uitgevoerd op productie na jouw toestemming. Agenda-afspraken die je vóór 25 juli "voor" een ander gezinslid maakte, waren voor dat lid onzichtbaar en genazen ook niet bij een gewone bewerking. Twee onafhankelijke review-lenzen vonden dit; voor taken was het al eens rechtgezet (migratie 0046), voor de agenda niet.

Telling vooraf
6 afspraken voldeden aan het predicaat, alle 6 van vóór de grens, 0 erna. Er bestond dus nog geen enkele bewuste privé-override op een afspraak — het schoonst denkbare geval.
Uitkomst
6 rijen omgezet naar gericht gedeeld; daarna 0 privé-afspraken met een ander betrokken lid over. De betrokken leden krijgen ze via de gewone sync binnen, zonder nieuwe build.
Wat de grens deed
De backfill raakt alleen rijen die vóór 25 juli voor het laatst zijn bijgewerkt. Dat is dragend: zonder die regel zou hij een bewuste privé-keuze wissen, wat met een negatieve controle in het testharnas is aangetoond. De grens blijft daarom in de migratie staan, ook nu hij gedraaid heeft.
Restrisico
De tijdstempel komt van de klok van het toestel. Een achterlopend toestel had ná 25 juli een echte privé-keuze met een oudere stempel kunnen wegschrijven. Gezien de telling (0 rijen ná de grens) is dat hier niet gebeurd.

Terugdraaien kan niet automatisch: na de backfill is een omgezette rij niet te onderscheiden van een bewust gedeelde. Dat staat zo in 0083_rollback.sql, in lijn met 0046.

Klusreeks zaaien

GEDRAAID 27 juliwacht op een buildmigratie 0082

Een eenmalige klus omzetten naar wekelijks sloeg niets op en gaf de eigenaar de melding "Geen rechten om te herplannen". De klus-module mocht het anker niet lokaal schrijven, en de server-RPC die het wél mocht, weigerde een rij zonder reeks. Een dichte deur aan beide kanten. Gevonden door de panel-review; het is dezelfde klacht als TEN-89, maar dan in de klusmodule.

Wat er nu draait
De server-guard laat een verse reeks toe: anker mag mee zolang er nog nooit iets is gerold, de tellers op nul stonden én niet meebewegen. Zodra er wél historie is, blijft de RPC verplicht. Nagerekend op productie dat die strengere regel eronder intact is.
Nog nodig
Een nieuwe build. De helft die de app zelf moet doen — het anker lokaal zetten in plaats van de RPC bellen — zit in de code maar staat nog niet op de toestellen. Tot dan blijft dit voor de testers kapot. Geen regressie: de oude app doet precies wat hij deed.
Bijvangst
Een nieuwe klusreeks aanmaken werkt hierna ook offline — het is één lokale schrijf geworden.

Vastgoedmodule ontstoren

OPGELOST 25 juliTEN-120

Opgelost: de update is uitgevoerd en je hebt bevestigd dat het op beide telefoons werkt. Het structurele deel (die twee kolommen client-side nullable met een mapper-default) is meegegaan in de ronde erna. Onderstaande diagnose blijft staan als naslag, want dit patroon komt terug bij élke volgende kolomtoevoeging op een gesyncte tabel.

De module opende leeg met "Null check operator used on a null value". Geen workaround, op alle toestellen.

Oorzaak
In cloud-modus bezit PowerSync het schema en is elke tabel een view; Drift draait daar géén migraties. De vier kolommen uit migratie 0076 komen dus nooit op het toestel aan. Postgres 11+ voegt een kolom mét default toe zónder de rijen te herschrijven, dus er is geen replicatie-event en PowerSync stuurt nog de oude JSON. Twee van die kolommen zijn client-side niet-nullable, dus de mapper crasht op een null.
Advies
Voer de update uit. Value-preserving, forceert herreplicatie, geen build en geen release nodig. De triggers zijn nagelopen en raken hier niet: de deel-guards keren vroeg terug bij een lege auth.uid(), de cascade doet niets als de deling niet wijzigt, en updated_at blijft ongemoeid.
Gevolg
Niets doen betekent dat vastgoed onbruikbaar blijft en dat elke volgende kolomtoevoeging op een gesyncte tabel dezelfde storing geeft.
curl -s -X POST "https://api.supabase.com/v1/projects/noeffngomyiglttudamq/database/query" \
  -H "Authorization: Bearer $SUPABASE_PA_APP" -H "Content-Type: application/json" \
  -d '{"query":"update public.properties set rental_mode = rental_mode"}'

Daarna blijft er structureel werk over: die twee kolommen client-side nullable maken met een default in de mapper. Dat kan met de normale ronde mee. Terugdraaien is niet nodig en niet verstandig — schemaVersion 55 ligt inmiddels onder 56 en 57.

2. De Triage-poort — 10 verrijkte tickets, jij bepaalt wat naar Todo gaat

Alle tickets zijn verrijkt met reproductie, oorzaak op bestand:regel, inschatting en een implementatie-brief. Ze staan in Triage tot jij ze vrijgeeft. Bijgewerkt 27 juli tegen Linear — de batch van 25 juli is inmiddels geaccepteerd, gebouwd en gedeployed, en staat nu op Testen.

TicketPriWaar het over gaatOmvang
TEN-139HighMeldingstermijn los van opzegtermijn (abonnementen + verzekeringen)middel
TEN-137HighSuggestielaag uitbreiden: "Nu doen" + "Bevestigen" + periode-groeperinggroot
TEN-138MediumApp-brede rij-conventie: tik opent, swipe doet de actiesgroot
TEN-136MediumGarantie: tikken op een item opent de bon nietklein/middel
TEN-123MediumAfspraak als "hele dag" en meerdaags (afgesplitst van TEN-121)middel
TEN-132MediumKlantenkaarten-modulegroot
TEN-133MediumRooster-modulegroot
TEN-70Medium"Klaar vandaag" toont ook wat gisteren is afgevinktklein
TEN-68LowBetaaldag alleen als getal in te tikken — overlapt TEN-131 (Todo), kan dicht
TEN-47LowNotities inklappen + rubriek hernoemenklein

Wat er in Todo staat en dus opgepakt mag worden

12 tickets

Deze heb je al vrijgegeven. Ze wachten op een fixer, of er loopt er een op.

TEN-43 · TEN-87 · TEN-99 · TEN-111 · TEN-116 · TEN-118 · TEN-120 · TEN-125 · TEN-130 · TEN-131 · TEN-134 · TEN-135

Let op
TEN-87, TEN-111 en TEN-118 zijn het Vermogen-programma. Die zijn door de ontwerp-gate (varianten-pagina) maar wachten nog op de zes open vragen die daar staan — bouwen vóór die antwoorden levert werk op dat herzien moet worden.
Ook
TEN-135 (swipe-uitrol) is overgenomen door TEN-138, dat tik-opent-item en swipe-doet-acties gecombineerd uitrolt. Zie punt 3 hieronder.

De geadviseerde vervolgtickets — drie zijn er inmiddels

jouw gate

Van de zes die de verrijkers adviseerden zijn er drie aangemaakt; drie liggen er nog. Zeg welke je wilt en ik maak ze aan.

Aangemaakt
TEN-139 meldingstermijn · TEN-137 suggestielaag · TEN-138 rij- en swipe-conventie. Alle drie staan in Triage en zijn verrijkt.
Nog niet
Back-up 2.0 — bijlagen mee-exporteren, versleuteld bestand, herstelwizard met samenvoeg-keuze. Het defect-deel zit in TEN-134 (Todo); dit is het vervolg daarop.
Nog niet
Klantenkaarten opsplitsen in kern, foto's en scannen — pas zinvol als je TEN-132 vrijgeeft.
Nog niet
Rooster opsplitsen in cyclus-model, conflictwaarschuwing en AI-herkenning — idem voor TEN-133.

3. Product en ontwerp — hier zit richting in, geen bug

Wat betekent "Voor wie? (niemand = hele gezin)"?

jouw keuzeuit de panel-review

Het label in de app belooft iets anders dan de app opslaat. Bij een taak of afspraak zonder iemand bij "Voor wie" staat er letterlijk "niemand = hele gezin" — en dat staat ook zo in de code van zowel het taak- als het agendamodel. Maar de opslag maakt zo'n item privé: alleen jij ziet het.

Vraag
Welke van de twee moet waar zijn? Betekent "niemand" dat het gezin het moet zien, of betekent het alleen dat niemand specifiek verantwoordelijk is — en klopt het label niet?
Context
Dit is niet nieuw en niet stuk gegaan door de wijziging van 25 juli. Wat er die dag wél gebeurde: een nieuwe test heeft dit gedrag vastgelegd als bedoeld ("blijft privé, resolver-default"), waardoor het moeilijker wordt om het later nog als fout te herkennen. Daarom leg ik het nu voor in plaats van het stil te laten staan.
Advies
Pas het label aan, niet het gedrag. "Voor wie" is een verantwoordelijkheidsvraag — dat is ook waarom een nieuwe taak standaard aan jezelf staat. Zichtbaarheid heeft zijn eigen keuze (de deel-picker). Als "niemand" plotseling "hele gezin" zou betekenen, dan wordt de meest voorkomende taak — eentje die je snel voor jezelf intikt en waar je de picker niet aanraakt — ineens gezinsbreed. Dat is de privacy-onvriendelijke kant van de twijfel.
Alternatief
Wil je juist wél dat "niemand" gezinsbreed betekent, dan is dat één regel in de vouw-laag plus een aanpassing van de deel-default voor taken. Zeg het en ik bouw die kant; het is niet meer werk.
Gevolg van niets doen
Het label blijft iets beloven wat niet gebeurt. Een tester die erop vertrouwt, rapporteert het vroeg of laat als bug — terecht.

AI-assistent: zoeken én aanmaken

nieuw 27 juliontwerp-gate

Je wilt de assistent kunnen vragen "wanneer is Robin jarig?" en "staat wasmiddel al op de lijst?", én kunnen zeggen "maak een afspraak op 12 augustus bij de tandarts". Uitgewerkt met varianten in ai-assistent-zoeken-en-aanmaken.html.

Wat je nog niet wist
De grounded assistent bestaat al en werkt voor zeven modules, met bevestigbare schrijfacties. Twee van je vier voorbeelden werken vandaag al. Hij is alleen onvindbaar: je komt er enkel via Instellingen → AI.
De kernkeuze
Hoe het model aan je gegevens komt. Nu gaat bij élke vraag een tekstdump van zeven modules mee — dat verklaart waarom "wanneer is afspraak X" faalt voor iets in november, en waarom de kosten meestijgen met hoe vol je app zit. Advies: lokaal zoeken en alleen treffers versturen, met gereedschap-aanroepen als aparte stap erna.
Vier open vragen
Mogen financieel en gezondheid mee · wat mag een vraag kosten · in welke modules mag de assistent schrijven · en mag hij ooit zonder bevestiging schrijven. Alle vier met advies op de pagina.

Datum- en tijdkiezer: acht vragen open, één ervan dringend

RICHTING BESLIST 26 juli8 open vragen

Beslist: wielen voelen het vertrouwdst, en waar een wiel niet kan (een periode) gaat de voorkeur naar D2. Op jouw vraag of een periode tóch met wielen kan is dat uitgewerkt in datum-en-tijdkiezer-varianten.html (v2): het kan, met W3 (start + duur) als hoofdstand. Het tijd-advies is daardoor omgedraaid van T1 naar T2.

Dringend — vraag 6: nachten of dagen?
De enige vraag hier met een stille databug erachter. De app hanteert nu twee conventies naast elkaar: een verhuurboeking rekent in nachten en verbiedt start = eind, een schoolvakantie rekent in dagen t/m en staat één dag toe. Kiest de component de verkeerde eenheid, dan schuift alles één dag op en zie je dat niet — de datum ziet er plausibel uit. Bij een verhuurboeking raakt dat je rendement, bij een medicijnkuur de laatste innamedag.
Advies: eenheid per aanroep vastleggen, niet app-breed. Boeking en vakantie = nachten, medicijnkuur = dagen t/m. En altijd de uitkomst in tekst tonen ("7 nachten · t/m ma 10 aug"), zodat een verkeerde eenheid opvalt in plaats van stil door te lekken.
Nodig vóór de tweede uitrolgroep begint.
De andere zeven
Klopt de periode-uitwerking · bouwen we D2's maandgrid erbij · klopt de verdeling wiel-versus-kalender · mag de gebruiker zelf wisselen en onthouden we dat · mag "duur" de tweede tijdkiezer vervangen · mag een periode een leeg einde hebben · weeknummers in het maandgrid. Elk met een advies op de ontwerppagina; ze zijn geen van alle blokkerend voor de eerste groep.
Omvang
Alles op wielen ~15-19 dagen; met het maandgrid erbij ~18-23 dagen. Dat verschil is de goedkoopste verzekering in het voorstel: daarna is de verdeling wiel/kalender een wijziging in één bestand in plaats van in 55 aanroepen.

Wordt Vastgoed "Vermogen"?

BESLIST 26 juliTEN-87 · TEN-118 · TEN-111

Beslist: ja — Vermogen wordt de overkoepeling, met vastgoed als één onderdeel, en alle vastgoed-specifieke functies (verhuurtype, boekingen, wisseldagen, bolletjes in de agenda, opzegtermijn-herinnering, objectkleur) blijven bestaan. Uitgewerkt met varianten in vermogen-ontwerpvarianten.html — daar staan ook de zes open vragen die nog een uitspraak vragen (waardebepaling, dubbeltelling van een financieringslening, bruto versus netto, doen auto's mee, doet een bankrekeningsaldo mee, per kijker of gezinsbreed) én de boekingsync via Uplisting.

Vraag
TEN-87 is volgens zijn eigen verrijking een programma, geen ticket: meerdere migraties, een nieuwe rekenlaag, AI-import en nieuwe overzichtsschermen. Eronder ligt de vraag of de module herpositioneerd wordt van Vastgoed naar Vermogen.
Advies
Knip de kleine veilige subset van TEN-111 eraf en geef die vrij; parkeer TEN-87 en TEN-118 tot je de Vermogen-vraag hebt beantwoord. Dan staat er niets stil op iets wat eigenlijk een productbesluit is.
Gevolg
Zonder besluit blijven drie tickets in Todo staan die geen fixer mag oppakken.

Één generiek cyclus-model, of twee keer bouwen?

bepaalt de aanpakTEN-133
Vraag
Het rooster-probleem en het ontbrekende herhaalschema van co-ouderschap zijn hetzelfde onderliggende probleem: een terugkerend dagpatroon per gezinslid dat na een aantal weken kan veranderen. Dat co-ouderschap-gat staat al gedocumenteerd als blokkerend voor drie andere items.
Advies
Bouw het cyclus-model één keer generiek. De bestaande herhalingsregels kunnen roterende patronen aantoonbaar niet — één weekdag-set voor alle weken en één tijd per reeks, dus "ma-do 8-17, vrij 8-13" is in één reeks structureel onmogelijk.
Gevolg
Kies je per module, dan bouwt Golf 3 hetzelfde mechanisme een tweede keer.

Klantenkaarten: drie nieuwe afhankelijkheden

kan laterTEN-132
Vraag
De app heeft nul barcode-capaciteit. Een foto van de kaart is géén oplossing — een kassascanner leest een glanzende, schuin gefotografeerde kaart niet, een uit het nummer gerenderde barcode wél. Dat vraagt twee lichte pure-Dart-pakketten plus één voor schermhelderheid.
Advies
Akkoord op de twee render-pakketten en de helderheid; camerascannen apart houden — dat is de enige zware toevoeging en vraagt ook een Android-camerapermissie die nu ontbreekt.
Let op
De snelkoppeling die Sandra vraagt bestaat al en hoeft alleen aangevinkt. Dat is geen ticket maar een testnotitie.

Swipe-uitrol: fase 0 blokkeert de rest

volgordeTEN-135 → TEN-138

Bijgewerkt 27 juli: TEN-135 staat in Todo, maar de uitrol is samengevoegd in het nieuwe TEN-138 (Triage) — tik opent het item, swipe doet de acties, per module-familie uitgerold. Het advies hieronder geldt onverkort voor dat ticket.

Goed nieuws
Je richting is al grotendeels gebouwd. SwipeActions bestaat sinds 15 juli en het e-mailclient-gedrag met subacties per kant zit erin en is getest — maar géén enkele plek gebruikt het. Voor dat deel is het puur uitrol.
Vraag
De actiepanelen komen alleen in de widgetboom als de rij al open staat, dus voor VoiceOver bestaat er bij een dichte rij geen knop en geen gebaar. En negen oppervlakken hebben helemaal geen rechten-check per item.
Advies
Doe de toegankelijkheidspatch als fase 0 en rol daarna uit. Sla je die over, dan vermenigvuldig je het probleem over 45 oppervlakken. En bouw de negen zonder rechten-check niet mechanisch om: eerst een gate, dan een swipe-actie — anders geef je iedereen verwijderrechten via een gebaar.

4. TestFlight — de build is klaar, drie verklaringen zijn aan jou

build ipa met export-method app-store loopt volledig door; er ligt een upload-klare, distributie-gesigneerde IPA. Er is niets geüpload. Het voorbereide werk staat op branch chore/testflight-voorbereiding, bewust niet gemerged omdat er beslissingen in zitten.

Doe dit eerst: exporteer het certificaat

eenmalig

Xcode heeft tijdens de proefbuild zelf een distributiecertificaat en twee provisioningprofielen in je Developer-account aangemaakt — een automatisch neveneffect van automatic signing, niet iets wat ik heb aangevraagd. De privésleutel zit in Xcode's beheerde opslag en is niet zichtbaar via security find-identity.

Advies
Exporteer hem als .p12 via Xcode → Settings → Accounts → Manage Certificates. Op een schone Mac ben je hem anders kwijt.

Export-compliance

blokkeert elke upload
Vraag
De branch zet ITSAppUsesNonExemptEncryption op false.
Advies
Laten staan. Dat is de standaardsituatie voor een app die alleen TLS, Keychain en LocalAuthentication gebruikt en geen eigen crypto meebrengt. Het is wel een verklaring op jouw naam, dus die zet ik niet voor je.
Gevolg
Zonder antwoord blijft elke build op "Missing Compliance" staan.

Privacy manifest: twee categorieën open

klein
Vraag
De reason-codes zijn niet gegokt maar uit het artefact afgelezen. Locatie en foto's/documenten zijn bewust opengelaten — dat vraagt een uitspraak over gegevensstromen, geen codebevinding.
Advies
Beide toevoegen.

Testers en Plus

voor de ronde
Vraag
Enforcement staat aan, dus een tester zonder rij in plus_entitlements loopt tegen een harde grens waar niets achter zit. De Paid Apps Agreement en de nog niet aangemaakte abonnementen blokkeren TestFlight niet — er is geen paywall die stukloopt.
Advies
Geef de testhuishoudens een admin-grant en laat enforcement aan. Anders test je precies de grens weg die je wilt valideren.

Buildnummer en CI

bevestigen
Buildnummer
Commitcount — 1232 op 27 juli (1202 toen de proefbuild liep). Dat loopt met elke commit op, dus het is geen vast getal maar een afleiding; alleen het mechanisme hoeft bevestigd te worden.
CI-upload
Nog niet. De CI is ubuntu-only en draagt niets bij aan het release-pad; lokaal bouwen met de poort is voor de eerste rondes beter te overzien. Er is bewust geen pipeline gebouwd.

5. Privacy en correctheid — hier staat iets onwaar

Concept-privacylabels, TestFlight-metadata en een concept-privacyverklaring staan klaar in docs/release/. Die verklaring is een juridisch document met een waarschuwing bovenaan: laat het toetsen.

Gezondheidsdata blijft niet op het toestel

eerst rechtzetten
Wat er staat
De architectuurdocumentatie zegt: "Health-reads blijven on-device; er gaat niets naar Tendlo-servers of derden." Voor de HealthKit-reads zelf klopt dat.
Wat er gebeurt
De daaruit afgeleide rijen — gewicht, gewichtsdoelen, dagelijkse stappen, stapdoelen — staan in het PowerSync-schema én vier keer in de server-side sync-config, en synchroniseren naar Supabase.
Advies
Kies: de sync beperken, of documentatie en verklaring eerlijk maken. Niet publiceren zolang die zin er zo staat — het raakt ook App Store-richtlijn 5.1.3.

Twee permissieteksten beloven te veel

klein
Spraak
De tekst zegt "spraakherkenning op je toestel", maar de on-device-vlag wordt nergens gezet — geen enkele treffer in de hele lib/.
Agenda
De tekst belooft dat Tendlo afspraken in je apparaat-agenda kan zetten, terwijl de koppeling read-only is.
Advies
Teksten aanpassen, of de belofte waarmaken. Het zijn beloftes in een systeemdialoog.

Analytics en crashrapportage starten vóór toestemming

voor publieke release
Situatie
PostHog ís consent-gated en blokkeert events, maar de SDK wordt onvoorwaardelijk geïnitialiseerd — dus bij elke koude start gaat er een request met IP heen. Sentry is helemaal niet consent-gated en heeft geen filter, terwijl debugPrint in release breadcrumbs wordt.
Ook
De Sentry-DSN wijst naar de VS, terwijl PostHog bewust op de EU staat. Dat is een doorgifte naar een derde land. Achterhaald sinds 13 augustus 2026: Sentry staat nu ook op de EU (de.sentry.io), dus die doorgifte bestaat niet meer. Zie TEN-228.
Advies
Voor de TestFlight-ronde binnen één gezin acceptabel, mits het in de verklaring staat. Vóór publieke release: initialisatie achter consent, en overweeg Sentry naar een EU-regio — nu is dat nog goedkoop.

Crashrapportage staat feitelijk uit

één regel

SENTRY_PA_DSN staat niet in je profiel, dus de define wordt niet meegegeven — ook niet in de builds die nu op de toestellen staan. Ik heb de DSN opgehaald en je shell-profiel niet aangeraakt.

export SENTRY_PA_DSN="https://196a6530429c584934afb5dfcefed31a@o106322.ingest.us.sentry.io/4511564907347968"

Achterhaald sinds 13 augustus 2026. Deze DSN wijst naar de VS-regio en is vervangen: crashrapportage loopt nu via de EU-organisatie aqua-it-bv-eu (de.sentry.io). Neem de regel hierboven dus niet meer over — de actuele waarde staat in het profiel. Zie TEN-228.

De back-up is onversleuteld en incompleet

zie TEN-134
Situatie
Platte JSON met gezins-, financiële én gezondheidsgegevens, zonder waarschuwing bij de deelknop. Bijlagen zitten er niet in, alleen metadata — na herstel dus dode verwijzingen.
Ook
iCloud is geen vergeten optie maar een afgewezen keuze: de database is expliciet uitgesloten van de iCloud-back-up. Gevolg dat de app nergens vertelt: wie zijn iPhone uit iCloud herstelt, krijgt zijn Tendlo-data niet terug.
Advies
Bestandsexport blijft de basis — past bij local-first en werkt in de gratis tier — maar dan versleuteld, met bijlagen. Automatische iCloud hoort ernáást, nooit als vervanging.

6. Klein en operationeel

Laura's telefoon heeft de build niet

blokkeert haar hertest

De installatie faalde op een vergrendeld toestel. Ontgrendel hem en houd hem op het netwerk, dan zet ik hem er in één poging op. Relevant omdat TEN-89 haar eigen melding is.

TEN-70 wacht op een vraag aan Laura

blokkeert dat ticket

De "klaar vandaag"-bak filtert in de code juist strak op vandaag; de done-filter lekt niet aantoonbaar. Er moet bij haar bevestigd worden of die items écht niet vandaag zijn afgevinkt.

Vraag
Stel jij die, of zet ik hem als comment op het ticket?

TEN-47: hoe hernoemen we de rubriek?

vraag aan Sandra
A
Één titel "Vakantiegeld & rapportgeld" — een kwartier werk, geen migratie. Aanbevolen.
B
Twee groepskoppen binnen de rubriek, op een veld dat er al is. Half uur, ook zonder migratie.
C
De rubriek écht splitsen — nieuwe code, datamigratie, route en hubtegel. Dan een eigen ticket.

TEN-119: laten of heropenen?

staat op Canceled

Advies: Canceled laten. De oorspronkelijke vraag is bedoeld gedrag en de oplossing loopt nu via TEN-127 en TEN-128. Heropenen is alleen zinnig als je de boodschappenlijst standaard verborgen wilt — dat is een default-wijziging, geen mechanisme-wijziging.

Panel-review op de twee riskantste wijzigingen

GEDAAN 26 juli

Uitgevoerd met drie onafhankelijke lenzen, allemaal met de opdracht de correctheid te weerleggen. Ze vonden drie reële defecten en één landmijn; alles is inmiddels gerepareerd of voorgelegd. Het volledige verdict, inclusief wat er is verworpen en waarom, staat in de beslislog van 26 juli.

Kort
Een gedeeld lid dat "voor wie" wijzigde, draaide stil de héle bewerking terug · privé plus een gedeeltelijke override liet een nieuw betrokken lid stil buiten de deling · legacy agenda-rijen genazen niet zelf · migratie 0046 was niet langer veilig om opnieuw te draaien. Alle vier opgelost.
Openstaand
Eén productvraag kwam eruit die jij moet beantwoorden: "niemand = hele gezin". Die staat bij punt 3 hierboven.

TEN-122: backfill van bestaande afspraken

GEDRAAID 27 juli

Mijn eerdere advies hier was "niet doen". Dat was verkeerd en ik zet het bewust laten staan zodat het spoor klopt. Ik ging ervan uit dat zulke rijen zouden genezen zodra iemand er een expliciete deel-keuze op maakte; de panel-review liet zien dat ze óók bij een gewone bewerking niet genezen. De backfill was dus niet optioneel maar nodig, en is als migratie 0083 uitgevoerd — zie punt 1.