## Unreleased
- **Bug fixes**
  - Sort preference in Ideas Box and Wild Ideas views is now persisted across navigation — going back no longer resets the selected sort order
  
## 1.9.3

- **Technical improvements**
  - Refactored e2e tests to work faster (parallel) and more stable (isolated)

## 1.9.2

  - **Bug fixes**
    - Remove Survey creation form

## 1.9.1

  - **Bug fixes**
    - Fix letter spacing
    - Fix boxes prevented to be edited after phase 20 bug
  
## 1.9.0

- **New features**
  - Reset multiple users' password button on User Settings
  - Adds SSO login using a Keycloak server
  - Version management alerts for outdated app version
  - Breadcrumb dropdown menu is now fully keyboard accessible: Enter opens it, Arrow keys navigate items, Escape closes and returns focus to the trigger button

- **Accessibility improvements**
  - Content reflows correctly at 320px viewport width with no horizontal scrolling (WCAG 1.4.10 Reflow AA)
  - Removed `maximum-scale` and `user-scalable=0` from viewport meta tag so users can zoom to 400%
  - Fixed-position FAB buttons anchored to right edge with safe-area-aware bottom offset to stay within viewport at narrow widths
  - DelegateVote dialog no longer clips content at narrow viewports — height adapts at xs
  - ScopeHeader search input expands to full width at xs instead of overflowing
  - Icon sizes, voting results, delegate vote dialog, and table rows now scale correctly at 200% browser font size (AA resize text compliance)
  - Added `autocomplete` attributes to all form inputs to satisfy WCAG 2.1 AA criterion 1.3.5 (Identify Input Purpose)
  - Login form identifies username and current password fields for browser autofill and assistive technologies
  - Set password and change password forms identify new/current password fields for password managers
  - Profile editor fields mapped to standard tokens (nickname, username, name, email)
  - Admin user management form opts out of autofill to prevent credential injection when editing other users' data
  -  Fix WCAG 1.4.11: input borders raised from 1.7:1 to 3.4:1 (light) and 4.4:1 (dark)
  - Fix WCAG 1.4.11: focus ring on IconButton and RippleLink now uses `--color-text-primary` (≥9:1), replacing invisible same-color outline
  - Fix WCAG 1.4.11: MUI OutlinedInput and standard Input borders overridden to meet 3:1 minimum
  - Room cards now show a visible focus ring via `focus-within` on the card, preventing `overflow:hidden` from clipping the inner link outline
  - WCAG 1.4.12: Set minimum text spacing globally — line-height ≥ 1.5×, letter-spacing ≥ 0.12em, word-spacing ≥ 0.16em, paragraph spacing ≥ 2em
  - WCAG 1.4.12: MuiChip converted from fixed height to `minHeight` so chip labels expand instead of clipping under increased text spacing
  - Fix WCAG 1.4.3 contrast failures in dark mode — semantic colors (primary, error, secondary, info, warning) now meet 4.5:1 against dark backgrounds
  - WCAG 1.4.13 (Content on Hover or Focus): all tooltips are now dismissible via Escape key without moving focus or the pointer — applies to icon buttons, filter bar, filter clear button, phase bar, and dialog/modal close buttons
  - Escape key on a tooltip no longer propagates to parent dialogs or modals; only the tooltip closes
  - WCAG 2.5.8 (Target Size Minimum): all interactive targets now meet the 24×24 CSS pixel minimum
  - WCAG 2.4.11 (Focus Not Obscured – Minimum): keyboard-focused elements are no longer entirely hidden by author-created content — DataTable sticky header and columns no longer obscure focused rows/cells; fixed floating action buttons no longer obscure focused elements near the bottom of the viewport

- **Bug fixes**
  - Fix wrong 404 message on /messages page showing "no users" instead of "no messages" in German
  - Fix quorum tooltip floating over edit menu
  - Prevent users from editing ideas after voting phase
  - Default phase durations from room was not affecting new boxes
  - Fix long names clipped on password list print view
  - Hide inactive ideas
  - Fix Tech Admin navigation
  - Update quorum progress bar on hitting like button or voting

## 1.8.3

- **Bug fixes**
  - Private layout header, sidebar, and main content now respect iOS safe areas so nothing hides under the notch or home indicator
  - Accessible dialogs apply safe-area padding/margins in fullscreen and centered modes to keep controls visible on notched devices
  - Hide inactive rooms
  - Fix oversized icon on announcements
  - Retrieve about page link on sidebar

## 1.8.2

- **Technical improvements**
  - Make tests work in a multi-instance environment (specify instance with envvar INSTANCE_CODE)
  - Better breadcrumb navigation for mobile

## 1.8.1

- **Technical improvements**
  - Fix failing tests due to playwright not working with import.meta of vite

## 1.8.0

- **Bug fixes**
  - Some buttons from sidebar where not clickable on mobile
  - Fix Versions of aula-Software shown in the About page
  - Max password length on login page should be the same like in set/change password forms
- **Technical improvements**
  - Send app/web version to aula backend API for feature toggling

## 1.7.2

- **Bug fixes**
  - Parse user roles correctly from JWT when they are strings

## 1.7.1

