TherapyCRM

Release notes

New features, improvements and fixes in each TherapyCRM release.

v0.2.30 ·

Leads Prospect/Guardian Enhancement and CI/CD Improvements

This release adds prospect/client fields to leads so contact persons (parents/guardians) and actual therapy prospects are tracked separately. On lead-to-client conversion, prospect names are correctly assigned and guardian records are automatically created. Also includes soft-delete client list fix and CI/CD runner migration.

New features

  • Added prospect/client name, DOB, and relationship fields to lead intake form
  • Added Contact person is the client toggle to distinguish guardian from prospect
  • Lead-to-client conversion now swaps names and creates guardian record automatically
  • Lead detail page shows Prospect/Client banner and Guardian/Contact Person label

Improvements

  • Switched CI/CD from self-hosted k3s runners to GitHub-hosted ubuntu-latest
  • Improved page scroll behavior by fixing html/body overflow

Bug fixes

  • Fixed soft-deleted clients still appearing in client list after deletion
  • Fixed extra whitespace at bottom of pages caused by body overflow

v0.2.29 ·

Documents Page Fix and Enhanced Data Handling

This release resolves critical issues with the documents page display functionality and improves data handling across multiple components. The documents feature is now fully operational with proper API response parsing and enhanced null safety throughout the application.

New features

  • Added delete confirmation dialog component for safer data management
  • Enhanced staff repository with comprehensive role management capabilities
  • Improved treatment plan forms with better data validation

Improvements

  • Fixed React Query data extraction to properly parse JSON responses from API
  • Enhanced null safety with optional chaining across all React components
  • Improved error handling and debugging capabilities in multiple pages
  • Better data flow management in lead and client intake forms
  • Optimized API response handling for nested data structures

Bug fixes

  • Fixed critical documents page issue where documents were not displaying despite API returning data
  • Corrected API endpoint path from /api/documents/documents to /api/documents
  • Resolved React Query Response object parsing issue preventing data display
  • Fixed null reference errors when accessing properties from LEFT JOIN queries
  • Resolved data extraction issues from nested API response structures

v0.2.27 ·

Frontend Stability and API Response Handling Improvements

This release focuses on resolving critical frontend runtime errors and implementing consistent API response handling patterns across all main application pages. The fixes ensure robust data handling and eliminate JavaScript errors that were preventing proper page functionality.

New features

  • Unified API response handling pattern for consistent data extraction across frontend components
  • Comprehensive TypeScript interfaces for API responses (ClientsResponse, DocumentsResponse, StaffResponse)
  • Robust error handling for nested API response structures
  • Improved frontend stability across all main application pages

Improvements

  • Enhanced data handling in clients page with proper response structure extraction
  • Improved documents page data processing with consistent error handling
  • Streamlined staff management component with unified API response patterns
  • Better TypeScript type safety across all frontend data fetching operations

Bug fixes

  • Fixed "clients.filter is not a function" error on /clients page by properly extracting data array from nested response
  • Resolved "documentsData.filter is not a function" error on /documents page with correct API response handling
  • Fixed "staff.filter is not a function" error on /staff page using consistent data extraction pattern
  • Eliminated JavaScript runtime errors preventing proper page rendering and functionality

v0.2.26 ·

Multi-Day Scheduling with Full-Day Window Preferences

This release significantly improves the scheduling engine with multi‑day scheduling capabilities, prioritizes client full‑day window preferences, and implements minute‑level overlap detection for more accurate conflict resolution. Additionally includes helper scripts for schedule testing and validation.

New features

  • Multi‑day session scheduling: rotates through multiple days per required session starting from current day
  • Full‑day window preference: prioritizes days matching client full‑day constraints (e.g., Wed–Fri BBP 09:00–17:00)
  • Minute‑level fixed‑schedule overlap detection using enhanced isRangeFree function
  • Helper scripts for schedule validation: run‑schedule‑once.ts and regenerate‑scenario.ts

Improvements

  • Scheduling engine now tries multiple available days per session for better distribution
  • Days matching client full‑day windows are now preferred in scheduling order
  • Enhanced conflict detection with minute‑level precision for fixed schedules
  • Improved scheduling logs show preferred day order with day‑of‑week indicators
  • Better session distribution across available days with rotation logic

Bug fixes

  • Fixed fixed-schedule overlap detection to use minute-level granularity instead of hour-level checks
  • Resolved scheduling conflicts where clients could be double‑booked at exact times
  • Fixed session scheduling to properly rotate through all available days before reporting conflicts

v0.2.25 ·

Full‑Day Scheduling Constraints and Treatment Plan Enhancements

This release introduces full‑day scheduling constraints, improves the treatment plan workflow, and refines the scheduling engine and related routes. It also includes quality‑of‑life fixes, targeted debug scripts for scheduling analysis, and a basic smoke test to ensure the app loads successfully.

New features

  • Full‑day scheduling constraints implemented in the scheduling engine
  • Enhanced treatment plan form and view for clearer workflow and selections
  • Scheduling analysis endpoints refined to support new constraint logic
  • Initial smoke test added to verify application loads

Improvements

  • Scheduling engine logic refined for constraint handling
  • Schedule detail page updated for better clarity with full‑day rules
  • Added debug scripts for targeted schedule data inspection
  • Documentation: Added Guided Spectrum fulfillment analysis report

Bug fixes

  • Resolved merge conflicts in treatment plan form and restored rotation group selection bound to form field (junction table link)
  • Fixed schedule detail page implementation issues

v0.2.28 ·

Authentication System Fixes and Database Schema Completion

This release resolves critical authentication issues including login validation mismatches and completes the password reset functionality by ensuring all required database tables exist. The authentication system is now fully operational with proper email-based login validation.

New features

  • Complete password reset functionality with proper database table structure
  • Fixed authentication validation to use email field instead of username
  • Resolved login validation schema mismatch preventing user authentication
  • Enhanced browser compatibility with proper cache control headers

Improvements

  • Unified authentication field validation across Passport.js and input validation middleware
  • Improved database migration reliability with proper table creation verification
  • Enhanced error handling for authentication workflows
  • Better compatibility with different browser caching behaviors

Bug fixes

  • Fixed login validation expecting username field when system uses email field authentication
  • Resolved missing password_reset_tokens table preventing password reset functionality
  • Fixed 400 validation errors during login attempts due to field mismatch
  • Resolved blank page issues in regular browser mode caused by cached authentication errors