Skip to content

Conversation

@Noroth
Copy link
Contributor

@Noroth Noroth commented Sep 30, 2025

@coderabbitai summary

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.
  • Documentation has been updated on https://github.com/wundergraph/cosmo-docs.
  • I have read the Contributors Guide.

Noroth and others added 30 commits July 28, 2025 11:37
 - wgc@0.88.1
 - @wundergraph/protographic@0.6.0
 - router@0.238.0
 - wgc@0.88.2
 - @wundergraph/protographic@0.7.0
 - router@0.239.0
The OperationKit.unmarshalOperation method checks if non-empty sha256 hash in GraphQLRequestExtensions.PersistedQuery.Sha256Hash is valid.
It rejects hex strings that could not be sha256 hash and raises en error that it cannot parse the body.

I have decided to do strict validation for SHA-256 hashes.
I kept the old behvaiour of not accepting an empty hash value as valid.

Tests now deal only with valid hash values.

I have changed how we handle errors returned by operationKit.UnmarshalOperation* methods.
Now the client will see the error returned by the "UnmarshalOperationFromBody".
I added a couple of tests for "UnmarshalOperationFromURL".
When operation names are sent to downstream subgraphs, send them in the
following format:

    $operationName__$subgraphName__$fetchID
 - wgc@0.88.3
 - @wundergraph/cosmo-connect@0.115.1
 - controlplane@0.154.1
 - @wundergraph/protographic@0.7.1
 - @wundergraph/cosmo-shared@0.40.1
 - studio@0.122.3
 - wgc@0.88.4
 - @wundergraph/protographic@0.7.2
 - router@0.240.0
 - router-plugin@0.3.0
 - router@0.240.1
 - router-plugin@0.3.1
Implement plans for subscriptions. Represent them the same way as Apollo does:

    QueryPlan {
      Subscription {
        Primary: {
          Fetch(service: "messages") {
            {
              messageInConversation(id: $id) {
                id
                text
                sentTime
              }
            }
          }
        },
        Rest: {
          Fetch(service: "employees") {
            {
              ...
            }
          }
        },
      }
    }

"Primary" key contains the subscription that is setup to receive messages from subgraph. 
"Rest" key contains the queries that willl be executed for each received message by the router.

Printing Query Plans was broken for PubSub subscriptions. 
From now on, for this type we return empty Fetch node for "Primary" key.
This allows to print QueryPlanner nodes that would not be included because of directives like "skip", "include".
 - wgc@0.89.0
 - @wundergraph/protographic@0.8.0
 - router@0.240.2
@coderabbitai
Copy link

coderabbitai bot commented Sep 30, 2025

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


🧪 Early access (Sonnet 4.5): enabled

We are currently testing the Sonnet 4.5 model, which is expected to improve code review quality. However, this model may lead to increased noise levels in the review comments. Please disable the early access features if the noise level causes any inconvenience.

Note:

  • Public repositories are always opted into early access features.
  • You can enable or disable early access features from the CodeRabbit UI or by updating the CodeRabbit configuration file.

Comment @coderabbitai help to get the list of available commands and usage tips.

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.