BeeStation / BeeStation-Hornet

99.95% station. 0.05% bees
https://beestation13.com
GNU Affero General Public License v3.0
200 stars 682 forks source link

[Bug]: The Chat Reliability Subsystem doesn't work as advertised currently #11784

Open HowToLoLu opened 4 weeks ago

HowToLoLu commented 4 weeks ago

BYOND Version

N/A

Round Date

N/A

Round ID

N/A

Test merges

N/A

Describe the bug

So I was attempting to debug the chat subsystem and there was a key thing I noticed since #10367 was merged:

The reliability portion of the subsystem outright does not work on the JS side of things; sequences are not stored at all properly which means the client is not keeping track of which messages it needs. This is not the fault of the port PR as this is exactly how it seems to work be written in tgstation/tgstation#79479; and is as it functions in modern TG

Latest Bee: image

Latest TG: image

What did you expect?

I expected the chat reliability subsystem build reliability in the reception of chat messages, as it was the advertised function of the system to begin with. The solution should (hopefully) be as simple as figuring out a proper storage solution for these sequences on the clientside and dealing with them, solving the issue detailed in #9050

Reproducible steps

To debug the client side of things: 1) Using the code below, write rudimentary debugging statements using the following code in the chats/middleware.js

chatRenderer.processBatch([
  {
    text: 'string with info here!',
  },
]);

2) Notice how the sequence of the message is transmitted right; but the list of locally stored sequence information is never added to nor saved. In fact the sequences list used is a local variable of the function that never seems to be stored anywhere else.

EvilDragonfiend commented 4 weeks ago

my closed issue, but now I see it wasn't my assumption