May 29th, 2026
New
Fixed

CareNova v1.1.0 is the first major feature update — shipping full SaaS multi-tenant architecture, invoice PDF export, clinic-scoped landing pages, and a set of stability and UX improvements across the platform.
Workspace isolation — each clinic runs in its own workspace; data, staff, and settings are fully scoped to the tenant with no cross-clinic leakage
Membership-gated dashboards — authenticated users only access clinic dashboards they are members of
Invalid or unknown workspace codes route to a safe clinic-unavailable state instead of ambiguous access
New clinics are no longer auto-linked to unrelated platform or demo operators by default
Platform / super-admin workspace entry — opening a workspace routes to the correct clinic dashboard with middleware targeting and staff-login fallbacks
Active workspace restoration on login — the system resolves the correct workspace from UserWorkspace membership, not just a cookie; returning users land in their dashboard, not onboarding
Workspace logout confirmation — confirm before signing out from the workspace top bar
Clinic staff management per workspace — add, update, and remove clinic staff from the workspace UI
Invoice PDF export — download a print-ready PDF per invoice directly from the invoice list actions
Bulk invoice PDF — select multiple invoices and download a single combined PDF, one invoice per page
Invoice row selection — checkbox per row, select-all for the current page, and bulk toolbar actions (download, delete, clear selection)
CSV export removed from the invoices toolbar in favor of PDF-based print workflows
Clinic-scoped landing URLs — middleware ensures all public landing routes include ?clinic=; cookie-based fallback when the query parameter is missing
Internal landing navigation preserves the active clinic query parameter across home, appointment, blog, and policy pages
Tenant-aware favicon metadata on landing routes — resolves per tenant instead of a single static app icon for all tenants
Landing Page Settings — server actions now resolve the active workspace clinic in SaaS mode so dashboard branding matches the public preview
Landing pages use cached, merged settings for performance and consistency with tenant branding
Dedicated clinic-unavailable experience when a workspace or clinic target cannot be resolved
Notification bell now shows an unread count badge — stays responsive to new items
Notification queries and mutations scoped to the active clinic
Clearer behavior when no active clinic is present
Admins can optionally enable auto-accept for new staff signups per clinic
When auto-accept is disabled, pending staff see a clear pending approval state during sign-in
Version tab now lists all releases from /versions/*.md — newest first, each expandable
Middleware logging includes request correlation identifiers for easier tracing
.env.example expanded with connection and migration guidance
Drizzle introspection uses a connection timeout to avoid hangs on bad endpoints
New and updated localization strings for invoice bulk actions, download flow, and common labels across all supported locales (en, fr, es, ar)
Dashboard sidebar top navigation group no longer uses a clinic-type overview banner label — section headers can be omitted for a cleaner layout
SaaS mode enforces workspace membership before serving any clinic-scoped dashboard experience
Cross-tenant dashboard access prevented — invalid workspace codes route to a safe state
Workspace isolation — new clinics no longer auto-linked to unrelated platform or demo operators
No mandatory database migration for this release — deploy using your normal checklist
After deploying, verify: workspace cookies, landing URLs with ?clinic=, invoice PDF generation (single and bulk), and Settings → Version changelog rendering
Bare landing URLs without ?clinic= are redirected via middleware and cookie fallback — existing bookmarks continue to work
Extended License holders: full SaaS mode and multi-tenant rights are now active