fix: Prevent multiple scans from running simultaneously and improve user notifications #1
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.
This pull request enhances the
UiProviderclass insrc/providers/uiProvider.tsby introducing safeguards to prevent overlapping scans and fetch operations, improving the user experience and maintaining system stability. The most important changes include adding a_scanInProgressflag, implementing checks for concurrent operations, and ensuring the flag is reset appropriately.Enhancements to prevent overlapping operations:
Added
_scanInProgressflag: Introduced a private boolean property_scanInProgressto track whether a scan or fetch operation is currently in progress.Prevented overlapping scans: Updated the
runLocalScanmethod to check the_scanInProgressflag. If a scan is already in progress, a warning is logged, a message is sent to the UI, and an error notification is displayed to the user.Handled concurrent fetch attempts: Modified the
fetchRemoteAlertsmethod to include a similar check for the_scanInProgressflag, ensuring that fetch operations cannot start during an active scan.Reset
_scanInProgressflag: Ensured that the_scanInProgressflag is reset in thefinallyblock of bothrunLocalScanandfetchRemoteAlerts, regardless of whether the operation succeeds or fails. [1] [2]Minor UI adjustment:
UiProvider's webview by removing an unnecessary closing</div>tag.