Sync fork with upstream wundergraph/graphql-go-tools up to v2.0.0-rc.261#3
Merged
Sync fork with upstream wundergraph/graphql-go-tools up to v2.0.0-rc.261#3
Conversation
…raph#1407) When sanitizing the fields in the error extensions, we did not keep the order. This made the response rather non-deterministic. This PR makes sure that the order of fields are retained. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Improvements** * Improved GraphQL error JSON handling and marshaling for more reliable, order-preserving error payloads * Made error-extension filtering order-agnostic so only allowed fields propagate from subgraph errors * Exposed additional downstream error context (reason, response code, and downstream errors) for richer responses * **Tests** * Added tests validating allowed extension field propagation in error flows * Added test helper to run post-evaluation assertions with configurable resolver options <!-- end of auto-generated comment: release notes by coderabbit.ai --> ## Checklist - [ ] I have discussed my proposed changes in an issue and have received approval to proceed. - [ ] I have followed the coding standards of the project. - [ ] Tests or benchmarks have been added or updated. <!-- Please add any additional information or context regarding your changes here. -->
🤖 I have created a release *beep* *boop* --- ## [2.0.0-rc.257](wundergraph/graphql-go-tools@v2.0.0-rc.256...v2.0.0-rc.257) (2026-02-25) ### Bug Fixes * keep order of error extension fields after sanitization ([wundergraph#1407](wundergraph#1407)) ([e974cd3](wundergraph@e974cd3)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Fixed an issue where the order of error extension fields could be lost during sanitization in v2. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
They have grown and will grow some more. It is better to have them separated. Updates ENG-8739
…lan (wundergraph#1411) When a GraphQL operation contains complex types inside an inline fragment for gRPC subgraphs the fields of that complex type never get populated with the data of the subgraphs response and hence are becoming null, even if there actually was is data. This is because the gRPC execution visitors don't create the expected response for complex types inside inline fragments. This is because the visitor doesn't account for inline fragments when traversing through selection sets and tries to place the response message at `currentResponse.Fields` rather than `currentResponse.FieldSelectionSet`. This is fixed by ensuring the latter fields are populated in this case. --------- Co-authored-by: Ludwig Bedacht <ludwig.bedacht@gmail.com>
🤖 I have created a release *beep* *boop* --- ## [2.0.0-rc.258](wundergraph/graphql-go-tools@v2.0.0-rc.257...v2.0.0-rc.258) (2026-03-05) ### Bug Fixes * handle complex types inside inline fragments in gRPC execution plan ([wundergraph#1411](wundergraph#1411)) ([3b4dbcb](wundergraph@3b4dbcb)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Fixed an issue with handling complex types in inline fragments. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
…h#1413) Field resolvers should not be called when we are unable to resolve any data to invoke the resolver RPC. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added nullable nullMetrics field to Category. * relatedCategory resolver now accepts an optional include parameter. * **Improvements** * Engine avoids invoking nested field resolvers when parent data or context is absent, returning nulls and reducing unnecessary remote calls. * **Tests** * Added unit and integration-style tests (including an in-process spy) validating nullMetrics behavior and non-invocation of nested resolvers. <!-- end of auto-generated comment: release notes by coderabbit.ai --> ## Checklist - [ ] I have discussed my proposed changes in an issue and have received approval to proceed. - [ ] I have followed the coding standards of the project. - [ ] Tests or benchmarks have been added or updated. <!-- Please add any additional information or context regarding your changes here. -->
🤖 I have created a release *beep* *boop* --- ## [2.0.0-rc.259](wundergraph/graphql-go-tools@v2.0.0-rc.258...v2.0.0-rc.259) (2026-03-05) ### Bug Fixes * skip invocation for empty context in field resolvers ([wundergraph#1413](wundergraph#1413)) ([5885c48](wundergraph@5885c48)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
When resolving scalar value data from non list types in the context we can run into a panic. This PR adds additional checks to ensure we don't resolve data from an invalid context. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added a top-level category query and featuredCategory resolution for subcategories to fetch single categories and featured relations. * **Bug Fixes** * Improved robustness by short-circuiting on invalid/null messages and adding explicit error for missing object fields. * **Tests** * Added tests and tracing to verify category query behavior and that field resolvers are not invoked for null category results. <!-- end of auto-generated comment: release notes by coderabbit.ai --> ## Checklist - [ ] I have discussed my proposed changes in an issue and have received approval to proceed. - [ ] I have followed the coding standards of the project. - [ ] Tests or benchmarks have been added or updated. <!-- Please add any additional information or context regarding your changes here. -->
🤖 I have created a release *beep* *boop* --- ## [2.0.0-rc.260](wundergraph/graphql-go-tools@v2.0.0-rc.259...v2.0.0-rc.260) (2026-03-05) ### Bug Fixes * invalid data resolution for null parent types ([wundergraph#1428](wundergraph#1428)) ([b7863be](wundergraph@b7863be)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Fixed invalid data resolution when handling null parent types. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- Important: Before developing new features, please open an issue to discuss your ideas with the maintainers. This ensures project alignment and helps avoid unnecessary work for you. Thank you for your contribution! Please provide a detailed description below and ensure you've met all the requirements. Squashed commit messages must follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) standard to facilitate changelog generation. Please ensure your PR title follows the Conventional Commits specification, using the appropriate type (e.g., feat, fix, docs) and scope. Examples of good PR titles: - 💥feat!: change implementation in an non-backward compatible way - ✨feat(auth): add support for OAuth2 login - 🐞fix(router): add support for custom metrics - 📚docs(README): update installation instructions - 🧹chore(deps): bump dependencies to latest versions --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Tests** * Enhanced federation test coverage with comprehensive multi-subgraph scenario testing, including abstract types and cross-subgraph field resolution patterns. * **Bug Fixes** * Improved parent node selection logic in federated queries to prevent unnecessary traversal in certain external field scenarios. <!-- end of auto-generated comment: release notes by coderabbit.ai --> ## Checklist - [ ] I have discussed my proposed changes in an issue and have received approval to proceed. - [ ] I have followed the coding standards of the project. - [ ] Tests or benchmarks have been added or updated. <!-- Please add any additional information or context regarding your changes here. -->
🤖 I have created a release *beep* *boop* --- ## [2.0.0-rc.261](wundergraph/graphql-go-tools@v2.0.0-rc.260...v2.0.0-rc.261) (2026-03-06) ### Bug Fixes * fix selecting parent of unique nodes ([wundergraph#1430](wundergraph#1430)) ([fd0e06a](wundergraph@fd0e06a)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Fixed an issue with selecting parent of unique nodes <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Co-authored-by: yokazawa <95338339+yokazawa@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Update branch with upstream changes
Sync fork with upstream wundergraph/graphql-go-tools up to v2.0.0-rc.261
Mar 7, 2026
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
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.
Merges 11 upstream commits (v2.0.0-rc.257 → v2.0.0-rc.261) from
wundergraph/graphql-go-toolsinto this fork.Bug fixes merged
Refactoring merged
execution_engine_test.gosize (chore: move cost tests into separate file wundergraph/graphql-go-tools#1418)Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.