Update: Muted characters forgotten on log-out and log-in

Hello! After the recent updates, I noticed an issue. Characters who I had muted had their messages coming through.

Attempting to re-mute them said that they were already muted.

I discovered I could un-mute them and re-mute them, hooray!

HOWEVER.

If I log out and log in my muted characters are forgotten and I must repeat this process again. This is somewhat annoying.

2 Likes

Aww, you said it first. Mirr ran into this, this evening and I was going to post about it. Good work. :slight_smile:

With release v1.58.0, I migrated muted characters over to the server, instead of storing them locally in the browser. Part of that update should also make sure your local settings were migrated over to the server. Something must have gone wrong.

You think you can check the browser’s Console for error messages? In Chrome/Edge, press Ctrl + Shift+ i and then click the Console tab.

Look for an error that says:

Error migrating muted chars: …

If the error ended up during the migration attempt, the client might continue to try to migrate them every time you load the client. So, if we are “lucky”, you may still have such an error in the console.

Of course, the bug could be elsewhere.

No such luck; gave it another try to see. I don’t actually see any errors in the console at all!

I’m seeing issues, myself. Looking at the Inspector under storage, I see no mute-related tables at all, just character panel and log related stuff, and various miscellanous settings. I can try clearing out all local storage, if that would help eliminate a migration issue.

The behavior I see:
I see text from a muted character.
I attempt to remute them and get, Already muting $MUTED_CHARACTER.
I unmute and remute them. No change, they remain unmuted.
I tried unmuting them, waited for them to speak, and remuted them, and that seemed to work, but only until the next login. I will attempt to reproduce this at some point if the opportunity arises, to see if the behavior’s consistent, or only imagined on my part.

My current guess is that the migration actually worked and took place. But the bug is rather in the server-side added mute settings not being propagated properly to the client.

If that guess is correct, the issue should disappear if you close the app/tab for your account on all devices for 10 seconds (enough time for the info to be evicted from the gateway’s cache). After that, to open the app/tab again and see if muting works as intended.

I will try to replicate this locally as well.

Hmm. That actually seems to trigger the bug. Most of the time, I only have one browser open at once. Should I be just closing the tab, or logging out and just closing?

Closing should be enough. When the client closes its connection (logged in or not doesn’t matter), the gateway evicts any resources no longer needed by any of the other clients (such as the list of muted characters).

So just close, wait, restart.

But if I know your account has the issue, I can check the DB on your user to see if I can detect any anomalies.

Unless the connection persists for a very long time on mobile devices, even in the face of being force quit, I’m pretty sure the resources should’ve been evicted. I tend not to leave Wolfery open, with only rare exceptions, and I only rarely run it on two devices at once (laptop and desktop, generally). The issue does seem to persist.

I’m having the same experience. I tried closing it everywhere (my phone included) and if I’m ever not on Wolfery on any device then my mutes reset again.

It’s somewhat annoying. X)

Since Acci is away somewhere, I have a monkey-patch fix for this that should work as far as I’ve tested it. If you’re on PC, you can press F12 or Ctrl+Shift+I and past the below snippet into the console tab to override the mute evaluation function with one that works. Not sure how you’ll get this on mobile, but I’m sure some mobile native user will come along soon and tell that. Probably tampermonkey or something can be run on phones too.

You’ll need to repaste and enter this every time you refresh the tab. (Luckily, after the first time you should be able to just press the up-arrow key in the console to recall it.)

app.getModule("mute").isMutedChar = function(charId) {
  let player = this.module.player.getPlayer();
  let playerId = player.id;
  return !!(charId && (player?.mutedChars.props[charId] || player?.mutedChars.props[playerId+charId]));
}
1 Like

You rock! Thank you very much. I will report back.

Now also available as a userscript (works through violentmonkey at least): https://github.com/ItsAKelmi/wimp/releases/download/v0.1.0/wolfery-improved.user.js

The plan is for this script to house some additional tweaks in some future version.

Edited to add: worth noting that unmuting these bugged characters still doesn’t work even with this patch. Due to the way that the ID has been apparently malformed during the migration, the server doesn’t seem to recognize updates to those mute entries, despite returning them in the first place.

1 Like

I am relieved to report that the monkey patch in question appears to be working.

You are awesome, @Kelmi!
Sorry for the awayness. It has been due to personal reasons.
But I will make sure that we add this fix in next release!

1 Like