ALGA PSA v. 0.0.13
RELEASE NOTES
🚀 New Features
Billing & Invoicing System
-
Company-Specific Invoice Templates: Added per-company template selection with fallback to system-wide defaults.
-
Automated Invoice Email Delivery: Implemented a prioritized billing contact system for invoice PDF emails—with fallback from billing contact to company billing/primary emails—and temporary file handling for attachments.
-
Invoice Finalization Workflow: Introduced a finalized_at timestamp and audit logging to enforce data integrity by preventing modifications of finalized invoices.
-
Service Pricing on Invoice Detail Lines: Auto-populated service pricing details on invoice breakdowns for more accurate billing.
Time Management
-
Temporal API Integration: Replaced date-fns with the modern, timezone-aware Temporal API for more reliable date handling.
-
Bulk Time Period Configuration: Enabled simultaneous creation of multiple time period settings by refactoring the automatic time period creation logic.
-
Semi-Monthly Period Handling: Implemented precise calculations for periods ending on the 15th and at month-end, including handling of overlapping periods, month boundaries, and leap years.
-
Ticket-Based Time Entries & Enhanced Time Entry Creation: Added the ability to create time entries directly from tickets — with timer synchronization — and integrated a dedicated dialog that pre-populates start/end times, resets after saving, and applies improved rounding to duration formatting.
-
Time Entry Deletion: Introduced confirmation dialogs (via a dedicated ConfirmationDialog component) and toast notifications for a smoother deletion experience.
-
Component Reorganization: Reorganized time management components into dedicated subdirectories (e.g., separating schedule components from time entry and approval components) and standardized import paths for better code maintainability.
Work Item Management
-
Introduced a WorkItemDetailsDrawer for consistent work item viewing and editing.
-
Enhanced the WorkItemCard (formerly TicketCard) with click-to-detail functionality for a cohesive management experience within the Technician Dispatch Dashboard.
-
Introduced comprehensive user loading states and robust error handling.
-
Implemented conditional rendering based on user availability with added debug logging to aid troubleshooting.
-
Enhanced the Technician Dispatch Dashboard to accommodate new work item types for a more cohesive management experience.
Infrastructure & Security
-
Secret Management: Switched to an async/await pattern with filesystem caching for secret loading, reducing redundant checks.
-
Job Scheduler Fallback: Introduced a DummyJobScheduler to allow for graceful degradation when the primary job scheduler isn’t available.
-
Build & Deployment Improvements: Enhanced Docker and environment configuration (e.g., updating APP_ENV settings and removing automatic .env deletion) and improved error handling during event bus and subscriber initialization.
🔨 Improvements
Job Processing & Monitoring
-
Detailed Job Progress Tracking: Added comprehensive status updates for PDF generation and email delivery, including human-readable context (invoice numbers, company names).
-
Consolidated Email Service & Job Handling: Unified email handling with templating, improved error recovery, and enhanced job status updates.
-
Job Monitor UI Improvements: Updated job monitor colors and status visibility to make tracking easier at a glance.
-
TypeScript Configuration Standardization: Created a shared base TS config (with @/ and @ee/ path aliases) and cleaned up unnecessary options across the codebase.
-
Error Handling Enhancements: Added null safety checks and try-catch wrappers (notably around event bus and job scheduler initialization) to prevent cascading failures.
-
Template Validation: Enhanced invoice template management by adding a template name input, loading states, optional parsing, and validation before saving.
-
Time Calculations & Rounding Fixes: Corrected billable hour totals and floating point rounding errors, ensuring precise and accurate time entry calculations.
-
Enhanced Scheduling & User Assignment:
-
Added date range filtering and refresh logic to the Technician Dispatch Dashboard.
-
Introduced new interface fields (additional_user_ids and assigned_user_ids) to support more flexible work item assignments.
-
Replaced the MultiUserPicker with a single UserPicker that auto-assigns the current user by default in new schedule entries.
-
Refactored Calendar & Dispatch UI Components:
-
Extracted calendar styling into a dedicated CalendarStyleProvider component.
-
Updated work item type labels to include expanded displays and a dedicated color scheme (especially for ad-hoc work items).
Work Item Management & Scheduling Enhancements
-
Improved Work Item Selection UX:
-
Replaced the existing WorkItemPicker with an AddWorkItemDialog to offer a more intuitive, dialog-based selection flow.
-
Adjusted modal layering (with updated z-index settings) to ensure dialogs display correctly.
-
Consistent Work Item Type Visibility & Theming:
-
Applied design system variables to create color-coded badges that clearly indicate work item type and billable status.
-
Standardized hover states across time entry components and improved UI consistency between card and table views.
-
Simplified Schedule Entry User Assignment:
-
Replaced the MultiUserPicker component with a single UserPicker, which now auto-assigns the current user by default, streamlining agent scheduling.
-
Optimized Work Item Queries and User Assignment:
-
Refactored complex SQL joins using efficient subquery aggregation to reduce redundant data processing.
-
Centralized user fetching in the UI to avoid duplicate constructions of user lists.
-
Simplified ad-hoc work item assignments by leveraging existing schedule entries.
-
Enhanced Scheduling & User Assignment Features:
-
Added date range filtering and refresh logic to the Technician Dispatch Dashboard.
-
Introduced new fields (additional_user_ids and assigned_user_ids) to work item interfaces.
-
Improved error handling with toast notifications to support better feedback during scheduling operations.
-
Refactored Calendar & Dispatch UI Components:
-
Extracted calendar styling into a dedicated CalendarStyleProvider component.
-
Improved work item type labeling with an expanded display for ad-hoc work items through dedicated color schemes.
🐞 Bug Fixes
-
Invoice UI Errors: Fixed issues with invoice error message display and preview label inconsistencies.
-
Time Entry Calculation Issues: Resolved bugs related to total and billable time calculations and ensured correct floating point formatting.
-
Company Billing Updates: Improved handling of null/empty billing email fields during company updates.
General UX Polish: Various fixes including improved confirmation dialogs and updated UI elements for a more intuitive user experience.
Full Changelog: v0.0.12...v0.0.13