v2.34.0

jdx/misev2.34.0Jan 1, 2026by github-actions[bot]

AI Summary

This release focuses on infrastructure modernization, requiring a higher Node.js version and migrating the testing suite from Jest to Vitest, along with improvements to server-side logging and Wayland support.

Key Highlights

  • Updated Node.js requirement to >=22.21.1
  • Migrated testing framework from Jest to Vitest
  • Added `server:watch` script for automatic restarts on file changes
  • Refactored Wayland support for improved reliability
  • Replaced `express-ipfilter` with lightweight custom middleware

Breaking Changes

  • Requires Node.js version >=22.21.1 <23 || >=24

New Features

  • Server watch script
  • Configurable forecast date format for weather
  • Calendar checksum for detecting list changes
  • ESLint rule for sparse arrays
  • Logger prefixing with calling filename

Full Release Notes

## Release Notes
Thanks to: @Blackspirits, @Crazylegstoo, @jarnoml, @jboucly, @JHWelch, @khassel, @KristjanESPERANTO, @rejas, @sdetweil, @xsorifc28
> ⚠️ This release needs nodejs version >=22.21.1 <23 || >=24

[Compare to previous Release v2.33.0](https://github.com/MagicMirrorOrg/MagicMirror/compare/v2.33.0...v2.34.0)


### [core]
- Merge branch 'master' into develop
- Prepare Release 2.34.0 (#3998)
- dependency update + adjust Playwright setup + fix linter issue (#3994)
- demo with gif (#3995)
- [core] fix: allow browser globals in config files (#3992)
- [core] fix: restore `--ozone-platform=wayland` flag for reliable Wayland support (#3989)
- [core] auto create release notes with every push on develop (#3985)
- [core] chore: simplify Wayland start script (#3974)
- [gitignore] restore the old Git behavior for the default modules (#3968)
- [core] configure cspell to check default modules only and fix typos (#3955)
- [gitignore] restoring the old Git behavior for the CSS directory (#3954)
- feat(core): add `server:watch` script with automatic restart on file changes (#3920)
- [check_config] refactor: improve error handling (#3927)
- refactor: replace `express-ipfilter` with lightweight custom middleware (#3917)
- refactor: replace `module-alias` dependency with internal alias resolver (#3893)
- Release 2.33.0 (#3903)

### [dependencies]
- [chore] update dependencies and min. node version (#3986)
- [core] bump dependencies into december (#3982)
- Bump actions/checkout from 5 to 6 (#3972)
- Update deps, unpin parse5 (#3934)
- [core] Update deps and pin jsdom to v27.0.0 (#3925)
- chore: update dependencies (#3921)
- update deps, exclude node v23 (#3916)
- remove eslint warnings, add npm publish process to Collaboration.md (#3913)
- feat: add ESlint rule `no-sparse-arrays` for config check (#3911)
- chore: bump dependencies into october (#3909)

### [logging]
- logger: add calling filename as prefix on server side (#3926)
- [logger] Add prefixes to most Log messages (#3923)

### [modules/alert]
- Add new pt and pt-BR translations for Alert module and update global PT strings (#3965)

### [modules/calendar]
- add checksum to test whether calendar event list changed (#3988)
- [calendar] fix: prevent excessive fetching on client reload and refactor `calendarfetcherutils.js` (#3976)
- [calendar] refactor: migrate CalendarFetcher to ES6 class and improve error handling (#3959)
- [calendar] Show `repeatingCountTitle` only if `yearDiff` > 0 (#3949)
- [tests] suppress debug logs in CI environment + improve calendar symbol test stability (#3941)
- [calendar] chore: remove `requiresVersion: "2.1.0"` (#3932)
- [calendar] test: remove "Recurring event per timezone" test (#3929)

### [modules/compliments]
- [compliments] refactor: optimize `loadComplimentFile` method and add unit tests (#3969)
- fix: set compliments remote file minimum delay to 15 minutes (#3970)
- [compliments] fix: duplicate query param "?" in compliments module refresh url (#3967)

### [modules/newsfeed]
- [newsfeed] fix header layout issue  (#3946)

### [modules/weather]
- [weatherprovider] update subclass language use override (#3914)
- [weather] fix wind-icon not showing in pirateweather (#3957)
- [weather] add error handling to weather fetch functions, including cors (#3791)
- remove deprecated ukmetoffice datapoint provider, cleanup .gitignore (#3952)
- fixes problems with daylight-saving-time in weather provider `openmeteo` (#3931)
- Fix for envcanada Provider to use updated Env Canada URL (#3919)
- [weather] feat: add configurable forecast date format option (#3918)

### [testing]
- testing: update "Enforce Pull-Request Rules" workflow (#3987)
- [core] refactor: replace `XMLHttpRequest` with `fetch` and migrate e2e tests to Playwright (#3950)
- [test] replace `node-libgpiod` with `serialport` in electron-rebuild workflow (#3945)
- [ci] Add concurrency to automated tests workflow to cancel outdated runs (#3943)
- [tests] migrate from `jest` to `vitest` (#3940)