Skip to content

Fix #4345 (2/4): bump drifted bundled extension versions and sync the catalog - #4394

Open
CrazyBaran wants to merge 2 commits into
github:mainfrom
CrazyBaran:fix/4345-version-bumps-catalog-sync
Open

Fix #4345 (2/4): bump drifted bundled extension versions and sync the catalog#4394
CrazyBaran wants to merge 2 commits into
github:mainfrom
CrazyBaran:fix/4345-version-bumps-catalog-sync

Conversation

@CrazyBaran

@CrazyBaran CrazyBaran commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Fixes the version-drift half of #4345: the bundled agent-context and git extensions had accumulated content changes without a version bump (and assess a smaller one), so specify extension update compared equal semvers and reported "Up to date" forever on already-installed copies — the shipped fixes were never delivered.

Scope (part 2 of the split requested in review)

Following @mnriem's request to split the original #4351 into four parts, this PR carries part 2 — version/catalog bumps and bundle-pin updates, based on latest main:

  • extensions/agent-context/extension.yml, extensions/git/extension.yml1.1.0; extensions/assess/extension.yml1.0.1
  • extensions/catalog.json synced to the same versions — the catalog is what extension update compares against, and its preflight rejects a manifest whose version differs from the catalog's, so the two must move together
  • examples/bundles/*/bundle.yml pins moved to agent-context 1.1.0
  • bundler test fixtures now read the pinned version from the example bundles instead of hardcoding it (tests/bundler_helpers.py), so future bumps don't have to touch every fixture; plus the git manifest version pin in its test

All content is byte-identical to what was already reviewed on #4351 through the previous rounds — only re-partitioned.

⚠ Sequencing: merge after #4351

This PR changes the live catalog that already-released CLIs fetch from main (extensions/catalog.json). Without the local bundled-update support from #4351, a released CLI that sees these bumped versions would offer an update it then fails to install — bundled extensions have no download URL. Per the sequence suggested in review:

  1. Fix #4345 (1/4): install bundled extension updates from the local package #4351 (local bundled-update support) merges and ships in a release first
  2. then this PR lands, and upgraded CLIs deliver the bumped extensions from their local package while older CLIs are told to upgrade spec-kit

The other parts

  1. CI version-bump guardFix #4345 (3/4): CI guard requiring version bumps on bundled extension changes #4395 (independent; once merged it will also validate this PR's bump/catalog sync)
  2. Content-hash staleness detectionfeat/4345-content-staleness-detection, stacked on Fix #4345 (1/4): install bundled extension updates from the local package #4351

Refs #4345.

🤖 Generated with Claude Code

Jakub Baranowski and others added 2 commits September 1, 2026 19:33
…xt, git 1.1.0; assess 1.0.1)

The bundled agent-context and git extensions have carried version 1.0.0
since they were created while their content kept changing - including
fixes for failures that made them unusable on some platforms
(agent-context: 15 commits, +1,120/-169 across 7 of its 8 files;
git: 23 commits, +2,191/-567 across all 21 files). Because
`specify extension update` compares semver only, every installed copy
is reported "Up to date (v1.0.0)" forever and never receives those
fixes (github#4345).

Bump both manifests to 1.1.0 and sync extensions/catalog.json so
existing installs finally see an available update. assess also drifted
(one docs-only change to a shipped command file since its version was
set), so it gets a patch bump to 1.0.1; bug has no drift and stays at
1.0.0.

Refs github#4345

Assisted-by: Claude Code (model: claude-fable-5, autonomous)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…em in fixtures

Copilot review round 3 on github#4351: the agent-context bump left every
checked-in bundle pinned to 1.0.0. BundleExtensionPrimitive enforces
exact pins against the bundled manifest, so the offline installs in
tests/integration/test_bundler_local_install.py and
test_bundler_init_install.py failed, and all four
examples/bundles/*/bundle.yml examples stopped being installable.

- examples/bundles/{business-analyst,developer,product-manager,
  security-researcher}/bundle.yml: agent-context pin 1.0.0 -> 1.1.0
  (exact pins are the point of the example format, so they stay
  literal).
- The two integration-test fixtures now resolve the pin through a new
  tests/bundler_helpers.bundled_extension_version() helper, which reads
  the version via the same _locate_bundled_extension lookup the
  primitive enforces against - so the fixtures test the bundler's pin
  mechanics rather than a frozen version literal, and the next
  legitimate extension bump cannot silently break them again.

The git and assess extensions are not pinned by any checked-in bundle;
tests/contract/test_bundle_cli.py's 1.0.0 pin feeds `bundle validate`,
which checks existence only, and keeps passing unchanged.

Refs github#4345

Assisted-by: Claude Code (model: claude-fable-5, autonomous)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

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.

🔵 Needs a closer look

Catalog publication must wait until #4351 is merged and shipped, and that prerequisite remains open.

Pull request overview

Synchronizes bundled extension versions so updates can detect and deliver previously drifted content.

Changes:

  • Bumps agent-context and git to 1.1.0, and assess to 1.0.1.
  • Synchronizes the built-in catalog and example bundle pins.
  • Derives test fixture pins from bundled manifests.
File summaries
File Description
extensions/agent-context/extension.yml Bumps agent-context version.
extensions/assess/extension.yml Bumps assess version.
extensions/git/extension.yml Bumps git version.
extensions/catalog.json Synchronizes catalog versions and timestamp.
examples/bundles/business-analyst/bundle.yml Updates agent-context pin.
examples/bundles/developer/bundle.yml Updates agent-context pin.
examples/bundles/product-manager/bundle.yml Updates agent-context pin.
examples/bundles/security-researcher/bundle.yml Updates agent-context pin.
tests/bundler_helpers.py Adds bundled-version lookup helper.
tests/integration/test_bundler_init_install.py Uses the current bundled version.
tests/integration/test_bundler_local_install.py Uses the current bundled version.
tests/extensions/git/test_git_extension.py Updates the expected git version.
Review details
  • Files reviewed: 12/12 changed files
  • Comments generated: 0
  • Review effort level: Balanced

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@mnriem mnriem added the triage-must-have Verdict: high-value, important work for Spec Kit — do first label Sep 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

triage-must-have Verdict: high-value, important work for Spec Kit — do first

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants