Skip to content

Update Databricks CLI to v1.16.0 - #2183

Merged
rugpanov merged 2 commits into
mainfrom
update-cli-v1.16.0
Sep 9, 2026
Merged

Update Databricks CLI to v1.16.0#2183
rugpanov merged 2 commits into
mainfrom
update-cli-v1.16.0

Conversation

@eng-dev-ecosystem-bot

Copy link
Copy Markdown
Collaborator

Update Databricks CLI to v1.16.0

@rugpanov

rugpanov commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Executive summary — Databricks CLI v1.15.0 → v1.16.0

CLI

  • aitools install now honors --output json, emitting a structured {scope, agents[...]} document with per-agent delivery/install status (#6481), an error_category on failed/skipped installs (#6482), and auto-registers the official Claude marketplace before installing (#6485).
  • bundle sync prints sync progress (Action: PUT, Uploaded …) by default now, matching databricks sync; --output json still gives machine-readable output (#6568).
  • Cluster picker (auth login --configure-cluster, labs) accepts major-only DBR versions like 19.x-scala2.13 (#6574).
  • environments setup-local: deprecated --constraints-only in favor of orthogonal --no-dbconnect (hidden alias for now) (#6470); added --no-constraints/--no-dbconnect (#6464); new E_PROVISION_CONFLICT JSON error code for unsatisfiable pin-vs-dependency conflicts, reported after files are written without attempting doomed provisioning (#6479).
  • ssh connect/ssh setup: verify tunnel host key against the workspace-published key (#6557); stop duplicating the IDE Remote Explorer entry on every connect (#6550); --max-clients/--server-timeout on ssh setup, --server-timeout on ssh connect (#6547); sessions survive websocket loss by reattaching and replaying missed bytes (#6558).

Bundles

  • PyDABs secrets support (Resources.add_secret, secret_mutator) (#6553).
  • Fix * version wildcards in job/pipeline environment deps being mistaken for local paths (#6555).
  • New postgres_snapshot_schedules resource (direct deployment engine only) (#6449).

Dependency updates

  • databricks-sdk-go v0.175.0 → v0.177.0 (#6448); Terraform provider v1.128.0 → v1.131.0 (#6544).

What could be integrated into the VS Code extension experience

Ranked roughly by effort-to-value.

1. Handle the new E_PROVISION_CONFLICT code in the setup-local pipeline — small net-new, high value. The extension parses the --output json result and maps error.code to user-facing copy, remediation links, and report-button routing. The error-code union at packages/databricks-vscode/src/python-setup/models/PythonSetupResult.ts:38-51 doesn't include E_PROVISION_CONFLICT, and the message map falls through to the generic "Python environment setup failed." for unknown codes (getPythonSetupErrorMessage does BASE_MESSAGE[err.code]?.(result) ?? GENERIC at packages/databricks-vscode/src/python-setup/utils/errorMessages.ts:224-228). So today a numpy-vs-pin conflict that the CLI now classifies precisely would be flattened to the least useful copy. This is net-new work but on fully existing plumbing: add the code to the union, a tailored message + doc link in the BASE_MESSAGE/DOC_LINKS maps, and decide report routing. Note the existing choice to give E_PROVISION no report button because it's usually the user's own dependency graph (errorMessages.ts:406-410) applies directly — E_PROVISION_CONFLICT is the same category and should likely inherit that treatment.

2. Adopt --output json for aitools install — net-new parsing, medium value. CliWrapper.aitoolsInstall shells aitools install --scope … --agents … with no --output flag and determines success purely from exit code (packages/databricks-vscode/src/cli/CliWrapper.ts:620-639). The doc comment right above it states the CLI "prints human-readable text (it ignores --output json for this subcommand)" (CliWrapper.ts:604-606) — that is now factually stale and should be corrected regardless. Beyond the comment fix, the new structured {scope, agents[...]} document plus error_category would let the install flow report which agent failed and why instead of a bare non-zero exit. The plumbing to consume it already exists next door: aitoolsList parses aitools list --output json into typed structures (CliWrapper.ts:702-721, types at CliWrapper.ts:178-194). Effort is a new result type + parse; value depends on how much the install UX wants to surface per-agent detail. (JSON mode requires --scope and --agents, both of which the extension already passes.)

3. Expose ssh connect --server-timeout — net-new, low value. The extension builds ssh connect --ide=… --auto-approve [--cluster/--auto-start-cluster | --accelerator] in getSshConnectCommand (packages/databricks-vscode/src/cli/CliWrapper.ts:141-155) and never calls ssh setup (no references anywhere under src/). The --max-clients/--server-timeout additions to ssh setup are therefore no-ops for the extension; only --server-timeout on connect is reachable, and wiring a setting for it is speculative absent a concrete request.

No-ops / transparent wins (no extension action needed):

  • ssh connect UX and resilience fixes (#6550, #6557, #6558) land for free in the extension's remote-IDE flow (getSshConnectCommand, CliWrapper.ts:141-155). #6550 is especially welcome — the extension opens remote windows repeatedly, so no longer duplicating the Remote Explorer entry is a direct user-facing improvement with zero code change on our side.
  • Bundle schema items (#6449 postgres_snapshot_schedules, #6555 wildcard fix, #6553 PyDABs secrets) flow in automatically: YAML autocomplete/validation regenerates the schema from the bundled CLI at runtime (bundleAutocompleteProvider.ts:13cli.getBundleSchema()bundle schema, CliWrapper.ts:582-588), and the wildcard fix is deploy/validate behavior inside the bundled binary. The checked-in static src/bundle/BundleSchema.ts TS types are generated offline and are not refreshed by this bump, but they aren't what drives live validation.
  • bundle sync default progress (#6568) changes nothing: getSyncCommand already passes --output json (CliWrapper.ts:466-478), so the extension keeps the machine-readable stream it parses today.
  • Cluster picker major-only DBR (#6574) targets auth login --configure-cluster/labs; the extension uses its own TypeScript cluster picker (cluster/ClusterModel.ts) and never invokes --configure-cluster, so it's unaffected.
  • setup-local flag changes (#6470, #6464) require no work — the extension already emits the orthogonal --no-constraints/--no-dbconnect and never the deprecated --constraints-only (buildSetupLocalArgs, setupLocalArgs.ts:57-62, asserted by setupLocalArgs.test.ts:68). This bump is simply the CLI catching up to what the extension already sends.
  • Dependency updates (#6448 SDK-go, #6544 Terraform) are internal to the CLI binary; the extension carries no Go SDK dependency, and the Terraform provider affects bundle deploys through the bundled CLI only.

(Reminder from CONTRIBUTING: this cli.version bump leaves the old gitignored bin/databricks in place — re-run yarn workspace databricks run package:cli:fetch so the extension actually runs v1.16.0.)

🤖 Auto-generated executive summary of the CLI v1.15.0 → v1.16.0 changelog. Integration notes are opportunities, not commitments — verify before acting.

@rugpanov
rugpanov enabled auto-merge (squash) September 9, 2026 16:19
@rugpanov
rugpanov deployed to test-trigger-is September 9, 2026 16:19 — with GitHub Actions Active
@rugpanov
rugpanov deployed to test-trigger-is September 9, 2026 16:20 — with GitHub Actions Active
@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

If integration tests don't run automatically, an authorized user can run them manually by following the instructions below:

Trigger:
go/deco-tests-run/vscode

Inputs:

  • PR number: 2183
  • Commit SHA: ec42d0658c7154715762d315b140212f8ed6390a

Checks will be approved automatically on success.

@rugpanov
rugpanov merged commit 51c8bc6 into main Sep 9, 2026
7 checks passed
@rugpanov
rugpanov deployed to test-trigger-is September 9, 2026 16:20 — with GitHub Actions Active
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