Skip to content

Show a blank prompt glyph until invalid input is edited - #7314

Merged
maksim-zuev-db merged 7 commits into
mainfrom
prompt-blank-glyph
Nov 3, 2026
Merged

maksim-zuev-db merged 7 commits into
mainfrom
prompt-blank-glyph

Conversation

@maksim-zuev-db

@maksim-zuev-db maksim-zuev-db commented Nov 3, 2026 •

Copy link
Copy Markdown
Member

Changes

The cmdio prompt glyph is now blank until the first edit or Enter. After that it shows a cross while the input is invalid and a checkmark once it is valid. A prompt without Validate still shows the checkmark.

An empty bracketed paste, which some terminals send when the clipboard is empty, is now ignored. It no longer counts as an edit and no longer clears the error line.

Why

The glyph ran Validate on every render, so a prompt that rejects empty input, such as the databricks configure host prompt, opened with a red cross before anything was typed.

This change was part of #7195 and was split out because it affects every prompt that uses Validate, including the databricks auth login profile name prompt when the default name is already taken.

Tests

  • The golden for an empty validated prompt now shows the blank glyph.
  • New prompt tests cover Enter before any edit, an empty input that is already valid, navigation keys and Backspace on an empty prompt, and an empty paste.
  • libs/cmdio/... and cmd/configure unit tests pass.

This pull request and its description were written by Isaac.

The prompt glyph ran Validate on every render, so a prompt that rejects
empty input, such as the login host prompt, opened with a red cross
before anything was typed. The glyph is now blank until the first edit
or Enter, then shows a cross while the input is invalid and a checkmark
once it is valid.

Co-authored-by: Isaac <no-reply@databricks.com>
@maksim-zuev-db
maksim-zuev-db requested review from a team as code owners November 3, 2026 13:29
@maksim-zuev-db
maksim-zuev-db marked this pull request as draft November 3, 2026 13:31
maksim-zuev-db and others added 2 commits November 3, 2026 13:31
Co-authored-by: Isaac <no-reply@databricks.com>
Assert the exact Ctrl+C error, drop the redundant edited flag in the
backspace branch, and cite the configure host prompt in the changelog,
since the auth login host prompt has no Validate on main.

Co-authored-by: Isaac <no-reply@databricks.com>
@maksim-zuev-db
maksim-zuev-db requested review from simonfaltum and removed request for andrewnester and tejaskochar-db November 3, 2026 13:45
@maksim-zuev-db
maksim-zuev-db marked this pull request as ready for review November 3, 2026 13:46
@eng-dev-ecosystem-bot

eng-dev-ecosystem-bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: 6175522

Run: 41673295443

Env ✅​pass 🙈​skip Time
✅​ aws linux-2core-8gb 271 15 8:12
✅​ aws-windows-latest-4core-16gb 273 13 5:20
✅​ azure linux-2core-8gb 270 15 10:14
✅​ azure-windows-latest-4core-16gb 272 13 6:30
✅​ gcp linux-2core-8gb 271 15 8:50
✅​ gcp-windows-latest-4core-16gb 273 13 5:31
Top 7 slowest tests (at least 2 minutes):
duration env testname
4:21 azure linux-2core-8gb TestAccept
4:12 aws linux-2core-8gb TestAccept
4:10 gcp linux-2core-8gb TestAccept
3:14 aws-windows-latest-4core-16gb TestAccept
3:07 gcp-windows-latest-4core-16gb TestAccept
3:05 azure-windows-latest-4core-16gb TestAccept
2:19 azure linux-2core-8gb TestFilerRecursiveDelete/workspace_files

@simonfaltum simonfaltum left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks for splitting this out. The logic looks right and CI is green. A few small comments inline, nothing blocking.

[nit] The Tests section says cmd/auth has failures that also occur on main. CI is green on this head, including the task test jobs that run cmd/auth, so that line could go, or say it's specific to a local setup.

Comment thread libs/cmdio/prompt.go Resolved
Comment thread libs/cmdio/prompt.go Resolved
Comment thread libs/cmdio/prompt.go Resolved
maksim-zuev-db and others added 4 commits November 3, 2026 16:15
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
@maksim-zuev-db
maksim-zuev-db added this pull request to the merge queue Nov 3, 2026
Merged via the queue into main with commit bab9198 Nov 3, 2026
28 checks passed
@maksim-zuev-db
maksim-zuev-db deleted the prompt-blank-glyph branch November 3, 2026 16:55
@eng-dev-ecosystem-bot

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: bab9198

