Skip to content

Resolve AppKit and Agent Skills versions from compatibility manifest#5139

Open
pkosiec wants to merge 5 commits intomainfrom
pkosiec/appkit-version-pinning
Open

Resolve AppKit and Agent Skills versions from compatibility manifest#5139
pkosiec wants to merge 5 commits intomainfrom
pkosiec/appkit-version-pinning

Conversation

@pkosiec
Copy link
Copy Markdown
Member

@pkosiec pkosiec commented Apr 30, 2026

Summary

Introduces a CLI compatibility manifest (internal/build/cli-compat.json) that maps CLI versions to compatible AppKit template and Agent Skills versions. This enables template updates to reach users without CLI releases.

The manifest is resolved with a 3-tier fallback:

  1. Fresh local cache (< 1h)
  2. Remote fetch from GitHub (with retry)
  3. Stale local cache or embedded manifest fallback

Companion PRs:

@pkosiec pkosiec temporarily deployed to test-trigger-is April 30, 2026 15:10 — with GitHub Actions Inactive
@pkosiec pkosiec temporarily deployed to test-trigger-is April 30, 2026 15:10 — with GitHub Actions Inactive
@pkosiec pkosiec temporarily deployed to test-trigger-is April 30, 2026 15:20 — with GitHub Actions Inactive
@pkosiec pkosiec temporarily deployed to test-trigger-is April 30, 2026 15:20 — with GitHub Actions Inactive
@pkosiec pkosiec temporarily deployed to test-trigger-is April 30, 2026 16:12 — with GitHub Actions Inactive
@pkosiec pkosiec temporarily deployed to test-trigger-is April 30, 2026 16:12 — with GitHub Actions Inactive
@pkosiec pkosiec temporarily deployed to test-trigger-is April 30, 2026 16:16 — with GitHub Actions Inactive
@pkosiec pkosiec temporarily deployed to test-trigger-is April 30, 2026 16:16 — with GitHub Actions Inactive
@pkosiec pkosiec temporarily deployed to test-trigger-is April 30, 2026 16:25 — with GitHub Actions Inactive
@pkosiec pkosiec temporarily deployed to test-trigger-is April 30, 2026 16:25 — with GitHub Actions Inactive
@pkosiec pkosiec temporarily deployed to test-trigger-is April 30, 2026 16:35 — with GitHub Actions Inactive
@pkosiec pkosiec temporarily deployed to test-trigger-is April 30, 2026 16:35 — with GitHub Actions Inactive
@pkosiec pkosiec marked this pull request as ready for review April 30, 2026 16:39
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 30, 2026

Approval status: pending

/cmd/apps/ - needs approval

Files: cmd/apps/init.go, cmd/apps/init_test.go, cmd/apps/manifest.go
Suggested: @MarioCadenas
Also eligible: @arsenyinfo, @keugenek, @calvarjorge, @fjakobs, @jamesbroadhead, @Shridhad, @atilafassina, @igrekun, @pffigueiredo, @ditadi

/experimental/aitools/ - needs approval

9 files changed
Suggested: @MarioCadenas
Also eligible: @arsenyinfo, @keugenek, @calvarjorge, @fjakobs, @jamesbroadhead, @Shridhad, @atilafassina, @igrekun, @pffigueiredo, @ditadi, @lennartkats-db

/internal/ - needs approval

Files: internal/build/README.md, internal/build/cli-compat.json, internal/build/clicompat.go
Suggested: @simonfaltum
Also eligible: @renaudhartert-db, @hectorcast-db, @parthban-db, @tanmay-db, @Divyansh-db, @tejaskochar-db, @mihaimitrea-db, @chrisst, @rauchy

General files (require maintainer)

4 files changed
Based on git history:

  • @pietern -- recent work in internal/build/, experimental/aitools/lib/installer/, cmd/apps/

Any maintainer (@andrewnester, @anton-107, @denik, @pietern, @shreyas-goenka, @simonfaltum, @renaudhartert-db) can approve all areas.
See OWNERS for ownership rules.

Copy link
Copy Markdown
Contributor

@renaudhartert-db renaudhartert-db left a comment

Choose a reason for hiding this comment

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

Thanks for the PR @pkosiec. Could we have a chat internally about what you're trying to achieve? I'd like to make sure that this is aligned with the overall direction we're planning to evolve that command toward.

