← Changelog
v2.7Feature18 April 2026
Public self-signup + admin kill-switch
/signup is now a four-step wizard that creates a TRIAL organisation and sends the OWNER invitation. Honeypot + per-IP rate limit. Kill-switch from admin if needed.
Major changes
- /signup wizard (4 steps): hotel details, OWNER user details, chosen trial plan, confirmation. Creates Organization + User + password invitation in one transaction.
- Anti-abuse: honeypot field + per-IP rate limit (Upstash Redis with in-memory fallback). Blocks bot signups without a visible captcha for real users.
- Admin kill-switch: SUPERADMIN can disable self-signup from /admin/signup with a toggle. Useful when we need to pause for capacity or plan iteration.
- Odoo Appointments link: if the user prefers an assisted demo instead of self-signup, the flow offers a link to an Odoo calendar (configurable from /admin/signup).
- DEMO email: clear invitation with token TTL, tenant branding when configured.
Other releases
- v2.9
Reservation engine V2 · staff full-window
The biggest shift of the year. /dashboard/book is now a three-column command center with two-phase commit saga, four-layer pricing, and automatic rollback. Roiback is the first adapter that writes to real hotels.
- v2.8
Metered billing + dark mode + Odoo fiscal
Stripe metered billing with threshold or cycle close. Odoo issues the Spanish fiscal invoice automatically. Dark mode across the app with no hydration flash.
- v2.6
Integrations marketplace · SUPERADMIN CMS
Integrations now live in a DB-editable table from /admin/integrations. Tenants can install / uninstall any adapter from a marketplace view with cards.