Skip to content

[feature] Implement optional registry versioning - #97

Merged
kmturley merged 1 commit into
mainfrom
feature/registry-versioning
Jul 31, 2026
Merged

[feature] Implement optional registry versioning#97
kmturley merged 1 commit into
mainfrom
feature/registry-versioning

Conversation

@kmturley

Copy link
Copy Markdown
Member

Summary

  • specification.md's "Registry versioning (optional)" section describes appending a version segment to a registry's root url when one is configured, so a registry can introduce breaking changes without affecting managers still pointed at the root — but nothing implemented it: ConfigRegistry had no version field, and Manager.sync() always called the bare registry url verbatim. Flagged (as an explicitly optional item) in an internal spec-compliance audit.
  • Adds an optional version field to ConfigRegistry, and a registryUrl() helper (helpers/registry.ts) that appends it as a path segment onto the registry root when set, leaving unversioned registries (the common case) untouched.
  • Manager.sync() now requests through registryUrl() instead of the bare url.
  • Updated specification.md's Registries field table to document the new field.

Test plan

  • npm run check passes (format, lint, build, tests — 198/198)
  • New registryUrl() unit tests: unversioned passthrough, version appended, trailing slash on root handled
  • New Manager.sync() test asserting the versioned url is what actually gets requested (mocked apiJson)

🤖 Generated with Claude Code

specification.md's "Registry versioning (optional)" section describes
appending a version segment to a registry's root url when one is
configured, so a registry can introduce breaking changes on a new
version without affecting managers still pointed at the root - but
nothing implemented it: ConfigRegistry had no version field, and
Manager.sync() always called the bare registry url. Flagged (as an
explicitly optional/nitpick item) in an internal spec-compliance
audit.

Adds an optional `version` field to ConfigRegistry, and a
registryUrl() helper (helpers/registry.ts) that appends it as a path
segment onto the registry root when set, leaving unversioned
registries (the common case) untouched. Manager.sync() now requests
through registryUrl() instead of the bare url. Updated
specification.md's Registries field table to document the new field.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@kmturley
kmturley merged commit 2c33791 into main Jul 31, 2026
6 checks passed
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.

1 participant