Skip to content

Restore latest skills for CLI 1.22+ - #7069

Merged
simonfaltum merged 7 commits into
mainfrom
simonfaltum/aitools-restore-latest
Oct 19, 2026
Merged

simonfaltum merged 7 commits into
mainfrom
simonfaltum/aitools-restore-latest

Conversation

@simonfaltum

@simonfaltum simonfaltum commented Oct 15, 2026 •

Copy link
Copy Markdown
Member

Changes

  • Restore latest published raw skills for CLI 1.22.0+ with "skills": "latest". Keep earlier ranges pinned.
  • Keep 0.2.30 as a compiled fallback. Reject automatic downgrades before overwriting or pruning skills, including with --force. Explicit DATABRICKS_SKILLS_REF and compatibility pins still allow intentional downgrades.
  • Use the skills fallback only for raw-file delivery. Version checks and plugin operations treat a failed latest-release lookup as unknown.

Why

Raw skills were stuck on exact pins while plugin installs already follow the marketplace's current version. The manifest's existing "latest" value expresses the intended behavior without another property.

Pre-1.6 CLIs reject the updated remote manifest and use a valid cached or embedded manifest without returning a parse error. Losing remote AppKit and skills compatibility updates for these CLIs is accepted.

Tests

  • Passed: ./task fmt, ./task checks, ./task lint, ./task test, and ./task test-exp-aitools.
  • Focused compatibility, installer, command, and build tests passed, including failed latest-release lookups, raw-file fallback, explicit pins, and downgrade protection.
  • Verified the actual v1.5.0 loader and embedded manifest with a temporary Go overlay: both stale-cache and embedded fallback return no error for the updated remote manifest.
  • Git fsmonitor is disabled only for test subprocesses to avoid the previously reproduced local hang. Cloud integration tests weren't run locally.

This PR was written by Isaac and updated with Codex.

Signed-off-by: simonfaltum <simon.faltum@databricks.com>
Signed-off-by: simonfaltum <simon.faltum@databricks.com>
@simonfaltum
simonfaltum marked this pull request as ready for review October 15, 2026 09:09
@simonfaltum
simonfaltum requested review from a team and lennartkats-db as code owners October 15, 2026 09:09
@eng-dev-ecosystem-bot

eng-dev-ecosystem-bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: 2ef4088

Run: 39233640423

Env ✅​pass 🙈​skip Time
✅​ aws linux-2core-8gb 276 15 5:30
✅​ aws-windows-latest-4core-16gb 278 13 4:56
✅​ azure linux-2core-8gb 275 15 6:21
✅​ azure-windows-latest-4core-16gb 277 13 4:40
✅​ gcp linux-2core-8gb 276 15 5:24
✅​ gcp-windows-latest-4core-16gb 278 13 4:10
Top 6 slowest tests (at least 2 minutes):
duration env testname
5:08 azure linux-2core-8gb TestAccept
4:51 aws-windows-latest-4core-16gb TestAccept
4:35 azure-windows-latest-4core-16gb TestAccept
4:05 gcp-windows-latest-4core-16gb TestAccept
3:48 aws linux-2core-8gb TestAccept
3:47 gcp linux-2core-8gb TestAccept

simonfaltum and others added 2 commits October 15, 2026 14:14
CLIs before 1.6.0 validate every manifest entry as semver, so a single
"skills": "latest" entry makes them reject the whole remote manifest and
fall back to stale caches or old embedded versions.

Keep skills concrete in every entry and mark the 1.22.0 range with
skills_track_latest instead. The concrete skills value doubles as the
embedded fallback, which removes skills_fallback. Tests now derive pins
from the embedded manifest so routine bumps don't break them.

Co-authored-by: Isaac <no-reply@databricks.com>
Signed-off-by: simonfaltum <simon.faltum@databricks.com>
Comment thread internal/build/cli-compat.json Outdated
Signed-off-by: simonfaltum <simon.faltum@databricks.com>
@simonfaltum
simonfaltum enabled auto-merge October 16, 2026 11:12

@pkosiec pkosiec 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.

LGTM, just a few suggestions

Comment thread libs/aitools/installer/installer.go Outdated
Comment thread .agents/skills/bump-cli-compat/SKILL.md Outdated
@simonfaltum
simonfaltum disabled auto-merge October 18, 2026 17:31
Signed-off-by: simonfaltum <simon.faltum@databricks.com>
Comment thread .nextchanges/cli/aitools-latest-skills.md Outdated
@simonfaltum
simonfaltum enabled auto-merge October 19, 2026 09:55
@simonfaltum
simonfaltum added this pull request to the merge queue Oct 19, 2026
Merged via the queue into main with commit f0403ac Oct 19, 2026
27 checks passed
@simonfaltum
simonfaltum deleted the simonfaltum/aitools-restore-latest branch October 19, 2026 10:30
deco-sdk-tagging Bot added a commit that referenced this pull request Oct 22, 2026
## Release v1.22.0

### CLI

 * Fix `databricks aitools install` overwriting newer raw skills with an older pinned release. CLI 1.22.0 and newer now install the latest published skills and prevent automatic downgrades. ([#7069](#7069))
 * Fix `auth login --timeout` not applying to the browser login, which waited for the OAuth redirect indefinitely. ([#7103](#7103))
 * Remove the 50-workspace limit in `auth login` and support searching workspaces by name or ID. ([#7071](#7071))
 * `databricks ssh connect` now fails right away with the workspace's reason when port forwarding to serverless compute is disabled, instead of waiting out the server start timeout. ([#7057](#7057))

### AI Runtime

 * `air run` now spends less time before submitting: it fetches only the user name from SCIM. ([#7153](#7153))
 * Align multi-image container name validation with backend services: allow hyphens and up to 32 characters, and reject uppercase letters and underscores. ([#7154](#7154))

### Bundles

 * The `compute_id` deprecation warning for a target now shows the full path (`targets.<name>.compute_id`). ([#7048](#7048))
 * Add `DATABRICKS_BUNDLE_STRICT_PROFILE_MATCH`, which requires a target's host and workspace ID to match exactly one profile in the config file before authenticating. Targets without a host or workspace ID are not affected. ([#7109](#7109))
 * Zero-value overrides of `presets`, `lifecycle.prevent_destroy` and `deployment` settings in includes now replace non-zero base values, and `bundle validate -o json` shows explicit zero presets. ([#7117](#7117))
 * `bundle deployment bind` and `unbind` now accept a resource as `type.key`, e.g. `jobs.foo`. ([#7128](#7128))
 * Retry more transient server errors during `bundle deploy` and `bundle destroy`, including when releasing the deploy lock and reading state. ([#7129](#7129))
 * Fix migration from Terraform failing when a deployed resource references a resource that was never deployed. ([#7157](#7157))
 * Add `app-appkit` to bundle templates to simplify starting a Databricks Apps project. ([#7004](#7004), [#7007](#7007))
 * Add support for the `features` resource type. ([#6952](#6952))
 * Fix `bundle validate` warning that `sync.include` and `sync.exclude` patterns do not match any files when `sync.paths` includes a directory outside the bundle root. ([#7122](#7122))

### Dependency Updates

 * Bump dependencies with known vulnerabilities. ([#7083](#7083))
 * Bump Go to 1.27.2. Release binaries now require macOS 13 Ventura or later. ([#7052](#7052))
 * Update the Go SDK to [v0.189.0](https://github.com/databricks/databricks-sdk-go/releases/tag/v0.189.0). ([#7138](#7138))
 * Bump Go toolchain to 1.27.3. ([#7116](#7116))
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.

4 participants