Skip to content

fix: replace schema version symlinks with HTTP middleware#644

Merged
bokelley merged 1 commit into
mainfrom
bokelley/fix-v2.5-schema-url
Jan 6, 2026
Merged

fix: replace schema version symlinks with HTTP middleware#644
bokelley merged 1 commit into
mainfrom
bokelley/fix-v2.5-schema-url

Conversation

@bokelley

@bokelley bokelley commented Jan 6, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Replaces filesystem symlinks (v2, v2.5, v1) with dynamic HTTP middleware
  • Fixes version matching bug: v2.5 no longer confuses with v2.50
  • Adds caching for version directory listing (60s TTL)
  • Adds schema discovery endpoint at GET /schemas/

Test plan

  • All existing tests pass (schema validation, examples, etc.)
  • New test suite with 17 tests covering version matching logic, regex patterns, and regression tests for the original bugs
  • Manual testing to verify /schemas/, /schemas/v2/, and /schemas/v2.5/ redirect correctly

🤖 Generated with Claude Code

Replace filesystem symlinks (v2, v2.5, v1) with dynamic HTTP middleware that resolves version aliases at request time. This improves Docker compatibility where symlinks can cause issues.

Changes:
- Add version alias middleware that rewrites /v2.5/* → /2.5.1/*
- Fix version matching bug: use semver parsing instead of string prefix matching
- Add caching for version directory listing (60s TTL)
- Add directory redirect middleware to serve /schemas/2.6.0/ → /schemas/2.6.0/index.json
- Add schema discovery endpoint at GET /schemas/ with available versions and aliases
- Remove createSymlink() function from build script

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
@bokelley bokelley merged commit ebdb56a into main Jan 6, 2026
6 checks passed
bokelley added a commit that referenced this pull request Jan 6, 2026
Replace filesystem symlinks (v2, v2.5, v1) with dynamic HTTP middleware that resolves version aliases at request time. This improves Docker compatibility where symlinks can cause issues.

Changes:
- Add version alias middleware that rewrites /v2.5/* → /2.5.1/*
- Fix version matching bug: use semver parsing instead of string prefix matching
- Add caching for version directory listing (60s TTL)
- Add directory redirect middleware to serve /schemas/2.6.0/ → /schemas/2.6.0/index.json
- Add schema discovery endpoint at GET /schemas/ with available versions and aliases
- Remove createSymlink() function from build script

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
BaiyuScope3 added a commit that referenced this pull request Jan 7, 2026
Merged 32 commits from main including:
- Schema: Allow additional properties for forward compatibility (#646)
- Schema versioning: Replace symlinks with HTTP middleware (#644)
- Workflow: Add schema sync to versioned docs (#639)
- Addie: Home button fix, sidebar, thread flow improvements
- Admin: PostHog integration, activity feed, engagement scoring
- Slack: User mentions, leader names, channel fixes
- Members: Search, intro emails, founding badge
- Server: Company type validation, HTML entity parsing

Conflicts resolved:
- .github/workflows/sync-versioned-docs.yml: kept main version with schema sync
- package-lock.json: accepted main version
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