@pkosiec pkosiec temporarily deployed to test-trigger-is May 5, 2026 12:35 — with GitHub Actions Inactive
@pkosiec pkosiec temporarily deployed to test-trigger-is May 5, 2026 12:35 — with GitHub Actions Inactive
@pkosiec pkosiec changed the title feat: resolve AppKit template version from compatibility manifest feat: CLI compatibility manifest with 3-tier fallback May 5, 2026
@pkosiec pkosiec marked this pull request as draft May 5, 2026 12:43
- Embed cli-compat.json in the CLI binary with build-time fetch
- Resolve AppKit and Agent Skills versions from the manifest
- Add 1h local cache and retry for runtime manifest fetches
- Show default AppKit version in --version flag help
- Print resolved skills version during aitools install

Co-authored-by: Isaac
@pkosiec pkosiec force-pushed the pkosiec/appkit-version-pinning branch from d7d005f to 3241ae2 Compare May 5, 2026 13:00
@pkosiec pkosiec temporarily deployed to test-trigger-is May 5, 2026 13:00 — with GitHub Actions Inactive
@pkosiec pkosiec temporarily deployed to test-trigger-is May 5, 2026 13:00 — with GitHub Actions Inactive
- Guard printVersionLine against empty latestRef to prevent confusing
  "Update available: v" output when skills version resolution fails
- Sort versionedKeys in TestEmbeddedManifest_IsWellFormed to prevent
  flaky test from map iteration randomness
- Preserve embedded manifest parse error in FetchManifest error message
- Add test for GetSkillsRef fallback to embedded manifest

Co-authored-by: Isaac
@pkosiec pkosiec temporarily deployed to test-trigger-is May 5, 2026 13:17 — with GitHub Actions Inactive
@pkosiec pkosiec temporarily deployed to test-trigger-is May 5, 2026 13:17 — with GitHub Actions Inactive
- Rename libs/depversions/ to libs/clicompat/ (package + files)
- Rename internal/build/dep_versions.go to clicompat.go
- Rename EmbeddedManifestJSON to CLICompatManifestJSON
- Extract devVersionPrefix const for "0.0.0-dev"
- Wrap both errors with %w in FetchManifest fallback
- Add template-v tag validation to bump-cli-compat skill
- Remove confusing positional args from skill (named flags only)
- Fix README: "After each AppKit or Agent Skills release"

Signed-off-by: Pawel Kosiec <pawel.kosiec@databricks.com>
@pkosiec pkosiec changed the title feat: CLI compatibility manifest with 3-tier fallback Resolve AppKit and Agent Skills versions from compatibility manifest May 5, 2026
@pkosiec pkosiec temporarily deployed to test-trigger-is May 5, 2026 13:24 — with GitHub Actions Inactive
@pkosiec pkosiec temporarily deployed to test-trigger-is May 5, 2026 13:24 — with GitHub Actions Inactive
Signed-off-by: Pawel Kosiec <pawel.kosiec@databricks.com>
@pkosiec pkosiec temporarily deployed to test-trigger-is May 5, 2026 13:30 — with GitHub Actions Inactive
@pkosiec pkosiec temporarily deployed to test-trigger-is May 5, 2026 13:30 — with GitHub Actions Inactive
- Fix stale libs/depversions/ references in README (renamed to libs/clicompat/)
- Fix incorrect "next" key description (only used for dev builds, not newer-than-all)
- Fix import ordering (clicompat before cmdctx/cmdio alphabetically)
- Fix slices import grouping in clicompat_test.go (stdlib, not separate group)
- Fix error format: semicolon instead of period before hint text
- Fix FetchManifest godoc: "4-tier fallback" to match numbered list
- Fix writeLocalManifest comment: explain temp-file-then-rename pattern
- Fix README example values to match actual manifest
- Fix flaky test: pre-populate cache to avoid real network calls

Co-authored-by: Isaac
@pkosiec pkosiec temporarily deployed to test-trigger-is May 5, 2026 13:59 — with GitHub Actions Inactive
@pkosiec pkosiec temporarily deployed to test-trigger-is May 5, 2026 13:59 — with GitHub Actions Inactive
@pkosiec pkosiec marked this pull request as ready for review May 5, 2026 13:59
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