v0.14.37
Appointment cases, a single override reason, and translated error messages
This release introduces appointment cases to group a client's related visits and track progress, brings a single override reason to appointment changes, and improves security and translated error messages across the admin and client portals.
Features
- Appointment cases: group a client's related appointments under one case (for example “Left knee · post-ACL”), see progress like “8 of 12” on every appointment, and close a case with an outcome that locks its appointments from further changes.
- Case documents and details: case information is available from the client's Appointments tab, including a dedicated case view, linked documents, and a case column on appointment lists and calendars.
- One reason for every override: when a staff member with override permission changes a past appointment, overrides a price or status, reopens a closed case, or resolves a scheduling conflict, they now give a single reason that covers the whole change instead of filling in several separate fields.
- Move closed-case appointments on the board: staff with override permission can now move a closed-case appointment on the scheduling board by providing a reason, instead of the card being read-only.
- Clearer audit log colours: the activity log now shows consistent, easier-to-distinguish colours for each category, and the legend matches the colours shown in the table.
Fixes
- Translated error messages: when a link or request contains an invalid reference (for example a broken booking link), the error message now appears in the reader's own language with a clear next step, instead of always in English.
- Booking verification codes: fixed a rare timing issue that could make a correctly typed verification code during booking appear as “expired” even though it was entered in time.
- Online self-service accuracy: the client portal and booking management link now correctly hide changes that are not allowed (for example when a staff member is no longer active) and show the right explanation instead of a misleading message.
- Wait-time messages: messages that ask you to wait before trying again (for example after too many attempts) now show the correct wait time in your own language.
- Voice Lab provider selection: fixed an issue in the AI voice testing tool where certain provider and model combinations could not be selected at all; unavailable combinations are now clearly greyed out with an explanation.
Security and reliability
- Stronger data isolation: additional safeguards reduce the private data kept between requests and better protect sensitive information cached by the system.
- Protected case and document access: tightened checks ensure that a request for a case or document you should not be able to see never reveals whether it exists.
- More resilient sign-in and request handling: hardened safeguards make sign-in and request processing more resistant to automated abuse.