- /auth/login no longer asks for a myshopify domain (App Store 2.3.1). With
?shop= it still hands off to OAuth; otherwise it points to Shopify.
- Billing API charges are test charges outside production and on partner
development stores (shop.plan.partnerDevelopment), so reviewers can pick a
paid plan. Real shops are charged as before.
- SCREENCAST.md matches the recording.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Shopify deletes an app's validation and delivery/payment customizations on
uninstall. Datewise now remembers which ones were on (settings.checkoutFunctions,
kept in sync with Shopify whenever Settings loads) and switches them back on
when a shop reinstalls.
LISTING.md and alt text updated to what the listing form accepted (5 features,
20-char search terms, 64-char alt text, no "plan" outside pricing).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
DataAccessLog records bookings list/view/export and run-sheet views (actor, action,
target, time); pruned after 12 months by the worker; migration 0003.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Prisma extension seals booking name/email/phone/address and waitlist contacts with
AES-256-GCM on write and opens them on read (incl. nested reads)
- keyed-hash columns for exact email/phone lookups (privacy webhooks, booking search,
waitlist de-duplication); migration 0002
- tests prove only ciphertext is stored; privacy/terms/SECURITY.md updated to match
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>