v5.5 — April 16, 2026

Added

  • Control Panel as a child route — Control Panel now opens at '/gantt/cp' as a React Router child route with an ''. The EditIsland stays active while in CP so edit mode is preserved across navigation.
  • Public Holidays section in CP — new section that imports public holidays for multiple countries via the Nager.Date API. Per-country grid view, chip switcher to switch between countries, and country flag display. Backed by 'refresh-holidays' Edge Function v13.
  • 'country_code' column on 'people' table — each team member can be assigned a country code (default 'RS'). Used to match public holidays to individuals.
  • 'country_code' column on 'non_working_days' table — holidays are now stored per country, enabling per-person holiday resolution.
  • Vacation page ('/vacation') — full-year day-level grid showing vacation ranges and holiday status per person. Includes Add Vacation modal (date range picker) and holiday confirmation modal (Confirm / Skip per person).
  • 'vacation_ranges' table — stores vacation date ranges per person with RLS policies.
  • 'person_holiday_preferences' table — stores per-person holiday observance decisions (confirmed / skipped) with RLS policies.
  • Vacation navigation — Vacation button added to the Header in the Island zone for quick access from the Gantt view.
  • Sub-page header pattern — Vacation page and Control Panel share a consistent minimal header: back arrow (navigates to '/gantt'), page title, and avatar dropdown (Account Settings, Log out).