Run: 41679794955

Env ❌​FAIL 🔄​flaky ✅​pass 🙈​skip Time
❌​ aws linux-2core-8gb 109 1390 1237 350:28
❌​ aws-windows-latest-4core-16gb 118 1306 1262 343:37
🔄​ azure linux-2core-8gb 16 1330 1289 327:32
🔄​ azure-windows-latest-4core-16gb 4 1267 1314 321:12
🔄​ gcp linux-2core-8gb 6 1327 1294 340:07
❌​ gcp-windows-latest-4core-16gb 5 12 1241 1319 350:33
219 interesting tests: 198 FAIL, 21 flaky
Test Name aws linux-2core-8gb aws-windows-latest-4core-16gb azure linux-2core-8gb azure-windows-latest-4core-16gb gcp linux-2core-8gb gcp-windows-latest-4core-16gb
❌​ TestAccept ❌​F ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/debug/fetch-repository-info ✅​p ✅​p ✅​p ✅​p ✅​p ❌​F
❌​ TestAccept/bundle/debug/fetch-repository-info/DMS= ✅​p ✅​p ✅​p ✅​p ✅​p ❌​F
❌​ TestAccept/bundle/debug/fetch-repository-info/DMS=true ✅​p ✅​p ✅​p ✅​p ✅​p ❌​F
❌​ TestAccept/bundle/deploy/spark-jar-task ❌​F ✅​p ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/deploy/spark-jar-task/DMS= ❌​F ✅​p ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/deploy/spark-jar-task/DMS=true ❌​F ✅​p ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/invariant/delete_idempotent ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=secret_scope_default_backend_type.yml.tmpl/READPLAN=1 ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=sql_warehouse.yml.tmpl/READPLAN= ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=sql_warehouse.yml.tmpl/READPLAN=1 ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=vector_search_endpoint.yml.tmpl/READPLAN= ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/invariant/destroy_idempotent ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN= ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN= ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=1 ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN= ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=1 ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
🔄​ TestAccept/bundle/invariant/no_drift ✅​p ✅​p 🔄​f 🔄​f ✅​p ✅​p
🔄​ TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=job_apply_policy_default_values_task_cluster.yml.tmpl/READPLAN= ✅​p ✅​p 🔄​f ✅​p ✅​p ✅​p
🔄​ TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=instance_pool.yml.tmpl/READPLAN=1 ✅​p ✅​p ✅​p 🔄​f ✅​p ✅​p
❌​ TestAccept/bundle/resources/apps/lifecycle-started ✅​p ✅​p ✅​p ✅​p ✅​p ❌​F
🔄​ TestAccept/bundle/resources/apps/lifecycle-started-omitted ✅​p ✅​p 🔄​f ✅​p 🔄​f ✅​p
🔄​ TestAccept/bundle/resources/apps/lifecycle-started-omitted/DMS=true ✅​p ✅​p 🔄​f ✅​p 🔄​f ✅​p
❌​ TestAccept/bundle/resources/apps/lifecycle-started/DMS= ✅​p ✅​p ✅​p ✅​p ✅​p ❌​F
🔄​ TestAccept/bundle/resources/catalogs/comment_out_of_band ✅​p ✅​p ✅​p ✅​p ✅​p 🔄​f
🔄​ TestAccept/bundle/resources/catalogs/comment_out_of_band/DMS=true ✅​p ✅​p ✅​p ✅​p ✅​p 🔄​f
❌​ TestAccept/bundle/resources/clusters/deploy/data_security_mode ❌​F ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/clusters/deploy/data_security_mode/DMS= ❌​F ✅​p ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/clusters/deploy/data_security_mode/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/clusters/deploy/update-after-create ❌​F ✅​p ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/clusters/deploy/update-after-create/DMS= ❌​F ✅​p ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/clusters/lifecycle-started ❌​F ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/clusters/lifecycle-started-toggle ❌​F ✅​p ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DMS= ❌​F ✅​p ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DMS=true ❌​F ✅​p ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/clusters/lifecycle-started/DMS= ❌​F ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/clusters/lifecycle-started/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/clusters/resize-terminated-fallback ❌​F ✅​p ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/clusters/resize-terminated-fallback/DMS= ❌​F ✅​p ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/clusters/resize-terminated-fallback/DMS=true ❌​F ✅​p ✅​p ✅​p ✅​p ✅​p
🔄​ TestAccept/bundle/resources/dashboards/change-embed-credentials ✅​p ✅​p 🔄​f 🔄​f ✅​p ✅​p
🔄​ TestAccept/bundle/resources/dashboards/change-embed-credentials/DMS= ✅​p ✅​p 🔄​f 🔄​f ✅​p ✅​p
🔄​ TestAccept/bundle/resources/dashboards/serialized-inline ✅​p ✅​p 🔄​f ✅​p ✅​p ✅​p
🔄​ TestAccept/bundle/resources/dashboards/serialized-inline/DMS=/READPLAN=1 ✅​p ✅​p 🔄​f ✅​p ✅​p ✅​p
🔄​ TestAccept/bundle/resources/grants/catalogs ✅​p ✅​p ✅​p ✅​p 🔄​f ✅​p
🔄​ TestAccept/bundle/resources/grants/catalogs/DMS= ✅​p ✅​p ✅​p ✅​p 🔄​f ✅​p
❌​ TestAccept/bundle/resources/grants/schemas/all_privileges_manage ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/grants/schemas/all_privileges_manage/DMS= ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
🔄​ TestAccept/bundle/resources/grants/volumes ✅​p ✅​p ✅​p ✅​p ✅​p 🔄​f
🔄​ TestAccept/bundle/resources/grants/volumes/DMS= ✅​p ✅​p ✅​p ✅​p ✅​p 🔄​f
❌​ TestAccept/bundle/resources/job_runs/failed_run ✅​p ❌​F ✅​p ✅​p ✅​p 🔄​f
🔄​ TestAccept/bundle/resources/job_runs/failed_run/DMS= ✅​p ✅​p ✅​p ✅​p ✅​p 🔄​f
❌​ TestAccept/bundle/resources/job_runs/failed_run/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/job_runs/wait ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/job_runs/wait/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/jobs/alert-task ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/jobs/alert-task/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/jobs/check-metadata ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/jobs/check-metadata/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/jobs/cluster_policy/config_conflicts_policy ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/jobs/cluster_policy/config_conflicts_policy/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/jobs/cluster_policy/default_flag ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/jobs/cluster_policy/default_flag/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/jobs/cluster_policy/fixed_addition ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/jobs/cluster_policy/fixed_addition/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/jobs/cluster_policy/owned_tag_drift ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/jobs/cluster_policy/owned_tag_drift/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/jobs/cluster_policy/policy_id_scoping ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/jobs/cluster_policy/policy_id_scoping/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/jobs/double-underscore-keys ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/jobs/double-underscore-keys/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/jobs/fail-on-active-runs ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/jobs/fail-on-active-runs/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/jobs/no-git-provider ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/jobs/no-git-provider/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/jobs/shared-root-path ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/jobs/shared-root-path/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/mcp_services/lifecycle ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/mcp_services/lifecycle/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/model_provider_services/lifecycle ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/model_provider_services/lifecycle/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/model_services/lifecycle ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/model_services/lifecycle/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/model_serving_endpoints/basic ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
🔄​ TestAccept/bundle/resources/model_serving_endpoints/basic/DMS= ✅​p ✅​p ✅​p ✅​p ✅​p 🔄​f
❌​ TestAccept/bundle/resources/model_serving_endpoints/basic/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p 🔄​f
❌​ TestAccept/bundle/resources/model_serving_endpoints/drift/recreated_same_name ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/model_serving_endpoints/drift/recreated_same_name/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/models/basic ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/models/basic/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/models/empty-name ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/models/empty-name/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/permissions/dashboards/create ✅​p ❌​F ✅​p ✅​p 🙈​s 🙈​s
❌​ TestAccept/bundle/resources/permissions/dashboards/create/DMS=true ✅​p ❌​F ✅​p ✅​p
❌​ TestAccept/bundle/resources/permissions/jobs/current_can_manage_run ✅​p ❌​F ✅​p ✅​p 🙈​s 🙈​s
❌​ TestAccept/bundle/resources/permissions/jobs/current_can_manage_run/DMS=true ✅​p ❌​F ✅​p ✅​p
❌​ TestAccept/bundle/resources/permissions/jobs/delete_one ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/permissions/jobs/delete_one/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions ✅​p ❌​F 🙈​s 🙈​s 🙈​s 🙈​s
❌​ TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions/DMS=true ✅​p ❌​F
❌​ TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions ✅​p ❌​F 🙈​s 🙈​s 🙈​s 🙈​s
❌​ TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions/DMS=true ✅​p ❌​F
❌​ TestAccept/bundle/resources/pipelines/allow-duplicate-names ✅​p ❌​F 🔄​f ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/pipelines/allow-duplicate-names/DMS=true ✅​p ❌​F 🔄​f ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/pipelines/auto-approve ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/pipelines/auto-approve/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/pipelines/cluster_policy ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/pipelines/cluster_policy/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/pipelines/lakeflow-pipeline ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/pipelines/lakeflow-pipeline/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/pipelines/recreate ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/pipelines/recreate/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/pipelines/update ✅​p ❌​F ✅​p ✅​p ✅​p 🔄​f
🔄​ TestAccept/bundle/resources/pipelines/update/DMS= ✅​p ✅​p ✅​p ✅​p ✅​p 🔄​f
❌​ TestAccept/bundle/resources/pipelines/update/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/postgres_branches/basic ✅​p ❌​F 🙈​s 🙈​s 🙈​s 🙈​s
❌​ TestAccept/bundle/resources/postgres_branches/basic/DMS=true ✅​p ❌​F
❌​ TestAccept/bundle/resources/postgres_branches/purge_on_delete ✅​p ❌​F 🙈​s 🙈​s 🙈​s 🙈​s
❌​ TestAccept/bundle/resources/postgres_branches/purge_on_delete/DMS=true ✅​p ❌​F
❌​ TestAccept/bundle/resources/postgres_branches/update_ttl ❌​F ✅​p 🙈​s 🙈​s 🙈​s 🙈​s
❌​ TestAccept/bundle/resources/postgres_branches/update_ttl/DMS=true ❌​F ✅​p
❌​ TestAccept/bundle/resources/postgres_databases/replace_existing ❌​F ✅​p 🙈​s 🙈​s 🙈​s 🙈​s
❌​ TestAccept/bundle/resources/postgres_databases/replace_existing/DMS=true ❌​F ✅​p
❌​ TestAccept/bundle/resources/postgres_endpoints/add_settings ❌​F ✅​p 🙈​s 🙈​s 🙈​s 🙈​s
❌​ TestAccept/bundle/resources/postgres_endpoints/add_settings/DMS= ❌​F ✅​p
❌​ TestAccept/bundle/resources/postgres_endpoints/basic ❌​F ✅​p 🙈​s 🙈​s 🙈​s 🙈​s
❌​ TestAccept/bundle/resources/postgres_endpoints/basic/DMS=true ❌​F ✅​p
❌​ TestAccept/bundle/resources/postgres_projects/remove_history_retention ❌​F ✅​p 🙈​s 🙈​s 🙈​s 🙈​s
❌​ TestAccept/bundle/resources/postgres_projects/remove_history_retention/DMS=true ❌​F ✅​p
❌​ TestAccept/bundle/resources/postgres_projects/update_display_name ❌​F ✅​p 🙈​s 🙈​s 🙈​s 🙈​s
❌​ TestAccept/bundle/resources/postgres_projects/update_display_name/DMS=true ❌​F ✅​p
❌​ TestAccept/bundle/resources/postgres_projects/update_keeps_children ❌​F ✅​p 🙈​s 🙈​s 🙈​s 🙈​s
❌​ TestAccept/bundle/resources/postgres_projects/update_keeps_children/DMS=true ❌​F ✅​p
❌​ TestAccept/bundle/resources/postgres_projects/without_project_id ❌​F ✅​p 🙈​s 🙈​s 🙈​s 🙈​s
❌​ TestAccept/bundle/resources/postgres_projects/without_project_id/DMS=true ❌​F ✅​p
❌​ TestAccept/bundle/resources/postgres_roles/basic ❌​F ✅​p 🙈​s 🙈​s 🙈​s 🙈​s
❌​ TestAccept/bundle/resources/postgres_roles/basic/DMS=true ❌​F ✅​p
❌​ TestAccept/bundle/resources/postgres_roles/recreate ❌​F ✅​p 🙈​s 🙈​s 🙈​s 🙈​s
❌​ TestAccept/bundle/resources/postgres_roles/recreate-postgres-role ❌​F ✅​p 🙈​s 🙈​s 🙈​s 🙈​s
❌​ TestAccept/bundle/resources/postgres_roles/recreate-postgres-role/DMS=true ❌​F ✅​p
❌​ TestAccept/bundle/resources/postgres_roles/recreate/DMS=true ❌​F ✅​p
❌​ TestAccept/bundle/resources/postgres_roles/replace_existing ❌​F ✅​p 🙈​s 🙈​s 🙈​s 🙈​s
❌​ TestAccept/bundle/resources/postgres_roles/replace_existing/DMS=true ❌​F ✅​p
❌​ TestAccept/bundle/resources/postgres_roles/update ❌​F ✅​p 🙈​s 🙈​s 🙈​s 🙈​s
❌​ TestAccept/bundle/resources/postgres_roles/update/DMS=true ❌​F ✅​p
❌​ TestAccept/bundle/resources/postgres_snapshot_schedules/basic ❌​F ✅​p 🙈​s 🙈​s 🙈​s 🙈​s
❌​ TestAccept/bundle/resources/postgres_snapshot_schedules/basic/DMS=true ❌​F ✅​p
❌​ TestAccept/bundle/resources/postgres_snapshot_schedules/out-of-band ❌​F ✅​p 🙈​s 🙈​s 🙈​s 🙈​s
❌​ TestAccept/bundle/resources/postgres_snapshot_schedules/out-of-band/DMS=true ❌​F ✅​p
❌​ TestAccept/bundle/resources/postgres_synced_tables/basic ❌​F ✅​p 🙈​s 🙈​s 🙈​s 🙈​s
❌​ TestAccept/bundle/resources/postgres_synced_tables/basic/DMS=true ❌​F ✅​p
❌​ TestAccept/bundle/resources/postgres_synced_tables/recreate ❌​F ❌​F 🙈​s 🙈​s 🙈​s 🙈​s
Top 50 slowest tests (at least 2 minutes):
duration env testname
25:40 aws linux-2core-8gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=true
15:10 aws linux-2core-8gb TestAccept/bundle/resources/clusters/deploy/simple/DMS=true
14:24 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=true
13:19 gcp linux-2core-8gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=
12:54 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=true
12:53 aws linux-2core-8gb TestAccept/bundle/resources/clusters/deploy/simple/DMS=
11:47 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=
11:30 gcp linux-2core-8gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=true
11:25 aws linux-2core-8gb TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=1
11:02 azure linux-2core-8gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=true
10:57 aws-windows-latest-4core-16gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=true
10:56 gcp linux-2core-8gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=
10:47 aws linux-2core-8gb TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=1
10:43 aws linux-2core-8gb TestAccept/bundle/resources/clusters/deploy/data_security_mode/DMS=true
10:38 azure-windows-latest-4core-16gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=true
10:32 aws linux-2core-8gb TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=
10:05 aws-windows-latest-4core-16gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=
9:59 aws linux-2core-8gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=
9:53 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DMS=
9:49 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DMS=true
9:44 aws linux-2core-8gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=true
9:37 azure linux-2core-8gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=
9:33 azure-windows-latest-4core-16gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=
9:32 gcp linux-2core-8gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=true
9:28 gcp linux-2core-8gb TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=
9:24 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/deploy/update-after-create/DMS=true
9:23 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/deploy/local_ssd_count/DMS=true
9:21 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=1
9:03 azure linux-2core-8gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=true
8:49 aws-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DMS=
8:41 gcp linux-2core-8gb TestAccept/bundle/resources/clusters/deploy/local_ssd_count/DMS=
8:40 gcp-windows-latest-4core-16gb TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=1
8:34 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=
8:31 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=1
8:28 gcp linux-2core-8gb TestAccept/bundle/config-remote-sync/multiple_resources/DMS=
8:17 aws linux-2core-8gb TestAccept/bundle/resources/clusters/deploy/update-after-create/DMS=true
8:15 azure linux-2core-8gb TestAccept/bundle/config-remote-sync/multiple_resources/DMS=
8:11 azure-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=
8:11 aws-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DMS=true
8:10 aws linux-2core-8gb TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=
7:58 gcp linux-2core-8gb TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=
7:49 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/deploy/local_ssd_count/DMS=
7:44 azure-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=true
7:38 gcp linux-2core-8gb TestAccept/bundle/resources/clusters/deploy/local_ssd_count/DMS=true
7:31 aws linux-2core-8gb TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=
7:27 azure-windows-latest-4core-16gb TestAccept/bundle/templates/default-python/combinations/classic/DLT=no/DMS=/NBOOK=yes/PY=yes/READPLAN=1
7:18 azure linux-2core-8gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=
7:18 azure-windows-latest-4core-16gb TestAccept/bundle/templates/default-python/integration_classic/DMS=/UV_PYTHON=3.11
7:11 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=1
7:07 aws linux-2core-8gb TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=1
(66 table rows omitted to keep the report under 60000 bytes)

deco-sdk-tagging Bot added a commit that referenced this pull request Nov 4, 2026
## Release v1.24.0

### Notable Changes

 * A variable used as the value of a secret is now sensitive: referencing it from any other field, such as a job parameter or a secret's `comment`, is an error because the value would be used in plain text. Mark other secret-holding variables with `sensitive: true` to get the same protection. ([#7288](#7288))

### CLI

 * Fix `databricks auth login` and `databricks configure` overwriting the parent profile's host and token when saving a profile with a dotted name such as `team.prod` next to an existing `[team]`. ([#7266](#7266))
 * `databricks auth login` and `databricks auth token` now reject the name of an existing profile after "Create a new profile" instead of logging in to that profile. ([#7196](#7196))
 * `databricks auth login` and `databricks auth token` now reject a host that is not a URL with a hostname, such as `/`, `?o=123` or `https://`, instead of falling back to `DATABRICKS_HOST` or failing later. An empty host after "Enter a host URL manually" in the login profile picker no longer starts discovery login. ([#7195](#7195))
 * Prompts that validate their input, such as the `databricks configure` host prompt, no longer open with a red cross before anything is typed. ([#7314](#7314))
 * `databricks ssh connect` now documents `--environment-version` for choosing the serverless environment version, starts a separate default-named server for each version, and rejects the flag together with `--cluster`. Default connection names also include the environment version in their hash, so the default name when `--environment-version` is not specified changes with this release. Configuration associated with the old connection name (secret scope, SSH keys and known hosts in your local `.databricks` folder) will no longer be used and can be safely removed. ([#7310](#7310))

### AI Runtime

 * Show workspace-supported accelerator types in `databricks air run -h config.compute.accelerator_type`. ([#7275](#7275))
 * `air list` now reports `No active runs found.` for an empty active-only result. ([#7276](#7276))
 * Stop printing a retry notice on every `air run --watch`; retries are still reported when they happen. ([#7270](#7270))

### Bundles

 * Fix `bundle plan` reporting an update to an app's `config.env` values on every run, which also redeployed the app on every `bundle deploy`. The Apps API returns environment variable names only, so `value` and `value_from` are no longer compared against the remote deployment. ([#7326](#7326))
 * Add the `data_quality_monitors` resource for data quality monitors on Unity Catalog schemas and tables (direct engine only). ([#7094](#7094))
 * `bundle deploy` now asks for confirmation before recreating or deleting a Feature View, and `bundle deploy` and `bundle destroy` warn that FeatureSpecs using a Feature View are not checked. ([#7164](#7164))
 * Accept grant `privileges` values that the SDK enum does not list yet: `bundle validate` no longer warns (or errors under `--strict`) on them, and the PyDABs `Privilege` enum accepts unknown strings instead of raising. The JSON schema and PyDABs still advertise the known values for completion. ([#7315](#7315))
 * Add the `materialization_sets` resource, which materializes Feature Store Feature Views to offline and online stores. ([#7164](#7164))
 * Detect notebooks with the same rule as the workspace: a `.py`, `.sql`, `.scala` or `.r` file is a notebook when its first line contains `Databricks notebook source`, for example after a byte order mark. Previously such a file was tracked as a plain file, so removing it locally left the remote notebook behind. ([#7290](#7290))
 * Add `sensitive: true` for bundle variables. A variable used as the value of a secret is sensitive by default. `bundle validate -o json` redacts only sensitive variables instead of every string variable, and a sensitive variable can only be referenced from a sensitive resource field (such as a secret's `value`) or from another sensitive variable. ([#7288](#7288))

### Dependency Updates

 * Bump dependencies with known vulnerabilities. ([#7305](#7305))
 * Bump dependencies with known vulnerabilities. ([#7327](#7327))
 * Update the Go SDK to [v0.191.1](https://github.com/databricks/databricks-sdk-go/releases/tag/v0.191.1). ([#7277](#7277))
 * Update the Go SDK to [v0.193.0](https://github.com/databricks/databricks-sdk-go/releases/tag/v0.193.0). ([#7303](#7303))
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.

3 participants