-
Notifications
You must be signed in to change notification settings - Fork 134
feat: versioned schemas #114
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Move schemas.ts and schemas-loose.ts into separate versioned folders - Create schemas/0.1.ts and schemas/0.2.ts for strict validation - Create schemas_loose/0.1.ts and schemas_loose/0.2.ts for loose validation - Add index files to export all historical schema versions - Update all imports to use schemas/0.2.ts - Enforce exact version values using z.literal() for both v0.1 and v0.2 - Remove dxt_version support from v0.2 schemas - Remove all passthrough() from v0.2 strict schemas - Validate privacy_policies as URLs in v0.2 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
6878e86 to
8e2ec66
Compare
…est version - Create src/schemas.ts to re-export from schemas/index.ts for test imports - Update test manifests to use manifest_version "0.2" instead of "1.0" or "1.0.0" - Fix import sorting and formatting issues in schema files - Export McpbManifestSchema from schemas/index.ts
- Add schemas/latest.ts and schemas_loose/latest.ts as aliases to current version - Update constants.ts to use latest.ts instead of hardcoded version imports - This makes version updates easier - only need to update latest.ts pointer
…mas/0.2 - Update src/index.ts, types.ts, browser.ts, cli.ts, and node.ts - All package entrypoints now use latest.ts for easier version management
- Rename CURRENT_MANIFEST_VERSION to LATEST_MANIFEST_VERSION - Rename CURRENT_MANIFEST_SCHEMA to LATEST_MANIFEST_SCHEMA - Rename CURRENT_MANIFEST_SCHEMA_LOOSE to LATEST_MANIFEST_SCHEMA_LOOSE - Update all references throughout codebase and tests
- Remove src/schemas.ts file - Update tests to import directly from src/schemas/index.js
MarshallOfSound
approved these changes
Oct 20, 2025
bf7e874 to
f7efd3a
Compare
bthompson-sys
pushed a commit
to bthompson-sys/mcpb
that referenced
this pull request
Oct 28, 2025
feat: versioned schemas
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Restructures manifest validation schemas into separate versioned folders (
schemas/andschemas_loose/) to support multiple manifest versions and enable strict/loose validation modes.Schema Organization
schemas/- Strict validation schemas (usez.strictObject())0.1.ts- v0.1 strict schema (noprivacy_policies)0.2.ts- v0.2 strict schema (addsprivacy_policieswith URL validation)index.ts- Exports all versions as namespaced modulesschemas_loose/- Loose validation schemas (usez.object()with.passthrough())0.1.ts- v0.1 loose schema0.2.ts- v0.2 loose schemaindex.ts- Exports all versions as namespaced modules