Placeful 2.7 — fix audit capacità, hold promo senza scadenza e bundle privacy
In evidenza
- Fix dell'audit di capacità — chiuso l'audit di capacità round-2: 16 risultati corretti su ammissione prenotazioni, finestre flessibili, pool giornalieri, waitlist, contatori e superfici di lettura. Include il dossier completo in
docs/capacity-audit/2026-10-r2/e una matrice di race InnoDB a 13 scenari (CapacityRaceMatrixTest) ora eseguita in CI. - Hold promo-review senza scadenza — i locali possono impostare la finestra di revisione promo a
0così le prenotazioniPromoPendingtrattengono capacità senza scadenza (bookings.hold_never_expires); ogni contatore, sweep di scadenza, settle e ripristino conosce il flag. - Bundle privacy & GDPR — estensioni diritti DSAR (riapplicazione del registro di cancellazione, pipeline di eliminazione verificata, richieste di esportazione), superfici di opt-out marketing, ricevute di consenso, telemetria timbrature opt-in e scrubbing PII pianificato per ordini e metadati delle presenze.
- Trasparenza del service charge — i carrelli ordini degli ospiti mostrano ora il service charge del locale e il totale prima del checkout.
Correzioni
- Collasso di capacità da figli chiusi —
calculateCapacity()vende solo lo spazio sui figli aperti mantenendo la domanda prenotata dei figli chiusi;capacityIgnoringChildStates()conserva i valori indipendenti dallo stato per la visualizzazione eisSoldOut()non segnala più sold-out quando solo un figlio chiuso ha ridotto la disponibilità. - Race nel claim della waitlist — le transizioni di stato della waitlist sono aggiornamenti compare-and-swap atomici (stati sorgente validi nella
WHERESQL, scadenza offerta validata in SQL): due ospiti non possono più reclamare la stessa offerta. - FindSlot consigliava aree chiuse — FindSlot MCP e assistente ora filtrano i candidati su
isEffectivelyOpen(). - Eventi in corso nascosti — gli elenchi di disponibilità usano
eventNotEnded()invece didate >= now(), quindi gli eventi ancora in corso restano prenotabili. - Limiti numerici assistente fail-closed — input capacità/min/max non validi o fuori range vengono rifiutati invece di azzerare silenziosamente i limiti.
- Superfici flessibili — disponibilità OTA, Reserve Google, MCP e assistente leggono ora
flexibleServiceRemaining()e limiti topology-aware invece di valori cached o duplicati.
Documentazione
docs/capacity-audit/2026-10-r2/— case matrix, findings, race, regression e dossier di sign-off.