- **Technical improvements**
  - Add default language as de (matching the app's default)
  - Add comprehensive page titles
- **Bug fixes**
  - Ensure users are assigned the correct role in the default room

## 1.7.0

- **New features**
  - Display aula-Software versions in the About page
  - Fix message on Admin view of User settings when no User to display
- **Bug fixes**
  - Quorum could not be set in some devices
  - Improved CSV import error messages

## 1.6.3

- **Bug fixes**
  - Some planned actions could not be deleted
- **Technical improvements**
  - Minimize data exposure by using appropriate API endpoint when fetching Users

## 1.6.2

- **Bug fixes**
  - Set password minimal size to 12 characters and add error feedback
  - Display password after Reset password for temp password

## 1.6.1

- **Bug fixes**
  - Search by text on rooms, boxes and wild ideas placeholder text
  - change IOS data collection information

## 1.6.0

- **New features:**
  - Table number of rows selector
  - Use monospaced fonts for temporary password printout
  - Disable Reset Password button after a click
- **Bug fixes**
  - Forgot Password not working for emails with special characters such as `+`
  - Add translations for empty announcements page

## 1.5.0

- **New features:**
  - Scheduled invite for users uploaded via CSV

## 1.4.5

- **Bug fixes:**
  - Disable delegation system

## 1.4.4

- **Bug fixes:**
  - Improve instance code readability
  - Fix multiple room importing CSV
  - Fix sidebar misbehavior
  - Remove unavailable timed command options

## 1.4.3

- **Bug fixes:**
  - Importing CSV to multiple Rooms works correctly resolving duplicated Users
  - Fix rendering empty results in Wild Ideas and Discussions view of Room's Phases
  - Fix rendering empty lists in settings
  - Fix missing key props
  - Fix correct share link path
  - Fix time display considering user's timezone

## 1.4.2

- **Bug fixes:**
  - Display time considering correct local timezones
  - Importing CSV to multiple Rooms works correctly resolving duplicated Users

## 1.4.1

- **Bug fixes:**
  - Resolved draft storage being kept after submit
  - Remove error message from empty boxes and settings pages
  - Fixed warnings and errors
- **New features:**
  - Added search and sort to rooms

## 1.4.0

- **Bug fixes:**
  - Fixed Playwright test import errors and ESLint configuration issues
  - Fixed markdown rendering in data tables by removing line breaks for proper display
  - Fixed broken message forms that were preventing proper submission
  - Display error messages when creation and edit requests fail
  - Prevent dialogs from closing on unsuccessful requests to allow error correction
  - Fixed name change requests not working properly
  - Fixed UserField component accessibility issues with label-input associations
  - Resolved draft storage saving data incorrectly for existing records during edits
- **New features:**
  - Added comprehensive ScopeHeader component with search and sort functionality for improved data navigation
  - Implemented unified filtering system with `useSearchAndSort` and `useFilteredData` hooks for consistent UI patterns
  - Added smart default sort selection that automatically uses the first available sort option
  - Enhanced rooms view with sortable columns including room name, creation date, last update, and importance
- **UX improvements:**
  - Improved accessibility with proper ARIA roles, labels, and keyboard navigation for search and sort controls
  - Added horizontal collapse animations for search and sort panels with click-outside detection
  - Implemented proper focus management and screen reader support for filtering interfaces
  - Enhanced visual feedback with dynamic button states and proper loading indicators
  - Added offline page to inform users when the instance is unavailable
  - Added confirmation button for instance status changes to prevent accidental offline mode
  - Implemented form data persistence using sessionStorage to prevent data loss during navigation
  - Enhanced form validation and error handling across all data forms
- **Technical improvements:**
  - Created reusable filter functions (`createTextFilter`, `createStatusFilter`, `createRoomTypeFilter`) for common filtering patterns
  - Consolidated filtering, searching, and sorting logic into well-organized, type-safe hooks
  - Added comprehensive TypeScript interfaces and documentation for better developer experience
  - Optimized hook architecture for better performance and code reusability
  - Improved ESLint configuration with separate TypeScript config for test files
  - Enhanced Playwright test structure with proper assertions and dynamic user handling
  - Better error handling and loading states in UserField component
  - Added offline page to inform users when the instance is unavailable
  - Implemented form data persistence using sessionStorage to prevent data loss during page navigation
  - Enhanced form validation and error handling across all data forms

## 1.3.0

- **UX improvements:**
  - Added ideas and boxes filters
- **Bug fixes:**
  - Prevent duplicate user creation
  - Prevent likes on own ideas and comments
  - Remove google font calls
  - Fixed missing favicon
  - Fixed Announcements agree button missing text
  - Fixed name change requests

## 1.2.0

- **Accessibility improvements:**
  - Added comprehensive ARIA attributes, data-testid properties, and focus management across forms, dialogs, accordions, and navigational components
  - Enhanced keyboard navigation support and screen reader announcements using new accessibility utilities
  - Implemented skip navigation components for better accessibility compliance
  - Replaced legacy "data-testing-id" with standardized "data-testid" attributes
  - Refined error and helper text for improved user experience
- **Code cleanup and refactoring:**
  - Removed legacy and unused code to simplify codebase and improve maintainability
  - Converted exported constants and functions to local ones where unused externally
  - Deleted obsolete modules and functions
  - Switched re-exports to only default exports in view and component index files
  - Cleaned up translation files and synchronized German/English translations
  - Added missing translation keys and removed duplicates
  - Dockerized for easier self-hosting.
- **Bug fixes:**
  - Fixed announcement consent button display issues by making consent_text field required
  - Added fallback text (t('actions.agree')) when consent_text is missing
  - Updated Yup schema validation for announcement forms with proper defaults
  - Fixed PhaseDurationFields component initialization issues
  - Resolved async value handling in form components
  - Fixed ConsentField to source default values from form defaults instead of hardcoded translations
- **Test improvements:**
  - Added Playwright automated tests for better end-to-end testing coverage
  - Updated test selectors to use data-testid instead of role-based selectors
  - Improved test reliability and maintainability across the test suite
