Skip to content

fix: preserve fragments when rewriting variant refs - #64

Open
horaceewang-TT wants to merge 2 commits into
Universal-Commerce-Protocol:mainfrom
horaceewang-TT:fix/ref-fragment-variant-rewrite
Open

fix: preserve fragments when rewriting variant refs#64
horaceewang-TT wants to merge 2 commits into
Universal-Commerce-Protocol:mainfrom
horaceewang-TT:fix/ref-fragment-variant-rewrite

Conversation

@horaceewang-TT

Copy link
Copy Markdown
Contributor

Description

Fixes request variant reference rewriting for external JSON Schema $ref values that contain fragments.

Previously, references such as nested/child.json#/$defs/item were skipped because the preprocessing logic treated every reference containing # as a local reference.

The updated implementation separates the external file path from the fragment, rewrites the file path to its request variant, and appends the original fragment unchanged:

nested/child_create_request.json#/$defs/item

Purely local references such as #/$defs/local remain unchanged.

A regression test has been added to verify both external fragment rewriting and local reference handling.

Category (Required)

Please select one or more categories that apply to this change.

  • Core Protocol: Changes to the base communication layer, global context, or breaking refactors. (Requires Technical Council approval)
  • Governance/Contributing: Updates to GOVERNANCE.md, CONTRIBUTING.md, or CODEOWNERS. (Requires Governance Council approval)
  • Capability: New schemas (Discovery, Cart, etc.) or extensions. (Requires Maintainer approval)
  • Documentation: Updates to README, or documentations regarding schema or capabilities. (Requires Maintainer approval)
  • Infrastructure: CI/CD, Linters, or build scripts. (Requires DevOps Maintainer approval)
  • Maintenance: Version bumps, lockfile updates, or minor bug fixes. (Requires DevOps Maintainer approval)
  • SDK: Language-specific SDK updates and releases. (Requires DevOps Maintainer approval)
  • Samples / Conformance: Maintaining samples and the conformance suite. (Requires Maintainer approval)
  • UCP Schema: Changes to the ucp-schema tool (resolver, linter, validator). (Requires Maintainer approval)
  • Community Health (.github): Updates to templates, workflows, or org-level configs. (Requires DevOps Maintainer approval)

Related Issues

#63

Checklist

  • [x ] I have followed the Contributing Guide (including Conventional Commits title requirements and ! for breaking changes).
  • I have updated the documentation (if applicable).
  • My changes pass all local linting and formatting checks.
  • I have added tests that prove my fix is effective or that my feature works.
  • New and existing unit tests pass locally with my changes.
  • (For Core/Capability) I have included/updated the relevant JSON schemas.
  • I have regenerated Python Pydantic models by running generate_models.sh under python_sdk.

Screenshots / Logs (if applicable)

Ran 46 tests in 0.035s

OK (skipped=15)

2 files already formatted
All checks passed!

@damaz91 damaz91 added the status:needs-triage Signal that the PR is ready for human triage label Aug 5, 2026
@carolinerg1 carolinerg1 added status:under-review gov:needs-tc-review and removed status:needs-triage Signal that the PR is ready for human triage labels Aug 5, 2026
@carolinerg1
carolinerg1 requested review from carolinerg1 and damaz91 and removed request for maximenajim and pjordan August 5, 2026 16:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants