This release focuses on stability under load, real‑time UI accuracy for dispatching, correct ETA/ETD calculations, and cleaner recurring‑run workflows. Dispatchers get more trustworthy feedback, and services handle bulk operations and event spikes more gracefully.
Key Highlights
- Real-time driver capacity & tooltip updates on trip assignment/unassignment and run dismantle — no page refresh needed
-
Accurate ETA/ETD for same‑day and past‑time scenarios with correct timezone handling
-
Platform resilience improvements to reduce DB connection contention and long transactions
-
Cleaner recurring‑run removal to avoid large transactions and pop‑outs
-
Fixed misleading success message when itinerary edits are cancelled
-
Faster authentication path via cached user session validation
Driver shift tooltips (break times) and capacity bars did not consistently refresh after real‑time actions (assign, unassign, dismantle), sometimes showing “undefined” tooltips or missing idle gaps until a manual page refresh.
What’s New:
- Real‑time recalculation driven by an Angular pure tooltip pipe
- Capacity scale always computed using shift boundaries for the selected date
- Immutable UI list updates to trigger instant redraws
- WebSocket event syncing (e.g., driver/run updates) with current date filters
Value Delivered:
- Accurate, up‑to‑the‑second capacity and break visibility
- No page refresh required after operations
- More reliable decision‑making for dispatchers, fewer assignment errors
Improve Same‑Day, Past‑Time Trip ETA/ETD Calculation
ETA/ETD calculations could be incorrect for trips on the same day or with times in the past due to timezone handling and minimum start time edge cases, affecting multiple operational flows.
What’s New:
- Refactored minimum start time and ETA/ETD logic to properly account for local timezones
- Applied across scenarios such as removing a trip from a run, manual driver assignment, and time/address edits in Booking
Value Delivered:
- Consistent, correct ETA/ETD in real-world edge cases
- Fewer routing anomalies and rework
- Improved predictability for dispatch operations
Improve Routing Job – Bulk Cancellation Flow
Bulk cancellations ran as a single large transaction with parallel Promise.all operations, causing high DB concurrency, connection pool exhaustion, event explosions, and unnecessary full‑record reads.
What’s New:
- Enforced batching/chunking of operations
- Fetching only the required attributes for bookings
- Grouped event emissions by RecurringRunId + DayOfWeek
- Reduced transaction scope and isolated execution paths
Value Delivered:
- Lower risk of DB locks and timeouts under heavy volume
- Faster, more scalable bulk flows
- Reduced downstream recalculation load
Break removeRunAfterItineraryRemoved (Recurring Run Dismantle Flow)
The existing controller‑driven flow created large transactions and performance issues, and it did not consistently handle removal for current and subsequent weeks (pop‑out behavior).
What’s New:
- Moved orchestration to a handler, with granular service methods
- Cleaner separation of controller/handler/service responsibilities
- Verified behavior via route planner (three‑dot menu) removal path
Value Delivered:
- Smaller, safer transactions with better scalability
- Consistent removal across current and next week when applicable
- Reduced risk of pop‑outs and performance bottlenecks
Misleading “Route Updated” Success Message on Cancel
When a user cancelled an itinerary edit by clicking the X on the confirmation dialog, the UI still displayed a “Route Updated” success message even though no changes were saved.
What’s New:
- Corrected UI flow: cancelling the confirmation dialog no longer triggers a success state or route update
Value Delivered:
- Accurate, trustworthy UI feedback
- Prevents confusion and unintended assumptions about saved changes
System Error Resilience — Sequelize Connection Acquire Issue
Under certain load patterns, Sequelize connection acquisition could fail, making processes unavailable and causing requests to fail. Interim pool tweaks were tested but not adopted as the final solution.
What’s New:
- Investigation and hardening to ensure the system remains responsive even under load spikes
- Validated resilience without relying on pool parameter hacks that were later reverted
Value Delivered:
- Increased platform stability during spikes
- Lower likelihood of service unavailability due to pool contention
Tech Debt — Vehicle Update Event Handling (Trip Microservice)
Vehicle update events triggered multiple run updates inside a single large transaction, holding locks longer, loading large datasets, and increasing timeout risks.
What’s New:
-
Handler‑orchestrated smaller operations replacing one monolithic transaction
-
updateRunVehicleConfig now runs only if seating config changed; required details can be sent in the event to avoid unnecessary DB reads
- Fetching only minimal required fields; process in smaller sets
Value Delivered:
- Reduced transaction time, memory pressure, and timeouts
- More fault‑tolerant, scalable event handling
System Improvement — Cache User Session Validation
Repeated user session validation calls increased latency and load on the authentication layer, especially visible during spikes in traffic.
What’s New:
- Introduced caching for user session validation, reducing repeated lookups to the auth service
Value Delivered:
- Faster user actions that rely on session checks
- Lower load on the authentication subsystem and improved stability