New features, improvements and fixes in each TherapyCRM release.
v1.0.9 ·
faster, safer, repeatable releases
TherapyCRM 1.0.9 standardizes how every change is validated and promoted. Pull requests receive one consistent set of quality and security checks, release candidates are exercised in staging, database changes are rehearsed on a fresh production-derived copy, and production receives the exact immutable image already verified upstream.
New features
Every change now follows one protected promotion path from a feature branch through develop and main before production
Essential end-to-end tests protect pull requests while the complete suite runs nightly and against the verified staging release candidate
Database migrations are rehearsed on a fresh production-derived Neon branch before production approval
Improvements
One stable required check replaces overlapping branch-specific validation workflows
The same content-addressed container image is promoted through environments instead of being rebuilt for production
Deployment verification now confirms the exact image digest, application version, rollout readiness, health, readiness and public app information
Release notifications are published only after the production rollout has been verified
Bug fixes
Prevented the GitOps application-image update from accidentally changing the Playwright runner image
Prevented disposable migration-test databases from colliding when workflow runs overlap
Removed production test-bypass controls so every release follows the same gates
Breaking changes
No existing API contract, clinical workflow or tenant data is changed by this release
Production releases now require a main-branch release candidate and protected approval
v1.0.8 ·
scheduling accuracy, safer staff invitations, and optional consent enforcement
TherapyCRM 1.0.8 collects the fixes from a full acceptance pass over scheduling, clinical setup, billing and accessibility, and adds an optional practice setting that requires client consent before an active client can be created. New practices now receive their complete clinical library at sign-up, recurring appointments keep the correct local time across daylight-saving changes, and staff invitations arrive as a single-use set-password link instead of a temporary password.
New features
Practice owners can require treatment, HIPAA and PIPEDA consent before an active client is created, from Settings then Security. The setting is off by default and never changes clients you already have
New practices are provisioned with the full clinical library — goals, interventions and assessments — ready to use from the first sign-in instead of appearing only after the library page is first opened
Invoice creation accepts an Idempotency-Key header so a retried or duplicated request returns the original invoice instead of billing twice
Improvements
Recurring appointments hold their local start time across daylight-saving changes, so a weekly 2pm session stays at 2pm before and after the clock change
Waitlist matching evaluates preferred days and time windows in the practice timezone, so clients with a preferred window are no longer skipped when a slot frees up
Screen-reader users hear an unread count on the notifications bell, and the list sort control keeps its name on small screens
Unread badges meet the AA colour-contrast minimum in both light and dark themes
Page headings follow a correct outline, so screen-reader and keyboard navigation by heading works predictably
Client intake shows the outstanding required fields directly on the review step instead of only in a tooltip
Practice currency is derived from the country chosen at sign-up, so Canadian practices are created in CAD
New practices email portal invitations by default while automated notifications stay opt-in
Bug fixes
Fixed recurring appointment series drifting by an hour once the series crossed a daylight-saving boundary
Fixed waitlisted clients with a preferred time window being passed over when a matching slot was cancelled
Fixed an appointment being able to be rescheduled backwards into the past, which distorted billing periods and utilization reporting
Fixed database constraint conflicts returning a generic error instead of a clear message, including duplicate records, duplicate funding enrolments, and funding histories that must be retained
Fixed edits to a signed or in-review progress note returning a server error rather than a clear explanation that the note is locked
Fixed two starter assessments being offered for assignment although they had no capture form
Breaking changes
No existing client, appointment, progress note, invoice or funding record is modified by this release
Consent enforcement is disabled for every existing and new practice and only applies to clients created after an owner enables it
Staff invitations and administrator re-invitations no longer email a temporary password; recipients set their own password through a single-use link
No existing API contract is removed
v1.0.7 ·
connected home practice and secure digital forms
TherapyCRM 1.0.7 adds a managed Home Practice Library with automated adherence reporting, clearer portal payment-plan schedules, and a complete typed-form workflow from practice-authored templates through staff or guardian completion, clinical review, secure attachments, and publication.
New features
Practice administrators can build and manage reusable Home Practice activities, cadence rules, reminders, overdue prompts, adherence percentages, and engagement reports
Guardians can see payment-plan totals, installments, payment status, balances, and currency-consistent schedules from the client portal
The typed form builder adds email, phone, time, multi-select, tags, checkboxes, repeating groups, display sections, and validated conditional logic
Published form versions can be assigned to staff or portal respondents with due dates, instructions, reminders, draft saving, return notes, resubmission, acceptance, and cancellation
Secure attachment fields support configurable image and document policies, private uploads, malware scanning, revision-aware review, audited downloads, and committed-record retention
Reviewers can inspect attachment filenames and scan status, return a response for correction, approve it, and deliberately publish the resulting clinical document
Improvements
Home-practice occurrences use frozen timezone-aware due windows, replay-safe materialization, deduplicated reminders, and 7-to-90-day engagement reporting
Form responses stay pinned to the exact published template version and preserve an append-only assignment and attachment event trail
Staff and guardian response editors share the same typed validation, responsive layout, attachment policy, and revision behavior
Document review decisions now update the linked form assignment in the same database transaction and immediately clear stale workspace caches
Review screens and PDF summaries represent repeating values, conditional fields, no-value display blocks, and attachment manifests consistently
Interrupted attachment scans are recovered by the supported form-assignment reminder job with bounded retries and durable scan evidence
Bug fixes
Fixed document review approval leaving a linked form assignment in a stale needs-review state
Fixed returned form responses retaining stale reviewer text after a later revision was loaded
Fixed completed form details exposing obsolete review actions from an infinite client cache
Fixed direct or reloaded Forms workspace links losing the assigned-forms scope
Fixed portal response mutations reporting success before refreshed detail and list state were available
Fixed payment-plan displays omitting their authoritative currency and installment context
Breaking changes
Database migrations 1073 through 1077 must complete before this application version serves production traffic
Production attachment uploads require durable private media storage and an available ClamAV daemon configured through CLAMAV_HOST
The home-practice and form-assignment reminder jobs must have exactly one active production scheduler
No existing form, document, home-practice, invoice, or portal API contract is removed
v1.0.6 ·
safer clinical billing and reliable session capture
TherapyCRM 1.0.6 introduces a practice-owned billing service catalog for therapy and non-therapy charges, strengthens assessment and session billing provenance, adds clinician-confirmed mastery decisions, and delivers replay-safe offline clinical session capture with practice-authored prompt hierarchies.
New features
Practice administrators can manage a dedicated billing service catalog for therapy sessions, assessments, documentation, reports, forms, and other chargeable work
Therapy types can map to catalog services while retaining their scheduling purpose, and appointments and completed clinical sessions carry their exact billing-service provenance into invoice drafts
Assessment billing now requires an approved or published clinical capture and creates replay-safe catalog-backed invoice drafts
Qualified clinicians can confirm mastery with a rationale, evidence window, published-document references, and a frozen analytics snapshot
Session Runner now protects drafts and completed sessions in an encrypted on-device queue, restores work after refresh, and safely synchronizes when connectivity returns
Practice Settings now supports ordered prompt-hierarchy authoring, publishing, retirement, versioning, and exact assignment to data-collection templates
Improvements
Assessment and behaviour-workflow stages now use stable published template family and version references instead of mutable template names
Session completion is atomic across all collected goals and uses payload-sensitive replay receipts to prevent partial or duplicate clinical records
The same versioned session-sync contract is available to future iPhone and iPad clients while keeping signing, approval, mastery confirmation, and billing decisions online
Prompt buttons display the practice-defined codes, names, order, and colors while storing an immutable hierarchy snapshot with each clinical record
Clinical workflow, assessment, billing, and compliance routes now honor independent practice feature gates
Notification digests and clinical workflow retries are registered in the supported scheduler manifests
Bug fixes
Fixed document persistence rejecting valid prompt codes supplied by a template's pinned prompt-hierarchy version
Fixed protected offline sessions showing stale queue status after a synchronization conflict
Fixed template renames breaking new assessment assignments or behaviour-workflow stages
Fixed ordinary goal updates being able to mark a goal mastered without a qualified clinician decision and evidence record
Fixed retries creating duplicate assessment or session invoice drafts
Fixed billing screens depending on therapy types for charges that are not therapy services
Breaking changes
No breaking API changes for existing web clients
Database migrations 1065 through 1072 must complete before this application version serves production traffic
Future native clients should use the versioned mobile clinical-session contract and maintain a Keychain-backed encrypted local queue
v1.0.5 ·
stronger account security and clearer workspaces
TherapyCRM 1.0.5 adds authenticator-app multi-factor authentication across practice and platform accounts, controlled recovery for verified administrators, stronger session and credential boundaries, and a simpler workspace experience that keeps My Day inside Dashboard and Reviews inside Documents.
New features
Staff and platform operators can protect their accounts with a TOTP authenticator app and one-time recovery codes
Practice administrators can configure MFA as optional, required for selected roles, or required for all staff with a bounded enrollment grace period
Platform operators can maintain a separate global MFA policy for cross-tenant administrative access
Practice owners can reset MFA for members of their own practice after identity verification, while platform operators can reset MFA only for practice owners
Dashboard now contains Overview and My Day as in-place tabs, and Documents now contains All Documents, My Documents, Created by Others, and Reviews in one workspace
Improvements
Security settings now show personal enrollment status, remaining recovery-code count, policy controls, and clearly confirmed administrative reset actions
Authenticator setup and challenge flows work consistently for normal staff login, required enrollment, temporary-password handoff, mobile authentication, and the platform console
Dashboard and Documents preserve shareable tab URLs while legacy My Day and Review routes redirect into their parent workspaces
Role-aware navigation keeps unavailable clinical and approval tabs hidden and presents a clear module-disabled state when a licensed feature is unavailable
Background notification, message, update, and booking-request polling no longer counts as user activity for the inactivity timer
Bug fixes
Fixed session-expiry warnings appearing too soon after login because background requests refreshed or distorted activity state
Fixed credential changes and administrative MFA resets leaving older web, mobile, or platform authentication state usable
Fixed MFA challenge handoff after mandatory temporary-password replacement and across logout or re-entry
Fixed recovery-code reuse and repeated authenticator time-step acceptance
Fixed My Day and Reviews opening as visually separate pages instead of behaving like the surrounding workspace tabs
Fixed narrow-screen security badges and workspace tabs wrapping into unclear layouts
Breaking changes
No breaking API changes. Existing users start with MFA optional unless an authorized policy changes enforcement
Production and multi-instance environments must provide a dedicated versioned MFA encryption key before starting this release
v1.0.4 ·
safer scheduling and connected practice operations
TherapyCRM 1.0.4 strengthens the day-to-day workflows used by a multidisciplinary therapy centre. The release improves scheduling readiness, recurring appointments, email and in-app notifications, invoice and payment communication, clinical-document lifecycles, role boundaries, consent enforcement, and temporary-password security after a comprehensive multi-role production-practice simulation.
New features
Recurring appointment cancellation now offers an explicit choice between one occurrence and the selected occurrence plus all following visits
Scheduling readiness now detects fixed therapist and room contention, transition-time conflicts, inactive clients, expired plans, and planning-window demand more accurately
Appointment creation and rescheduling now enforce therapist working hours while allowing an explicit authorized override
Client payment receipts can be delivered once to each active, unique client or guardian recipient
New staff and administratively reset users must replace temporary credentials before accessing practice data
Clinical and document views now use shared, relationship-aware access rules and minimum-necessary projections
Improvements
Appointment, reminder, cancellation, reschedule, recurring-series, waitlist, and schedule-publication messages now coordinate email and in-app delivery without per-visit alert floods
Appointment emails use the branch timezone, custom appointment location when present, and portal-safe client links
Invoice templates receive a complete runtime data contract and fail closed when required authored variables cannot be resolved
Scheduling fix dialogs refresh readiness after room or therapist changes and present clearer contention guidance
Treatment-plan service delivery, interventions, resources, goal progress, session duration, review, and amendment states are surfaced more consistently
Dashboard, search, reports, messages, staff directories, reminders, and notifications apply tighter practice, role, assignment, and recipient scopes