Skip to content

Conversation

@andreyyudin
Copy link

Nested $ref values inside remote documents were resolved using the root spec’s index/path instead of the referenced document’s context, which breaks relative refs inside remote files.

Changes

  • Resolve nested refs using the referenced document’s index/path context when configured.
  • Cache compiled JSONPath expressions to reduce repeated parse/alloc overhead during node lookups and tighten timeout handling.

@codecov
Copy link

codecov bot commented Jan 21, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.52%. Comparing base (7b6048a) to head (5da73a0).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #505      +/-   ##
==========================================
+ Coverage   99.50%   99.52%   +0.01%     
==========================================
  Files         190      190              
  Lines       23013    23063      +50     
==========================================
+ Hits        22900    22953      +53     
+ Misses         68       67       -1     
+ Partials       45       43       -2     
Flag Coverage Δ
unittests 99.52% <100.00%> (+0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@andreyyudin andreyyudin reopened this Jan 29, 2026
@andreyyudin andreyyudin force-pushed the fix/resolve-nested-refs-context branch from afa8498 to 5da73a0 Compare January 29, 2026 14:21
@daveshanley
Copy link
Member

Did you use AI for this?

The fix is down in the guts of the system, which is highly complex! I am surprised at the intricacy of the fix - it smells like AI to me.... amirite?

Copy link
Member

@daveshanley daveshanley left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Solid work!

@andreyyudin
Copy link
Author

Thank you for approving! Yes, AI help was utilised, though even with that it took quite a bit of involvement. This is a rather complex issue and there should be another PR coming for Vacuum itself. Our team has encountered a problem with Spectral handling ref resolution on a large input - it would simply run out of memory or hang. We switched to Vacuum as it was producing a result, yet after investigating more this issue was found.

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.

2 participants