Release v1.59.0 - Notification improvements

Last release introduced Push Notifications. The feature was quite rough around the edges, and needed improvements to become less spammy and more useful. This release contains many of those improvements.

Apart from that, this release is mainly about stability, including solving a bug that has been causing random client crashes since the very beginning of this project.

So, let’s take a closer look at what we’ve got.

Improvements

Notification Improvements

Notification grouping

Any one device will now only show a single notification (per account). If multiple notifications are sent to a client, any previous notification will be replaced with the latest notification, plus a line that tells how many other notifications have been received:

New post
Accipiter made a new post
+2 other events

GitHub issue #276 - Group notifications

No notification when active on another device

When using multiple devices, like a desktop and a mobile device, push notifications will no longer be sent if the app is open and visible on any other device.

This means that, while you are active on the desktop, the phone will remain quiet.

Tip

Minimize the game tab on your browser when you leave your computer, if you wish to start receiving push notifications to your phone.

GitHub issue #280 - Cancel pending notification

Closing Notifications when app is opened

Any currently open notification will be automatically closed as soon as you return to the app on that device.

GitHub issue #278 - Close notifications on visible

De-duplication of Notifications trigged by the same event

If you control two characters, and a single event (e.g. a multi-target whisper) triggers notifications for both of them, only one Notification will be sent to any single device.

No notifications for bots

Bots no longer triggers push notifications.

No full stop in notification messages

To make the notifications slightly more clean, full stops were removed from the message body.

Fixes

Random crashes
Since before the game was even launched, we’ve had issues with seemingly random client crashes, showing up as errors in the browser’s Console with messages such as:

Error: Resource XXX not found in cache

or

Uncaught TypeError: Cannot read properties of undefined (reading ‘addIndirect’)

While it has been possible to resolve it by simply reloading the game, it has been a thorn in my side, and the cause of frustration. This has finally been tracked down to a bug in Resgate. By updating to Resgate v1.8.0, these issues should now be resolved.
GitHub issue #9 - Error reading addIndirect

Muted characters forgotten on logout and login
Muted characters appeared to be forgotten on logout and login, but muting them again showed an error saying that they were already muted. This has been fixed.
Thanks to @Puma who reported the issue in this topic, and to @Kelmi who troubleshot the issue, and created a work-around until this proper fix could be made.
GitHub issue #274 - Muted characters forgotten on logout and login

Deleted characters break focus list
If there was a deleted character lingering on your focus list, it became impossible to use list focused. It also became impossible to unfocus the deleted character. This has now been fixed.
All credits to @Kelmi who both reported the issue and fixed it in GitHub PR #272!
GitHub issue #282 - Deleted characters breaks list focus and unfocus

Add paths config for Intellisense
The TypeScript engine config didn’t list the webpack mappings for the common modules (utils etc.). The config has now been extended to allow the usage of e.g. Go To Definition with those imports.
All credits to @Kelmi who both reported the issue and provided a solution in GitHub PR #273!
GitHub issue #283 - Add paths config for Intellisense

JSON encoder occasionally produces invalid JSON
The JSON encoder that is being used by the backend had a memory-reuse race bug, that in rare cases caused invalid JSON to be produced, which could result in seemingly random error responses from the API. This has been fixed.

3 Likes