Improve Quick Start refresh and Docker status details - #876
Open
Tomasz Naumowicz (tnaum-ms) wants to merge 2 commits into
Open
Improve Quick Start refresh and Docker status details#876Tomasz Naumowicz (tnaum-ms) wants to merge 2 commits into
Tomasz Naumowicz (tnaum-ms) wants to merge 2 commits into
Conversation
Copilot started reviewing on behalf of
Tomasz Naumowicz (tnaum-ms)
August 7, 2026 12:57
View session
Contributor
✅ Code Quality Checks
This comment is updated automatically on each push. |
Contributor
There was a problem hiding this comment.
Pull request overview
This PR refactors Local Quick Start state management so Docker/durable-store reconciliation becomes demand-driven (on first tree expansion or opening the webview) rather than running at extension activation, and it enriches the Connections tree presentation with more detailed tooltips and an explicit deep-refresh action.
Changes:
- Move Docker readiness checks behind
QuickStartService.checkDockerReadiness()and introduce lazy hydration (ensureHydrated) + explicit deep refresh (refreshHydratedState). - Update the Connections tree Quick Start node to start collapsed, hydrate on-demand, and add richer managed-instance tooltips (container + Docker host details).
- Add command contribution/tests for a single deep Refresh entry on the Quick Start root node and expand Jest coverage for the new hydration/refresh behaviors.
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/webviews/documentdb/localQuickStart/localQuickStartRouter.ts | Switch Docker readiness probing from ContainerRuntime to QuickStartService.checkDockerReadiness. |
| src/webviews/documentdb/localQuickStart/localQuickStartRouter.test.ts | Update router mocks to cover the new Docker readiness entry point. |
| src/tree/connections-view/LocalQuickStart/revealQuickStartInstance.test.ts | Stabilize reveal tests by mocking lazy-hydration state. |
| src/tree/connections-view/LocalQuickStart/LocalQuickStartItem.ts | Implement lazy hydration on expansion, add deep refresh, and build enriched managed-instance tooltips. |
| src/tree/connections-view/LocalQuickStart/LocalQuickStartItem.test.ts | Add tests validating “collapsed + no Docker work until expansion” and hydration/probe behavior. |
| src/tree/connections-view/LocalQuickStart/LocalQuickStartItem.credentials.test.ts | Add tooltip assertions for retained Docker/container facts and 12-char container ID. |
| src/services/localQuickStart/QuickStartService.ts | Add tracing, cached Docker readiness snapshotting, lazy hydration, and shared reconciliation. |
| src/services/localQuickStart/QuickStartService.test.ts | Add tests for readiness retention, hydration concurrency/sharing, retryability, and refresh interactions. |
| src/documentdb/ClustersExtension.ts | Remove eager Quick Start reconciliation during activation; rely on lazy reconciliation. |
| src/commands/localQuickStart/openLocalQuickStart.ts | Await authoritative hydration before revealing the Quick Start webview. |
| src/commands/localQuickStart/openLocalQuickStart.test.ts | New test ensuring webview reveal waits for hydration. |
| src/commands/localQuickStart/contributions.test.ts | Validate the deep Refresh context menu appears exactly once on the Quick Start root. |
| package.json | Contribute a context-menu Refresh entry for the Quick Start root node. |
| l10n/bundle.l10n.json | Add localized strings used by the new tooltip/detail labels. |
Suppressed comments (1)
src/tree/connections-view/LocalQuickStart/LocalQuickStartItem.ts:74
- Execution-target labels in the tooltip should reuse existing localized strings. "Dev container" and "GitHub Codespaces" already have l10n keys (used in the Quick Start webview), but this code introduces a new "Dev Container" key and returns a raw "GitHub Codespaces" string, which bypasses localization and duplicates translation work.
function executionTargetLabel(readiness: DockerReadiness): string {
switch (readiness.executionTarget) {
case 'wsl':
return 'WSL';
case 'ssh':
return 'SSH';
case 'devContainer':
return l10n.t('Dev Container');
case 'codespaces':
return 'GitHub Codespaces';
case 'otherRemote':
Comment on lines
+53
to
+62
| function dockerProviderLabel(readiness: DockerReadiness): string { | ||
| switch (readiness.provider) { | ||
| case 'dockerDesktop': | ||
| return 'Docker Desktop'; | ||
| case 'dockerEngine': | ||
| return 'Docker Engine'; | ||
| default: | ||
| return l10n.t('Unknown'); | ||
| } | ||
| } |
Contributor
📦 Build Size Report
Download artifact · updated automatically on each push. |
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
Validation
npm run l10nnpm run prettier-fixnpm run lintnpm run build