What's Changed
- chore(deps-dev): bump eslint-plugin-import from 2.31.0 to 2.32.0 by @dependabot[bot] in #568
- chore(deps-dev): bump vite from 7.2.7 to 7.3.1 by @dependabot[bot] in #570
- chore(deps-dev): bump @types/react from 19.2.7 to 19.2.8 by @dependabot[bot] in #569
- chore(deps): bump bowser from 2.11.0 to 2.13.1 by @dependabot[bot] in #567
- chore(deps-dev): bump @types/react-dom from 18.3.1 to 19.2.3 by @dependabot[bot] in #566
- chore(deps-dev): bump vite-plugin-svgr from 4.3.0 to 4.5.0 by @dependabot[bot] in #565
- fix: reauth called when entering app by @LucasMaupin in #578
- fix: improve error-handling by @LucasMaupin in #580
- Sprint 0: Bootstrap Vitest test infrastructure with happy-dom by @LucasMaupin in #581
- Sprint 1: Add frontend tests and fix #545 #534 by @LucasMaupin in #582
- Sprint 2: Add unit test and ESLint CI workflows by @LucasMaupin in #583
- feat: UI/UX improvements — rounds 1–12 by @LucasMaupin in #585
- refactor: decompose use-rtc-connection into testable layers by @LucasMaupin in #584
- test: add Playwright E2E testing framework with 103 tests by @LucasMaupin in #587
- fix: security hardening, accessibility, and error handling by @LucasMaupin in #588
- fix: ui/ux fixes from deployment testing by @LucasMaupin in #589
- fix: call card border and alignment issues by @LucasMaupin in #591
- fix: participant list border clipping and kebab menu by @LucasMaupin in #592
- chore(deps-dev): bump eslint-plugin-prettier from 5.2.1 to 5.5.4 by @dependabot[bot] in #573
- chore(deps-dev): bump prettier from 3.7.0 to 3.7.4 by @dependabot[bot] in #574
- chore(deps): bump react-router from 7.10.1 to 7.12.0 by @dependabot[bot] in #575
- fix: stop production list polling flood and fix router context mismatch by @birme in #598
- chore: integrate LucasMaupin and dependabot PRs by @LucasMaupin in #606
- fix(frontend): fix join button disabled state and early-load device error by @LucasMaupin in #613
- fix(frontend): fix Firefox warning icon overlapping refresh button by @LucasMaupin in #614
- WIP: feat: multi-join call presets by @LucasMaupin in #616
- fix(frontend): no-device default, program role, presets, URL order, and Add-Line UX by @LucasMaupin in #618
- feat: select program feed role on calls page, encode in URL by @LucasMaupin in #619
Full Changelog: v3.6.0...v4.0.0