Skip to content

v1.30.0

Choose a tag to compare

@moufmouf moufmouf released this 03 Apr 19:47
· 276 commits to master since this release

WorkAdventure 1.30.0 is now available! In the continuity of 1.29.x, this release includes life-improving features
and bug fixes. Read below for the full list of changes.

New Features

Install WorkAdventure as a Progressive Web App (PWA) screen

WorkAdventure now has a dedicated screen to guide users through the installation of WorkAdventure as a
Progressive Web App (PWA), both on computer and phones. This allows users to easily install WorkAdventure
on their device and access it like a native app.

pwa

The ability to install WorkAdventure as a PWA has existed for many years, but it was not very discoverable.
With this new screen, we hope to make it easier for users to take advantage of the PWA features.

View pull requests * Create page to install pwa by @gparant in https://github.com//pull/5867 * Implement new UI and UX for PWA by @gparant in https://github.com//pull/5928 * refactor: compute PWA install menu eligibility once and expose via store by @ydiarra in https://github.com//pull/5915 * Rewording the advantages of the PWA install screen by @moufmouf in https://github.com//pull/5938

Already connected warning message

If you try to join a map while you already have an active session in that map, you will now receive a warning message.
This is useful to prevent users from accidentally opening multiple sessions of the same map, which can lead to confusion.

already-connected

This is just a warning message. You can still choose to open a new session if you want to.

View pull requests * Create a notification to inform the duplicate user connected by @gparant in https://github.com//pull/5872

Scripting API improvements

You can now use the setStatus function in the scripting API to dynamically set the status of a user.

A big thank you to our new contributor @beingeek for implementing this feature.

View pull requests * Added setStatus event from map scripting by @beingeek in https://github.com//pull/5841

Improvements

Messaging improvements

Particular attention has been given to improving the messaging experience in this release. The following improvements have been made:

  • Better unread notifications counter on the chat icon
  • Support for encrypted image rendering in Matrix rooms
  • Better code block rendering in chat messages
View pull requests * feat(matrix) : Handle unread notifications event by @ydiarra in https://github.com//pull/5896 * fix(chat): support encrypted image rendering in matrix rooms by @ydiarra in https://github.com//pull/5905 * feat(chat): show notifications when receiving a new room invitation by @ydiarra in https://github.com//pull/5771 * Adjust messages layout to prevent overflow by @angerenage in https://github.com//pull/5925

Notify users when a map is deleted

When a map is deleted, all users currently in that map will now receive a notification informing them that the map has
been deleted and that they will be disconnected.

View pull requests * Kick out all users of a map when it is deleted by @angerenage in https://github.com//pull/5890

Better detection of audio context state

When a browser loads a page, the page cannot play any sound until the user has interacted with the page. This is a security
feature implemented by browsers to prevent unwanted sounds from playing without the user's consent.
For WorkAdventure, this can be a problem because we need to play sounds (for instance, when someone comes and see you)
and we want to be able to do so even on startup.

The rules implemented by browsers are quite complex. For instance, PWAs are not impacted, and frequently visited pages
are not impacted either.

In this release, we have improved our detection of the audio context state to better handle those cases and be able to play
sounds as soon as possible. If we detect that your browser cannot play a sound on startup, and if you have not
enabled desktop notifications, we will automatically put you in "Do not disturb" mode to prevent the other users from
thinking that you are ignoring them. As soon as you interact with the page and the audio context is unlocked, you will
be taken out of "Do not disturb" mode.

Installing WorkAdventure as a PWA is a great way to ensure that the audio context is unlocked on startup, so we highly
recommend it!

View pull requests * fix: audio context video automatically mute / unmute by @gparant in https://github.com//pull/5903 * Implement media track status management for better status messages by @angerenage in https://github.com//pull/5939 * Rewording the "sound blocked" popup by @moufmouf in https://github.com//pull/5940

Better detection of camera and microphone state

We now have a better detection of the camera and microphone state, including whether the user has granted permission to
use them or not. This allows us to provide more accurate messages when something needs to be done to grant camera / microphone access.

In particular, we can now make a distinction between "You don't have a microphone" and "Your microphone is not working because
you have not granted permission to use it". This should help users understand what they need to do to fix the issue.

View pull requests * Improve mic and camera helper by @gparant in https://github.com//pull/5926

Other improvements

A big number of improvements have been made in this release, including:

  • Improved shading effect positioning when entering a meeting room
  • Improved UI and UX in the participants menu and in the personal desk claiming process
  • Improved path finding: the shortest path now avoids walking through private desks, meeting rooms, etc...
  • Easier unblocking of blocked users
View pull requests * refactor: improve distance calculation and shading in DarkenOutsideAr… by @angerenage in https://github.com//pull/5883 * Improve participant menu by @gparant in https://github.com//pull/5884 * Improve UI and UX for already claim and claim personal desk by @gparant in https://github.com//pull/5881 * Improve path finding to move on the room by @gparant in https://github.com//pull/5886 * Improve design for woka popup by @gparant in https://github.com//pull/5891 * improve manage block user by @gparant in https://github.com//pull/5904 * Add metadata with room URL to BBB meetings by @wpramio in https://github.com//pull/5908 * update: improve UI and UX of suggest room by @gparant in https://github.com//pull/5922 * improve picture in picture by @gparant in https://github.com//pull/5935

Code improvements

Minimum browser version update

WorkAdventure 1.30 targets more modern browsers. As a result, we have removed some legacy code and polyfills that were
only necessary for older browsers. This has allowed us to simplify the codebase and improve performance.

We previously supported Safari iOS 15.0 and the new minimum version is now iOS 15.4+. In practice, this represents less than 0.05%
of users so the impact should be minimal.

  • fix(tests): ensure structuredClone is correctly disabled in browser support test by @ydiarra in #5902
  • Removing Vite legacy build by @moufmouf in #5914

Code cleanup

View pull requests * fix(CI) : run pretty by @ydiarra in https://github.com//pull/5898 * Migrate uploader tests from LocalStack to MinIO by @moufmouf in https://github.com//pull/5912

Bug fixes

View pull requests * improve: open channel main panel to accept invite by @gparant in https://github.com//pull/5910 * Fixing play crash when a back stops responding by @moufmouf in https://github.com//pull/5907 * refactor(play): centralize network viewport pipeline and align outbound paths by @ydiarra in https://github.com//pull/5911 * Fixing map-storage discrepancies by @moufmouf in https://github.com//pull/5887 * Fix DOM element drift when zooming out by @angerenage in https://github.com//pull/5909 * Fix Woka menu not updating when switching user selection by @angerenage in https://github.com//pull/5921 * fix(lint) : remove unused muteAudio variable by @ydiarra in https://github.com//pull/5927 * fix: error picture in picture with livekit by @gparant in https://github.com//pull/5931 * Fix mediastore error by @gparant in https://github.com//pull/5933

New Contributors

Full Changelog: v1.29.3...v1.30.0