Skip to content

Improve Quick Start refresh and Docker status details - #876

Open
Tomasz Naumowicz (tnaum-ms) wants to merge 2 commits into
release/0.10.0from
dev/tnaum/quickstart-improvements
Open

Improve Quick Start refresh and Docker status details#876
Tomasz Naumowicz (tnaum-ms) wants to merge 2 commits into
release/0.10.0from
dev/tnaum/quickstart-improvements

Conversation

@tnaum-ms

Copy link
Copy Markdown
Collaborator

Summary

  • make Quick Start reconciliation demand-driven on first expansion or direct use instead of extension activation
  • make the Quick Start root refresh perform an authoritative durable-store and Docker reconciliation, with tracing and retry-safe failure handling
  • preserve accurate running, stopped, missing, and credentials-missing states while avoiding redundant background probes
  • enrich managed-instance tooltips with container and Docker host details, including the conventional 12-character container ID

Validation

  • npm run l10n
  • npm run prettier-fix
  • npm run lint
  • focused Quick Start Jest suites
  • full Jest suite: 211 suites, 3,417 tests
  • npm run build

Copilot AI lite review requested due to automatic review settings August 7, 2026 12:55
@tnaum-ms
Tomasz Naumowicz (tnaum-ms) requested a review from a team as a code owner August 7, 2026 12:55
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

✅ Code Quality Checks

Check Status How to fix
Localization (l10n) ✅ Passed
ESLint ✅ Passed
Prettier formatting ✅ Passed

This comment is updated automatically on each push.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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');
}
}
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

📦 Build Size Report

Metric Base (release/0.10.0) PR Delta
VSIX (vscode-documentdb-0.10.0-bug-bash-2.vsix) 8.01 MB 8.14 MB ⬆️ +137 KB (+1.7%)
Webview bundle (views.js) 5.88 MB 6.11 MB ⬆️ +231 KB (+3.8%)

Download artifact · updated automatically on each push.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants