We have another release that takes a good stride on multi-realm management.
This includes a backup system built on a task run system, allowing us to run tasks to backup and restore realms.
I know it isn’t all that fun, as it doesn’t add any of the many great feature suggestions I see on the forum. But, I will get back to those eventually!
Thanks for being patient with me while I work on this.
Once I get multi-realm fully operational, I will happily return to the more enjoyable tinkering of improving the game itself!
Features
Realm backup system
The multi-realm infrastructure (work in progress) now includes a built-in backup system that allows:
- manually triggered backups
- scheduled backups
- pruning of old backups with configurable rotation schema
- live restore of backups
- GUI to manage backups
To achieve this, a task run system was created, featuring configurable steps to take for each task type, based on the release version the realm uses.
Screenshot of the interface for viewing the logs of a task run.
While a lot of work has been put into this (and related functionality), I don’t think you will find the details all that interesting. Let’s just say, I am happy with the results so far!
Note
Wolfery also has backups, but those rely on manually configured cron jobs and bash scripts.
Improvements
Search among all character in New Owner dialogs
It is now possible to use the Set room owner (and Set area owner ) dialog window to search for any existing character. Previously, the dialog only allowed searching among awake characters and owned characters.
Also, other searches (such as tag searches under Edit profile) now show the top matching hits in a more intuitive order.
Thanks to @Talon for bringing up the issue!
Fixes
Login error when using Google
When creating accounts with Google login, instead of username/password, some users have encountered an error:
Internal error: oauth2: cannot fetch token: 400 Bad Request
Last release, more debug logging was added to provide info on this issue, and with this release, the bug has been found and fixed!
Thanks to @WinterFloof for initially reporting this issue in this thread!
Log service crashes
A bug caused the log service, responsible for resynchronizing chat history when switching devices, to occasionally crash and restart. Since logs are only stored on the service temporarily and purely in memory (no persistance), the restarts caused the logs to be lost and history synchronization to fail. That bug has now been fixed.
Thanks to @Shinyuu for reporting this (multiple times)!
Mucklet script debug logging for addIndirect error
When deploying a script using mucklet-script, the deployment sometimes crashes with an error about calling addIndirect on undefined.
To get more information on this bug, debug logging has been added to mucklet-script, so that when it happens, the full logs are shown together with a request to provide those logs through a GitHub issue.
Hopefully this will help solve this rather elusive bug.
Script editor header button size
The script editor’s header buttons (help, Update, and Close) had the wrong size due to css priority issues. This has been fixed,
Ctrl + 0 does not reset zoom
Last release made it impossible to reset the browser zoom to 100% using the keyboard shortcut Ctrl + 0. This has been fixed, and the client now allows for browser default behavior (eg. Zoom to 100% for Ctrl + 0) for numbers exceeding max controlled characters.
Thanks to @Archer for reporting the issue in this thread!
GitHub issue #430 - Ctrl + 0 does not reset zoom
Roll, helpMe, and privateDescribe messages excluded from exports
When doing a log export, the generated export completely ignored messages generated by the roll and helpme commands. Also, privateDescribe messages sent from scripts would be excluded as well. This has been fixed, and the styling of the log export html file has been updated to match the client.
GitHub issue #244 - Roll messages and roll results are omitted from exports
(Sorry for being slow to fix this, ItsAKelmi. But thanks for reporting!)
Non-deterministic sort order with missing sortOrder property
When creating addon modules for the client that tries to add overlays to the OverlayNav module, the behavior became undefined when the sortOrder property was missing, due to the implementation of sortOrderCompare. This has been fixed, and all similar hooks now uses a new compare function with deterministic behavior on missing sortOrder property.
GitHub issue #275 - SortOrder missing in CharLog Overlays causes [issues]
(Yet another delayed fix. But once again, thanks ItsAKelmi for the report!)

