All releases
1.4.0

Delegation Integration & Flight Improvements

New

  • Delegation across all features -- Delegation now works end-to-end across orders, reservations, bookings, travelers, policies, budgets, and document management
  • Delegate visibility -- Booking requests and order detail views now show who booked on behalf of whom
  • Flight passenger limits -- Flight search and booking enforce a maximum passenger count with validation
  • Traveler age validation -- Traveler ages are validated against passenger types (adult, child, infant) during booking with localized error messages
  • Cabin class selector -- Desktop flight search results now include a cabin class filter with mobile drawer support
  • Booking state persistence -- Flight selection, hotel details, and traveler assignments now survive page refreshes and language switches, with automatic expiry after the search token's 1-hour lifetime
  • Form error auto-scroll -- Forms across the booking app automatically scroll to the first error on submission

Improved

  • Budget form validation and conditional field behavior refined with improved settings UX
  • Flight sort options changed from dropdown to inline pill buttons for faster access
  • Flight search components memoized for better rendering performance
  • Delegation grant dialog rebuilt with user search and simplified scope selection
  • Trip type hint badge added to the sticky date field on flight search
  • Hotel name search on desktop now debounces input to reduce unnecessary API calls

Fixed

  • E-ticket download now works for all travelers in a reservation, not just the first
  • Policy status badge on booking review is always clickable regardless of violation state
  • Delegation scope dependencies are enforced correctly and cache invalidation works on scope changes
  • Per-traveler-type pricing is passed through correctly from the provider and shown in the price breakdown
  • Table action buttons no longer trigger row click events in the dashboard
  • Hotel address text no longer overflows its container
  • Empty hotel search results are handled gracefully instead of showing a blank page
  • Country code badge displays correctly across all views
  • Policy effective date range is validated when assigning policies to users
  • Location input clears on focus for consistent search behavior
  • API client skips retries on 4xx client errors to avoid redundant requests
  • Policy variable shadowing fixed in flight evaluation logic
  • Traveler form submission no longer bubbles to parent search form
  • Booking review page no longer allows submission when traveler selection is empty