feat(apex-lsp-extension): worker topology UI, status bar loading, and graph scope picker - W-22201120#386
Open
kylewalke wants to merge 12 commits into
Open
feat(apex-lsp-extension): worker topology UI, status bar loading, and graph scope picker - W-22201120#386kylewalke wants to merge 12 commits into
kylewalke wants to merge 12 commits into
Conversation
…r spinner - W-22201120 Replace vscode.window.withProgress notification with status bar updates during workspace loading. The spinner persists until the server sends apex/workspaceIngestionComplete, giving accurate feedback on server-side processing time. - Add updateApexServerStatusLoading() to status-bar.ts - Register apex/workspaceIngestionComplete handler on web + desktop clients - Pass workerPlatformWebUrl in initialization options for web workers - Flatten workspace-loader async flow, remove cancellation token handling - Add .sf/** to exclude glob, support maxFileCount in development mode - Default findFilesAcrossWorkspaceFolders maxResults to Infinity
…er - W-22201120 Add extension-side UI for monitoring and configuring the worker topology: - performanceSettingsScript: add Experimental Workers section with enable toggle, pool size, and resource loader controls - queueStateScript: render worker topology cards with role status indicators and coordinator/worker dispatch tags on request types - showGraph: add QuickPick scope chooser (Current File vs All Types) - showPerformanceSettings: persist experimental.workers settings - server-config: pre-create per-role profiling subdirectories for workers
…ics - W-22201120 Inject workerTopology from the WorkerCoordinator dispatcher into both the apex/queueState request response and the periodic apex/queueStateChanged notification. This enables the queue state dashboard to render live worker role cards and dispatch indicators.
De-duplicate the apex/workspaceIngestionComplete notification handler that was registered identically in both createWebLanguageClient and createDesktopLanguageClient into a single registerIngestionCompleteHandler helper.
The exclude glob template already wraps entries with **/{...}/**,
so the entry should be just '.sf' (not '.sf/**') to produce the
correct pattern **/.sf/** matching .sf directories at any level.
…notification If the server crashes or fails to send apex/workspaceIngestionComplete, the status bar spinner would spin indefinitely. Add a 5-minute timeout that falls back to ready state and logs a warning.
Replace 'any' with ExperimentalSettings interface for the renderExperimentalWorkers method parameter. Add ExperimentalSettings and ExperimentalWorkersSettings interfaces to the webview script.
The fallback when no setting exists is enabled: true, so the help text should say "(default: on)" not "(default: off)".
- Narrow the 'as any' cast in queueState handler to a proper type assertion (Record<string, unknown>) after the 'metrics' in-check - Align coordinatorOnlyTypes to 'readonly string[]' on both server and client interfaces - Move enrichedMetrics computation after the log statement that references the original metrics to reduce confusion
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
@W-22201120@
vscode.window.withProgressnotification toast with a persistent status bar spinner that tracks server-side ingestion, cleared only when the server sendsapex/workspaceIngestionComplete. Includes a 5-minute safety timeout.workerTopologyfrom the WorkerCoordinator dispatcher into bothapex/queueStateresponses and periodicapex/queueStateChangednotifications.Changes
apex-lsp-vscode-extensionworkspace-loader.ts.sfexcludeapex-lsp-vscode-extensionlanguage-server.tsapex/workspaceIngestionCompletehandler, passworkerPlatformWebUrlapex-lsp-vscode-extensionstatus-bar.tsupdateApexServerStatusLoading, ingestion timeoutapex-lsp-vscode-extensionworkspace-find-files.tsmaxResultstoInfinity, remove implicit 1000 capapex-lsp-vscode-extensionqueueStateScript.tsapex-lsp-vscode-extensionperformanceSettingsScript.tsapex-lsp-vscode-extensionshowPerformanceSettings.tsexperimental.workerssettingsapex-lsp-vscode-extensionshowGraph.tsapex-lsp-vscode-extensionserver-config.tsapex-lsLCSAdapter.tsworkerTopologyfrom dispatcherTest plan
apex.experimental.workers.enabledin performance settings — verify it persists and UI reflects the change