-
Notifications
You must be signed in to change notification settings - Fork 480
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat ui/tracker: add compression to assist plugin #2186
Conversation
WalkthroughThe recent updates introduce message compression functionality and enhance message processing within the Changes
Tip New Features and ImprovementsReview SettingsIntroduced new personality profiles for code reviews. Users can now select between "Chill" and "Assertive" review tones to tailor feedback styles according to their preferences. The "Assertive" profile posts more comments and nitpicks the code more aggressively, while the "Chill" profile is more relaxed and posts fewer comments. AST-based InstructionsCodeRabbit offers customizing reviews based on the Abstract Syntax Tree (AST) pattern matching. Read more about AST-based instructions in the documentation. Community-driven AST-based RulesWe are kicking off a community-driven initiative to create and share AST-based rules. Users can now contribute their AST-based rules to detect security vulnerabilities, code smells, and anti-patterns. Please see the ast-grep-essentials repository for more information. New Static Analysis ToolsWe are continually expanding our support for static analysis tools. We have added support for Tone SettingsUsers can now customize CodeRabbit to review code in the style of their favorite characters or personalities. Here are some of our favorite examples:
Revamped Settings PageWe have redesigned the settings page for a more intuitive layout, enabling users to find and adjust settings quickly. This change was long overdue; it not only improves the user experience but also allows our development team to add more settings in the future with ease. Going forward, the changes to Miscellaneous
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## dev #2186 +/- ##
==========================================
- Coverage 13.10% 12.60% -0.50%
==========================================
Files 180 188 +8
Lines 13018 14356 +1338
Branches 2797 3393 +596
==========================================
+ Hits 1706 1810 +104
- Misses 10469 11449 +980
- Partials 843 1097 +254
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
Out of diff range and nitpick comments (1)
frontend/app/player/web/assist/AssistManager.ts (1)
Line range hint
201-232
: Improve error handling in theprocessMessages
method to ensure robustness during message decompression.+ try { + const unpackData = gunzipSync(new Uint8Array(gzBuf.data)); + const str = new TextDecoder().decode(unpackData); + const messages = JSON.parse(str); + processMessages({ ...gzBuf, data: messages }) + } catch (e) { + console.error('Failed to decompress and process messages:', e); + }
Review Details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files ignored due to path filters (1)
tracker/tracker-assist/package.json
is excluded by!**/*.json
Files selected for processing (5)
- frontend/app/player/web/MessageManager.ts (1 hunks)
- frontend/app/player/web/assist/AssistManager.ts (4 hunks)
- frontend/app/player/web/assist/Call.ts (1 hunks)
- tracker/tracker-assist/src/Assist.ts (5 hunks)
- tracker/tracker-assist/src/version.ts (1 hunks)
Files skipped from review due to trivial changes (1)
- frontend/app/player/web/MessageManager.ts
Additional Context Used
GitHub Check Runs (1)
codecov/patch failure (6)
tracker/tracker-assist/src/Assist.ts: [warning] 8-8: tracker/tracker-assist/src/Assist.ts#L8
Added line #L8 was not covered by tests
tracker/tracker-assist/src/Assist.ts: [warning] 19-19: tracker/tracker-assist/src/Assist.ts#L19
Added line #L19 was not covered by tests
tracker/tracker-assist/src/Assist.ts: [warning] 158-160: tracker/tracker-assist/src/Assist.ts#L158-L160
Added lines #L158 - L160 were not covered by tests
tracker/tracker-assist/src/Assist.ts: [warning] 162-164: tracker/tracker-assist/src/Assist.ts#L162-L164
Added lines #L162 - L164 were not covered by tests
tracker/tracker-assist/src/Assist.ts: [warning] 167-168: tracker/tracker-assist/src/Assist.ts#L167-L168
Added lines #L167 - L168 were not covered by tests
tracker/tracker-assist/src/version.ts: [warning] 1-1: tracker/tracker-assist/src/version.ts#L1
Added line #L1 was not covered by tests
Additional comments not posted (6)
frontend/app/player/web/assist/Call.ts (1)
58-64
: Ensure the new event listener for 'messages_gz' integrates correctly with existing message handling.Verification successful
The new event listener for 'messages_gz' appears to be well integrated with the existing message handling mechanisms across different parts of the application. Here are the points of integration:
- Assist.ts: Emits the 'messages_gz' event.
- Call.ts: Listens for the 'messages_gz' event and triggers session handling when reconnecting.
- AssistManager.ts: Handles the gzipped buffer received through the 'messages_gz' event.
This consistent usage across different components suggests that the integration is correct and functional.
Scripts Executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify integration of the new 'messages_gz' event listener with existing message handling. # Test: Search for usage of 'messages_gz' and related message handling logic. Expect: Consistent integration. rg --type typescript $'messages_gz'Length of output: 69
Script:
#!/bin/bash # Description: Re-verify integration of the new 'messages_gz' event listener with existing message handling. # Correcting the previous error by using a broader search parameter. rg 'messages_gz' --glob '*.ts'Length of output: 282
frontend/app/player/web/assist/AssistManager.ts (2)
3-3
: Ensure the new import is used appropriately throughout the file.
12-12
: Ensure the new import is used appropriately throughout the file.tracker/tracker-assist/src/Assist.ts (3)
8-8
: Ensure the new import is used appropriately throughout the file.
19-19
: Ensure the new import is used appropriately throughout the file.
57-62
: Ensure the new options for message compression are integrated correctly with the existing system.Verification successful
The new options for message compression (
compressionEnabled
andcompressionMinBatchSize
) appear to be integrated correctly within the system. They are not only declared and initialized but also actively used in a conditional logic that checks both the batch size and the compression flag before proceeding, which aligns with their intended functionality.
- File:
tracker/tracker-assist/src/Assist.ts
- Variables are declared and initialized with default values.
- Used in a conditional statement to determine if compression should be applied based on the batch size and the compression flag.
Scripts Executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify integration of the new compression options with the existing system. # Test: Search for usage of 'compressionEnabled' and 'compressionMinBatchSize'. Expect: Consistent integration. rg --type typescript $'compressionEnabled|compressionMinBatchSize'Length of output: 102
Script:
#!/bin/bash # Description: Re-verify integration of the new compression options with the existing system by searching in TypeScript files. # Test: Search for usage of 'compressionEnabled' and 'compressionMinBatchSize' in .ts and .tsx files. Expect: Consistent integration. rg 'compressionEnabled|compressionMinBatchSize' --glob '*.ts' --glob '*.tsx'Length of output: 507
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
Out of diff range and nitpick comments (1)
tracker/tracker-assist/CHANGELOG.md (1)
Line range hint
85-85
: Correct the grammatical error to maintain professionalism in documentation.- ...res" in videofeed when one of the users turn off camera + ...res" in videofeed when one of the users turns off camera
Review Details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files ignored due to path filters (2)
tracker/tracker-assist/package.json
is excluded by!**/*.json
tracker/tracker/package.json
is excluded by!**/*.json
Files selected for processing (3)
- tracker/tracker-assist/CHANGELOG.md (1 hunks)
- tracker/tracker-assist/src/Assist.ts (5 hunks)
- tracker/tracker-assist/src/version.ts (1 hunks)
Additional Context Used
LanguageTool (1)
tracker/tracker-assist/CHANGELOG.md (1)
Near line 85: With the singular noun ‘one’, use the verb inflections “turns” or “turned”.
Context: ...res" in videofeed when one of the users turn off camera - fixed html chat snippet la...
GitHub Check Runs (1)
codecov/patch failure (7)
tracker/tracker-assist/src/Assist.ts: [warning] 8-8: tracker/tracker-assist/src/Assist.ts#L8
Added line #L8 was not covered by tests
tracker/tracker-assist/src/Assist.ts: [warning] 19-19: tracker/tracker-assist/src/Assist.ts#L19
Added line #L19 was not covered by tests
tracker/tracker-assist/src/Assist.ts: [warning] 155-155: tracker/tracker-assist/src/Assist.ts#L155
Added line #L155 was not covered by tests
tracker/tracker-assist/src/Assist.ts: [warning] 159-161: tracker/tracker-assist/src/Assist.ts#L159-L161
Added lines #L159 - L161 were not covered by tests
tracker/tracker-assist/src/Assist.ts: [warning] 163-165: tracker/tracker-assist/src/Assist.ts#L163-L165
Added lines #L163 - L165 were not covered by tests
tracker/tracker-assist/src/Assist.ts: [warning] 168-169: tracker/tracker-assist/src/Assist.ts#L168-L169
Added lines #L168 - L169 were not covered by tests
tracker/tracker-assist/src/version.ts: [warning] 1-1: tracker/tracker-assist/src/version.ts#L1
Added line #L1 was not covered by tests
Additional comments not posted (4)
tracker/tracker-assist/CHANGELOG.md (1)
1-4
: LGTM! The changelog correctly documents the new feature.tracker/tracker-assist/src/Assist.ts (3)
19-19
: Ensure the import ofgzip
from 'fflate' is covered by tests.Verification successful
The search results indicate that the
gzip
function from the 'fflate' library is indeed used in several TypeScript files, including a unit test file (QueueSender.unit.test.ts
). This file contains multiple references togzip
, suggesting that there are test cases that likely cover the usage of thegzip
function. This addresses the concern raised in the review comment about ensuring that the import ofgzip
from 'fflate' is covered by tests.Here's the summary of the findings:
- Usage in Source Code: The
gzip
function is imported and used intracker/tracker/src/main/app/index.ts
andtracker/tracker-assist/src/Assist.ts
.- Test Coverage: The
gzip
function is referenced in the test filetracker/tracker/src/webworker/QueueSender.unit.test.ts
, which includes assertions related to thegzip
functionality.Based on this information, it can be concluded that the import of
gzip
from 'fflate' is indeed covered by tests.Test Coverage Identified:
tracker/tracker/src/webworker/QueueSender.unit.test.ts
: Contains assertions related togzip
functionality.Scripts Executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify that the import of `gzip` from 'fflate' is covered by tests. # Test: Search for tests related to `gzip`. Expect: At least one test case. rg --type typescript $'gzip'Length of output: 62
Script:
#!/bin/bash # Description: Verify that the import of `gzip` from 'fflate' is covered by tests. # Test: Search for tests related to `gzip`. Expect: At least one test case. rg 'gzip' --glob '*.ts'Length of output: 770
57-62
: LGTM! The addition of new options for compression is well-implemented.
155-170
: Ensure robust error handling and test coverage for the message compression logic.+ try { + gzip(byteArr, { mtime: 0, }, (err, result) => { + if (err) { + console.error('Failed to compress messages:', err); + this.emit('messages', messages) + } else { + this.emit('messages_gz', result) + } + }) + } catch (e) { + console.error('Compression error:', e); + }
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
Review Details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (1)
- tracker/tracker-assist/src/Assist.ts (5 hunks)
Additional Context Used
GitHub Check Runs (1)
codecov/patch failure (7)
tracker/tracker-assist/src/Assist.ts: [warning] 8-8: tracker/tracker-assist/src/Assist.ts#L8
Added line #L8 was not covered by tests
tracker/tracker-assist/src/Assist.ts: [warning] 19-19: tracker/tracker-assist/src/Assist.ts#L19
Added line #L19 was not covered by tests
tracker/tracker-assist/src/Assist.ts: [warning] 155-155: tracker/tracker-assist/src/Assist.ts#L155
Added line #L155 was not covered by tests
tracker/tracker-assist/src/Assist.ts: [warning] 159-163: tracker/tracker-assist/src/Assist.ts#L159-L163
Added lines #L159 - L163 were not covered by tests
tracker/tracker-assist/src/Assist.ts: [warning] 165-167: tracker/tracker-assist/src/Assist.ts#L165-L167
Added lines #L165 - L167 were not covered by tests
tracker/tracker-assist/src/Assist.ts: [warning] 171-172: tracker/tracker-assist/src/Assist.ts#L171-L172
Added lines #L171 - L172 were not covered by tests
Additional comments not posted (3)
tracker/tracker-assist/src/Assist.ts (3)
57-62
: The addition ofcompressionEnabled
andcompressionMinBatchSize
to theOptions
interface aligns with the PR's objective to enhance compression capabilities. Ensure these new properties are utilized correctly throughout the system.
116-117
: Initialization ofcompressionEnabled
andcompressionMinBatchSize
in the constructor with default values is a good practice for ensuring that these options are always defined.
155-173
: The compression logic in theattachCommitCallback
method is crucial for handling large batches of messages. However, ensure robustness and efficiency in the implementation:
- Consider handling errors more gracefully.
- Verify that the compression logic does not introduce significant delays or overhead.
f87f25e
to
61482c0
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
Review Details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files ignored due to path filters (2)
tracker/tracker-assist/package.json
is excluded by!**/*.json
tracker/tracker/package.json
is excluded by!**/*.json
Files selected for processing (6)
- frontend/app/player/web/MessageManager.ts (1 hunks)
- frontend/app/player/web/assist/AssistManager.ts (4 hunks)
- frontend/app/player/web/assist/Call.ts (1 hunks)
- tracker/tracker-assist/CHANGELOG.md (1 hunks)
- tracker/tracker-assist/src/Assist.ts (5 hunks)
- tracker/tracker-assist/src/version.ts (1 hunks)
Files skipped from review due to trivial changes (1)
- tracker/tracker-assist/src/version.ts
Additional Context Used
LanguageTool (2)
tracker/tracker-assist/CHANGELOG.md (2)
Near line 85: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...res" in videofeed when one of the users turn off camera - fixed html chat snippet la...
Near line 85: You might be missing the article “the” here.
Context: ...ideofeed when one of the users turn off camera - fixed html chat snippet layout ## 4....
Markdownlint (1)
tracker/tracker-assist/CHANGELOG.md (1)
64: Expected: 0 or 2; Actual: 1
Trailing spaces
Biome (63)
frontend/app/player/web/MessageManager.ts (20)
27-27: Unexpected any. Specify a different type.
28-28: Unexpected any. Specify a different type.
29-29: Unexpected any. Specify a different type.
110-110: This type annotation is trivially inferred from its initialization.
130-130: Unexpected any. Specify a different type.
138-153: Prefer for...of instead of forEach.
139-139: Forbidden non-null assertion.
161-161: Prefer for...of instead of forEach.
164-164: This type annotation is trivially inferred from its initialization.
170-170: Prefer for...of instead of forEach.
173-173: Unexpected any. Specify a different type.
192-194: Prefer for...of instead of forEach.
209-209: Prefer for...of instead of forEach.
212-212: Unexpected any. Specify a different type.
306-306: Other switch clauses can erroneously access this declaration.
Wrap the declaration in a block to restrict its access to the switch clause.
376-378: Prefer for...of instead of forEach.
12-13: Some named imports are only used as types.
15-19: The default import and some named imports are only used as types.
22-23: Some named imports are only used as types.
131-131: This let declares a variable that is only assigned once.
frontend/app/player/web/assist/AssistManager.ts (5)
16-16: This enum declaration contains members that are implicitly initialized.
73-73: Unexpected any. Specify a different type.
175-194: The assignment should not be in an expression.
1-1: All these imports are only used as types.
2-3: All these imports are only used as types.
frontend/app/player/web/assist/Call.ts (18)
10-10: This enum declaration contains members that are implicitly initialized.
30-30: This type annotation is trivially inferred from its initialization.
102-102: The computed expression can be simplified without the use of a string literal.
109-109: The assignment should not be in an expression.
126-126: Change to an optional chain.
134-134: Change to an optional chain.
140-142: This else clause can be omitted because previous branches break early.
159-159: Change to an optional chain.
161-161: Change to an optional chain.
169-169: Change to an optional chain.
170-170: Change to an optional chain.
189-189: Unexpected any. Specify a different type.
210-210: Unexpected any. Specify a different type.
242-242: Prefer for...of instead of forEach.
285-285: Change to an optional chain.
293-293: Change to an optional chain.
300-300: This type annotation is trivially inferred from its initialization.
99-99: Use Number.parseInt instead of the equivalent global.
tracker/tracker-assist/src/Assist.ts (20)
24-24: Unexpected any. Specify a different type.
24-24: Unexpected any. Specify a different type.
24-24: void is not valid as a constituent in a union type
38-38: Unexpected any. Specify a different type.
38-38: Unexpected any. Specify a different type.
39-39: Unexpected any. Specify a different type.
40-40: Unexpected any. Specify a different type.
40-40: Unexpected any. Specify a different type.
41-41: Unexpected any. Specify a different type.
41-41: Unexpected any. Specify a different type.
66-66: This enum declaration contains members that are implicitly initialized.
74-74: void is not valid as a constituent in a union type
146-146: Change to an optional chain.
151-151: Change to an optional chain.
179-179: Unexpected any. Specify a different type.
180-180: Change to an optional chain.
223-243: The assignment should not be in an expression.
224-224: Template literals are preferred over string concatenation.
226-226: The computed expression can be simplified without the use of a string literal.
227-227: The computed expression can be simplified without the use of a string literal.
Additional comments not posted (7)
tracker/tracker-assist/CHANGELOG.md (2)
1-4
: The changelog entry for version 9.0.0 correctly documents the new feature of message compression.
6-6
: The changelog entry for version 8.0.4 correctly documents the fix for multiple canvas streaming.frontend/app/player/web/MessageManager.ts (1)
Line range hint
1-400
: TheMessageManager
class is well-structured and handles a variety of message-related tasks effectively.frontend/app/player/web/assist/AssistManager.ts (1)
Line range hint
201-232
: TheprocessMessages
method is correctly implemented to handle both normal and gzipped messages, enhancing the message handling capabilities as intended in the PR.tracker/tracker-assist/src/Assist.ts (3)
57-62
: The new propertiescompressionEnabled
andcompressionMinBatchSize
have been added to theOptions
interface. Ensure that these properties are properly initialized and used throughout the class.
116-117
: The default values forcompressionEnabled
andcompressionMinBatchSize
are set in the constructor. This is a good practice as it ensures that these properties have sensible defaults.
155-173
: The compression logic based on batch size and compression settings is implemented here. Ensure that the compression logic is robust and handles errors gracefully.
@@ -5,7 +5,7 @@ import Peer, { MediaConnection, } from 'peerjs' | |||
import type { Properties, } from 'csstype' | |||
import { App, } from '@openreplay/tracker' | |||
|
|||
import RequestLocalStream, { LocalStream } from './LocalStream.js'; | |||
import RequestLocalStream, { LocalStream, } from './LocalStream.js' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tip
Codebase Verification
The search results indicate that there are no direct tests for Assist
or CallWindow
in the test directories. This suggests that the functionality provided by LocalStream.js
might not be covered by tests.
LocalStream.js
is imported inAssist.ts
andCallWindow.ts
.- No test files directly reference
Assist
orCallWindow
.
Please ensure that the functionality provided by LocalStream.js
is covered by adding appropriate tests.
- tracker/tracker-assist/src/Assist.ts
- tracker/tracker-assist/src/CallWindow.ts
Analysis chain
Ensure the import of LocalStream.js
is covered by tests.
Scripts Executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Verify that the import of `LocalStream.js` is covered by tests.
# Test: Search for tests related to `LocalStream.js`. Expect: At least one test case.
rg --type typescript $'LocalStream.js'
Length of output: 72
Script:
#!/bin/bash
# Description: Verify that the import of `LocalStream.js` is covered by tests.
# Test: Search for tests related to `LocalStream.js`. Expect: At least one test case.
rg 'LocalStream.js' --glob '**/*.ts' --glob 'test/**/*.ts' --glob 'tests/**/*.ts'
Length of output: 280
Script:
#!/bin/bash
# Description: Verify that the functionality of `LocalStream.js` is covered by tests indirectly through `Assist` or `CallWindow`.
# Test: Search for tests related to `Assist` and `CallWindow`. Expect: At least one test case.
rg 'Assist' --glob '**/*.ts' --glob 'test/**/*.ts' --glob 'tests/**/*.ts'
rg 'CallWindow' --glob '**/*.ts' --glob 'test/**/*.ts' --glob 'tests/**/*.ts'
Length of output: 5132
@@ -16,7 +16,7 @@ | |||
import ScreenRecordingState from './ScreenRecordingState.js' | |||
import { pkgVersion, } from './version.js' | |||
import Canvas from './Canvas.js' | |||
|
|||
import { gzip, } from 'fflate' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tip
Codebase Verification
The recent search results indicate that there are no direct imports or usages of the gzip
function from 'fflate' in the test files. This suggests that the gzip
function is not explicitly covered by tests.
- Ensure that the
gzip
function from 'fflate' is directly tested in your test suite.
Analysis chain
Ensure the import of gzip
from 'fflate' is covered by tests.
The search results indicate that there are references to gzip
in the test file tracker/tracker/src/webworker/QueueSender.unit.test.ts
. However, these references do not confirm that the gzip
function from 'fflate' is being tested directly. We need to verify if the gzip
function from 'fflate' is specifically imported and tested.
Scripts Executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Verify that the import of `gzip` from 'fflate' is covered by tests.
# Test: Search for tests related to `gzip` from 'fflate'. Expect: At least one test case.
rg --type typescript $'gzip'
Length of output: 62
Script:
#!/bin/bash
# Description: Verify that the import of `gzip` from 'fflate' is covered by tests.
# Test: Search for tests related to `gzip` from 'fflate'. Expect: At least one test case.
rg --type ts 'gzip' --glob '*test*'
Length of output: 363
Script:
#!/bin/bash
# Description: Verify that the import of `gzip` from 'fflate' is covered by tests.
# Test: Search for the import of `gzip` from 'fflate' in test files.
rg "import { gzip } from 'fflate'" --glob '*test*.ts'
# Test: Search for usage of `gzip` function in test files.
rg 'gzip(' --glob '*test*.ts'
Length of output: 275
Script:
#!/bin/bash
# Description: Verify that the import of `gzip` from 'fflate' is covered by tests.
# Test: Search for the import of `gzip` from 'fflate' in test files.
rg "import \{ gzip \} from 'fflate'" --glob '*test*.ts'
# Test: Search for usage of `gzip` function in test files.
rg 'gzip\(' --glob '*test*.ts'
Length of output: 96
socket.on('messages_gz', () => { | ||
if (reconnecting) { | ||
// 'messages' come frequently, so it is better to have Reconnecting | ||
this._callSessionPeer(); | ||
reconnecting = false; | ||
} | ||
}) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The new event listener for 'messages_gz' is correctly implemented to handle gzipped messages. However, consider making reconnecting
a property of the class to ensure it retains its state across different events.
- let reconnecting = false;
+ private reconnecting = false;
Committable suggestion was skipped due low confidence.
No description provided.