[Fix] Avoid unnecessary engine reload by correctly comparing ChatOption and AppConfig objects #399
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
Currently, even the client is initializing the worker engine with the exact same configurations, the worker will not correctly recognize this but instead it will unnecessarily re-initialize itself. The root cause is due to the use of
===
to compare object equity which is actually comparing object reference equity instead of value equity.This PR fixed it by create utility functions for deep comparing the VALUE of these config objects. The code is tedious and thus I generated using AI models.
Test
Tested on https://chat.neet.coffee with the following code added to
web_service_worker.ts
.Before the fix:
After: