Proto commits in wundergraph/cosmo

These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)

Commit:4f2bf2d
Author:Wilson Rivera
Committer:GitHub

feat: add terms of service confirmation for prompt to query (#3231)

Commit:5fdbd59
Author:Wilson Rivera

Merge branch 'wilson/cosmo-335-cosmo-cloud-prompt-to-query-via-mcp-product' into wilson/cosmo-424-cosmo-add-terms-of-service-confirmation-for-prompt-to-query # Conflicts: # connect-go/gen/proto/wg/cosmo/platform/v1/platform.pb.go # connect/src/wg/cosmo/platform/v1/platform_pb.ts # controlplane/migrations/meta/0148_snapshot.json # controlplane/migrations/meta/_journal.json

Commit:0e149be
Author:Wilson Rivera

Merge branch 'main' into wilson/cosmo-335-cosmo-cloud-prompt-to-query-via-mcp-product

Commit:c55b467
Author:Wilson Rivera

feat: implement ai feature terms acceptance

Commit:808eac6
Author:Sam Gaus

Merge branch 'main' into sam/cosmo-415-studio-playground-and-schema-view-should-show-feature platform_pb.ts and platform.pb.go conflicted where both sides added to the platform service. The proto merged cleanly, so both are regenerated from it rather than resolved by hand.

Commit:fd12221
Author:Suvij Surya
Committer:GitHub

feat: add an option to set default headers (#3208)

Commit:f627581
Author:JivusAyrus

feat: add an option to set default headers

Commit:becdb12
Author:Wilson Rivera

chore: cleanup removed rpc

Commit:d76342a
Author:Wilson Rivera

Merge remote-tracking branch 'origin/wilson/cosmo-335-cosmo-cloud-prompt-to-query-via-mcp-product' into wilson/cosmo-335-cosmo-cloud-prompt-to-query-via-mcp-product # Conflicts: # controlplane/src/core/services/PromptToQueryService.ts

Commit:792740d
Author:Sam Gaus

feat: show feature subgraphs in playground and schema dropdowns Both dropdowns listed a graph's feature flags but not the feature subgraphs those flags contain. Feature subgraphs are now nested under their flag. Scoping them to a flag matters. Feature flags compose independently, so a feature subgraph shared by two flags can be pinned at a different schema version in each, and either can be behind the latest publish when a recomposition failed. Entries therefore show the version that flag's serving composition used, read from graph_composition_subgraphs, not the latest published SDL. GetSubgraphSDLFromLatestComposition cannot resolve them at all since feature subgraphs never appear in the base composition. GetFeatureFlagsInLatestCompositionByFederatedGraph gains a feature_subgraphs field carrying those pinned versions. In the playground, selecting a feature subgraph queries its own routing URL directly, like a base subgraph, so no X-Feature-Flag header is sent.

Commit:098ab60
Author:Alberto Garcia Hierro
Committer:GitHub

refactor(ai): resolve query schemas by version Accept the active router configuration version in GenerateQuery and resolve its SDL within the authenticated federated graph. Return not-found when the graph or schema version cannot be resolved.

Commit:2a0fffa
Author:Alberto Garcia Hierro
Committer:GitHub

refactor(proto): move query generation to AI service Move the existing GenerateQuery RPC and response types from NodeService to a dedicated AIService while preserving the current hash-based behavior. Register the new service with the existing router authentication flow.

Commit:8c22265
Author:Wilson Rivera
Committer:GitHub

feat: implement ptq rpc and index schemas

Commit:6a8da18
Author:Suvij Surya
Committer:GitHub

fix: show feature flags for a federated graph under split config (#3129)

Commit:48f77b3
Author:Alberto Garcia Hierro

refactor(ai): resolve query schemas by version Accept the active router configuration version in GenerateQuery and resolve its SDL within the authenticated federated graph. Return not-found when the graph or schema version cannot be resolved.

Commit:ee068a4
Author:Alberto Garcia Hierro

refactor(proto): move query generation to AI service Move the existing GenerateQuery RPC and response types from NodeService to a dedicated AIService while preserving the current hash-based behavior. Register the new service with the existing router authentication flow.

Commit:d2dc1cd
Author:Alessandro Pagnin

feat: add filter by proposal name

Commit:93e7b27
Author:JivusAyrus

Merge branch 'main' of github.com:wundergraph/cosmo into suvij/cosmo-315-controlplane-feature-flags-not-shown-for-a-federated-graph

Commit:fd817ff
Author:Alberto Garcia Hierro

refactor: align generate query version field

Commit:7fe0fa1
Author:Alberto Garcia Hierro

feat: resolve prompt-to-query indexes by schema version

Commit:b3a786e
Author:Alberto Garcia Hierro

wip: expose prompt-to-query through MCP

Commit:a9b0b5d
Author:Ahmet Soormally
Committer:Ahmet Soormally

fix(router): keep schema discovery protos out of the shared buf module

Commit:455e0c6
Author:Ahmet Soormally

feat(router): add MCP schema discovery for search and query generation

Commit:9543225
Author:Nithin Kumar B
Committer:GitHub

feat(controlplane): add CreateFederatedSubgraphs batch rpc (#3152)

Commit:2ebe73f
Author:Nithin Kumar B

feat(controlplane): add CreateFederatedSubgraphs batch rpc Creates several subgraphs in a single request. Every entry is validated before anything is written and the writes share one transaction, so the request either creates all of the subgraphs or none of them. Creating a subgraph triggers no composition, so this is purely a batched write; schemas are published afterwards with PublishFederatedSubgraphs. The routing and subscription validation that create, publish and update each carried their own near-identical copy of now lives in a single helper. The wording of a few error messages is normalised as a result.

Commit:d685de5
Author:JivusAyrus

Merge branch 'main' of github.com:wundergraph/cosmo into suvij/cosmo-315-controlplane-feature-flags-not-shown-for-a-federated-graph

Commit:e81b5fa
Author:Suvij Surya
Committer:GitHub

feat: resolve feature subgraphs in federated graph field usage (#3144)

Commit:899b02e
Author:JivusAyrus

feat: resolve feature subgraphs in federated graph field usage

Commit:b9c52bf
Author:Wilson Rivera

feat: implement ptq rpc and index schemas

Commit:a2e8028
Author:JivusAyrus

fix(controlplane): report feature flags only when they have a valid composition

Commit:a552348
Author:Ludwig Bedacht
Committer:GitHub

fix: incorrect behavior for abstract types on required fields (#3130)

Commit:536bd54
Author:Ludwig Bedacht

chore: add test cases for abstract required fields

Commit:417c9e8
Author:Wilson Rivera
Committer:GitHub

fix: orphan subgraphs not shown as active on the header (#3086)

Commit:7fbab81
Author:Wilson Rivera

fix: orphan subgraphs not shown as active on the header

Commit:96663cc
Author:Wilson Rivera
Committer:GitHub

fix: active subgraph not shown on the subgraph details page (#3063)

Commit:7454692
Author:Wilson Rivera

fix: active subgraph not shown on the subgraph details page

Commit:8aadbf0
Author:Suvij Surya
Committer:GitHub

feat: add support for feature subgraph checks (#3029)

Commit:cb138b5
Author:JivusAyrus

Merge branch 'main' of github.com:wundergraph/cosmo into suvij/eng-9391-controlplane-support-schema-checks-for-feature-subgraphs-and

Commit:f704e34
Author:Wilson Rivera
Committer:GitHub

feat: decouple feature flag composition when split config is enabled (#3034)

Commit:4b26cda
Author:Milinda Dias

fix(entity-caching): rename EntityCachingConfiguration.entity_cache to entity_cache_configurations Align the proto field with origin/main (entity_cache_configurations). The old name serialized to JSON as entityCache, so the router silently dropped the control-plane's entity caching config on unmarshal. Regenerated Go/TS bindings and updated all GetEntityCache() consumers.

Commit:9a6df7b
Author:Milinda Dias

fix(entity-caching): rename EntityCachingConfiguration.entity_cache to entity_cache_configurations Align the proto field with origin/main (entity_cache_configurations). The old name serialized to JSON as entityCache, so the router silently dropped the control-plane's entity caching config on unmarshal. Regenerated Go/TS bindings and updated all GetEntityCache() consumers in the router core and tests.

Commit:426cbf0
Author:Milinda Dias

fix(entity-caching): rename EntityCachingConfiguration.entity_cache to entity_cache_configurations Align the proto field name with origin/main (entity_cache_configurations), which the control plane emits. The old name (entity_cache -> JSON entityCache) caused the router to silently drop the entity caching config on unmarshal. Regenerated Go/TS bindings and updated the router-config builder.

Commit:0c26d31
Author:Wilson Rivera

feat: decouple feature flag composition when split config is enabled

Commit:a9e3827
Author:Milinda Dias
Committer:Milinda Dias

Merge remote-tracking branch 'origin/main' into milinda/entity-caching-2-router # Conflicts: # composition/src/directive-definition-data/directive-definition-data.ts # composition/src/errors/errors.ts # composition/src/router-configuration/types.ts # composition/src/v1/constants/constants.ts # composition/src/v1/constants/directive-definitions.ts # composition/src/v1/normalization/normalization-factory.ts # composition/src/v1/normalization/types/types.ts # composition/src/v1/normalization/utils.ts # composition/tests/v1/directives/cache-populate.test.ts # connect-go/gen/proto/wg/cosmo/node/v1/node.pb.go # connect/src/wg/cosmo/node/v1/node_pb.ts # proto/wg/cosmo/node/v1/node.proto # router/gen/proto/wg/cosmo/node/v1/node.pb.go # shared/src/router-config/builder.ts

Commit:15b3265
Author:Milinda Dias
Committer:Milinda Dias

Merge remote-tracking branch 'origin/main' into milinda/entity-caching-1b-demo # Conflicts: # composition/src/directive-definition-data/directive-definition-data.ts # composition/src/errors/errors.ts # composition/src/router-configuration/types.ts # composition/src/v1/constants/constants.ts # composition/src/v1/constants/directive-definitions.ts # composition/src/v1/normalization/normalization-factory.ts # composition/src/v1/normalization/types/types.ts # composition/src/v1/normalization/utils.ts # composition/tests/v1/directives/cache-populate.test.ts # connect-go/gen/proto/wg/cosmo/node/v1/node.pb.go # connect/src/wg/cosmo/node/v1/node_pb.ts # proto/wg/cosmo/node/v1/node.proto # router/gen/proto/wg/cosmo/node/v1/node.pb.go # shared/src/router-config/builder.ts

Commit:8c47d71
Author:JivusAyrus

feat: add support for feature subgraph checks

Commit:a45b33c
Author:Suvij Surya
Committer:GitHub

fix: pagination in proposals page (#2989)

Commit:3db24b0
Author:Milinda Dias
Committer:GitHub

fix: proto changes for entity cache (#2996)

Commit:e96a801
Author:Milinda Dias

Merge queryCache into requestScoped (requestScoped becomes 5/5) Restacks @openfed__requestScoped on top of the queryCache branch. The resulting tree is identical to the previous combined stack tip; this commit re-applies the requestScoped feature (including its assertions in shared/test/entity-caching.test.ts) on top of queryCache.

Commit:efa4cdf
Author:Milinda Dias

chore: remove requestScoped from queryCache branch (queryCache becomes 4/5) Reorders the stack so @openfed__queryCache/@openfed__is sits directly on main as the 4th PR. The @openfed__requestScoped feature is removed here and re-applied on top in the requestScoped branch (now 5/5). The requestScoped assertions in shared/test/entity-caching.test.ts move to that PR. Proto regenerated (request_scoped_configurations field 4 dropped; query_cache remains field 5).

Commit:a8cc2af
Author:Milinda Dias
Committer:GitHub

feat(composition): @openfed__cachePopulate directive (3/5) (#2984) Co-authored-by: Aenimus <david@wundergraph.com>

Commit:cd52465
Author:Milinda Dias

Merge branch 'milinda/requestScoped-directive' into milinda/queryCache-directive # Conflicts: # composition/src/router-configuration/types.ts # composition/src/v1/normalization/normalization-factory.ts # composition/src/v1/warnings/warnings.ts # connect-go/gen/proto/wg/cosmo/node/v1/node.pb.go # connect/src/wg/cosmo/node/v1/node_pb.ts # proto/wg/cosmo/node/v1/node.proto # router/gen/proto/wg/cosmo/node/v1/node.pb.go # shared/src/router-config/builder.ts

Commit:dc74e32
Author:Milinda Dias

fix: review comments

Commit:9058b72
Author:Milinda Dias

Merge branch 'milinda/requestScoped-directive' into milinda/queryCache-directive Reconcile queryCache's cache-extraction (old dispatcher structure) with requestScoped's refactored inline structure (from cachePopulate review fixes): - Adopt requestScoped's inline 1-arg extractCacheInvalidateConfig/extractCachePopulateConfig (called during the parent walk); trim processRootFieldCacheDirectives() to only dispatch @openfed__queryCache extraction + @openfed__is placement validation, re-add its normalize() call - extractQueryCacheConfig writes via getOrInitializeEntityCaching (required-field type) - Restore queryCache's richer maxAgeNotPositiveIntegerErrorMessage({directiveName, value}) and update entityCache/cachePopulate call sites + tests to the object form - Dedup imports (ENTITY_CACHE/OPENFED_ENTITY_CACHE/EntityCacheConfiguration/EntityCacheDirectiveNode) - Regenerate node.pb.go (max_age_seconds non-optional); rename test helper to createSubgraphWithDefaultName

Commit:e48fef3
Author:Milinda Dias

Merge branch 'milinda/cachePopulate-directive' into milinda/requestScoped-directive Resolve conflicts from cachePopulate's review-fix refactor: - EntityCachingConfiguration: cachePopulateConfigurations now required; keep requestScopedFields - Dedup imports in normalization-factory.ts / utils.ts (ENTITY_CACHE, OPENFED_ENTITY_CACHE) - Adopt CacheInvalidateConfig -> CacheInvalidateConfiguration rename - normalize(): drop obsolete processRootFieldCacheDirectives() (cache invalidate/populate now extracted inline); extractRequestScopedFields() uses getOrInitializeEntityCaching() - Regenerate node.pb.go (max_age_seconds non-optional per cachePopulate) - Rename test helper createSubgraphWithDefault -> createSubgraphWithDefaultName

Commit:da93894
Author:Milinda Dias

fix: review comments

Commit:845b75a
Author:Suvij Surya
Committer:GitHub

Merge branch 'main' into suvij/eng-9781-studio-proposals-table-shows-page-1-of-1-when-more-than-one

Commit:19bbbe5
Author:Milinda Dias
Committer:GitHub

feat(composition): @openfed__cacheInvalidate directive (2/5) (#2983) Co-authored-by: Aenimus <daviditstutt@gmail.com>

Commit:44cab48
Author:Milinda Dias

Merge branch 'milinda/cacheInvalidate-directive' into milinda/cachePopulate-directive

Commit:c6fb320
Author:Milinda Dias

Merge branch 'milinda/entityCache-directive' into milinda/cacheInvalidate-directive

Commit:2075164
Author:Milinda Dias
Committer:GitHub

feat(composition): @openfed__entityCache directive (1/5) (#2980)

Commit:f21a2a2
Author:Milinda Dias
Committer:GitHub

Merge branch 'main' into milinda/entityCache-directive

Commit:238e4fb
Author:JivusAyrus

refactor: rename totalProposalsCount to totalCount in proposal responses

Commit:ea22596
Author:Milinda Dias

Merge branch 'milinda/requestScoped-directive' into milinda/queryCache-directive # Conflicts: # composition/src/v1/normalization/normalization-factory.ts # connect-go/gen/proto/wg/cosmo/node/v1/node.pb.go # connect/src/wg/cosmo/node/v1/node_pb.ts # router/gen/proto/wg/cosmo/node/v1/node.pb.go # shared/src/router-config/builder.ts

Commit:09ebecc
Author:Milinda Dias

Merge branch 'milinda/cachePopulate-directive' into milinda/requestScoped-directive # Conflicts: # composition/src/v1/normalization/normalization-factory.ts # connect-go/gen/proto/wg/cosmo/node/v1/node.pb.go # connect/src/wg/cosmo/node/v1/node_pb.ts # router/gen/proto/wg/cosmo/node/v1/node.pb.go

Commit:bcbc740
Author:Milinda Dias

Merge branch 'milinda/cacheInvalidate-directive' into milinda/cachePopulate-directive # Conflicts: # composition/src/v1/normalization/normalization-factory.ts # composition/src/v1/normalization/types/types.ts # connect-go/gen/proto/wg/cosmo/node/v1/node.pb.go # connect/src/wg/cosmo/node/v1/node_pb.ts # router/gen/proto/wg/cosmo/node/v1/node.pb.go # shared/src/router-config/builder.ts

Commit:34122a1
Author:Milinda Dias

Merge branch 'milinda/entityCache-directive' into milinda/cacheInvalidate-directive # Conflicts: # composition/src/router-configuration/types.ts # composition/src/v1/normalization/normalization-factory.ts # connect-go/gen/proto/wg/cosmo/node/v1/node.pb.go # connect/src/wg/cosmo/node/v1/node_pb.ts # proto/wg/cosmo/node/v1/node.proto # router/gen/proto/wg/cosmo/node/v1/node.pb.go # shared/src/router-config/builder.ts

Commit:ecc8047
Author:Milinda Dias

fix: review comments

Commit:c3301e0
Author:JivusAyrus

fix: pagination in proposals page

Commit:69f5af6
Author:Milinda Dias

feat(composition): @openfed__entityCache directive

Commit:1d693ce
Author:Milinda Dias

feat(composition): @openfed__cacheInvalidate directive

Commit:b52c0a2
Author:Milinda Dias

feat(composition): @openfed__cachePopulate directive

Commit:4c90da9
Author:Milinda Dias

feat(composition): @openfed__queryCache and @openfed__is directives

Commit:faca30a
Author:Milinda Dias

feat(composition): @openfed__requestScoped directive

Commit:37a198e
Author:Milinda Dias

feat(composition): @openfed__queryCache and @openfed__is directives

Commit:2859cba
Author:Milinda Dias

feat(composition): @openfed__requestScoped directive

Commit:c7044af
Author:Milinda Dias

feat(composition): @openfed__cachePopulate directive

Commit:3e8d3c5
Author:Milinda Dias

feat(composition): @openfed__cacheInvalidate directive

Commit:62bbc85
Author:Milinda Dias

feat(composition): @openfed__entityCache directive

Commit:f54ef2a
Author:Wilson Rivera
Committer:GitHub

feat: controlpanel move to a accept first strategy for batch (#2963)

Commit:9aef4ca
Author:Ondrej Synacek
Committer:GitHub

feat: delete & list clients using wgc (#2795)

Commit:51f766e
Author:Milinda Dias
Committer:Milinda Dias

feat(composition): entity caching directives, proto config types, and generated bindings Extracted from jensneuse/entity-caching-v2 (PR #2777) — composition + proto layer only. - composition: @openfed__entityCache / @openfed__queryCache / @openfed__requestScoped directive definitions, extraction in normalization-factory, ConfigurationData types, warnings, and tests (incl. fuzz + mapping rules) - proto: additive DataSourceConfiguration fields 17-21 and new messages (EntityCacheConfiguration, RootFieldCacheConfiguration, EntityKeyMapping, EntityCacheFieldMapping, CachePopulateConfiguration, CacheInvalidateConfiguration, RequestScopedFieldConfiguration) - regenerated bindings: router/gen, connect-go, connect (incl. graphqlmetrics regen side-effects), composition-go bundle - shared: router-config serializer for the new proto fields Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

Commit:6029ae0
Author:Ahmet Soormally
Committer:GitHub

fix(router/connectrpc): map GraphQL enum values to proto names on response path (#2928)

Commit:ccbcb76
Author:Suvij Surya
Committer:GitHub

feat: implement early stop for feature flag updates with no changes (#2932) Co-authored-by: Wilson Rivera <wilson@wundergraph.com>

Commit:9361a30
Author:Nithin Kumar B
Committer:GitHub

feat(cli): add subgraph batch-publish command (#2899)

Commit:2c2cb71
Author:Suvij Surya
Committer:GitHub

feat: add functionality to restrict the login methods of an organization (#2896) Co-authored-by: Alessandro Pagnin <ale@wundergraph.com>

Commit:42b307b
Author:Suvij Surya
Committer:GitHub

feat: add options to restrict certain namespaces to certain login methods (#2876)

Commit:89635b7
Author:Ondrej Synacek
Committer:GitHub

feat: declutter step 1 in the onboarding + new empty state (#2888)

Commit:716b786
Author:Ondrej Synacek
Committer:GitHub

feat: studio handles analytics downtime gracefully (#2878)

Commit:d465de3
Author:Jens Neuse

feat(router): entity caching with L1/L2, shadow mode, and analytics Re-implementation of PR #2777 entity caching on top of fresh origin/main (74ce84b4b6). Previous branch was hard-reset; backup preserved on backup/v2-pre-merge-attempt-2-20260524-121556 and rescue/entity-caching-merge-attempt-20260523-135801. What's added: - @openfed__entityCache, queryCache, cachePopulate, cacheInvalidate, is, requestScoped composition directives + extraction - router/pkg/entitycache: ristretto memory + go-redis L2 + circuit breaker - router/pkg/metric/entity_cache_metrics: OTLP + Prometheus instruments - router/core wiring: WithEntityCaching, WithEntityCacheInstances, EntityCachingHandlerOptions, cachingOptions(reqCtx) for per-request X-WG-Disable-Entity-Cache[-L1/-L2] header overrides (dev-only), EntityCacheKeyInterceptor module interface - Proto extensions on node.v1.DataSourceConfiguration: EntityCacheConfiguration, QueryCacheConfiguration / RootFieldCacheConfiguration, CachePopulateConfiguration, CacheInvalidateConfiguration, EntityKeyMapping/EntityCacheFieldMapping, RequestScopedFieldConfiguration - Playground Cache Explorer view + cache-mode dropdown - demo cachegraph/cachegraph_ext/viewer subgraphs + cache-demo runner - router-tests/entity_caching test suite (59 subtests) - composition tests: entity-caching (60), entity-cache-mapping-rules, entity-cache-fuzz (~135 total) - benchmark/ k6 scenarios for cache performance - cli/cachegraph-cachedemo compose configs Dep bump: - graphql-go-tools v2.4.0 -> v2.4.1-0.20260523190154-590f67798262 (PR #1259 HEAD, includes widening fix 85fb34e388 for L1 request-scoped refetch behavior). Adapts to: - LoaderCache.Set TTL moved to per-entry CacheEntry.TTL - SubscriptionUpdater.Close(kind) split into Complete()/Error(data)/Done() - resolve.VariablesView replaces *astjson.Value in cost calc - ArenaResolveGraphQLResponse (3-arg) replaces ResolveGraphQLResponse - resolve.ConnectionID typed alias; NewConnectionID() - plan.FieldCost (was FieldWeight) + DirectiveArgumentWeights - subscriptionclient.ErrFailedUpgrade / ErrInvalidSubprotocol - graphql_datasource.WithUpgradeClient/WithStreamingClient options Adopts main's individual-metric-fields pattern in graphServer (dropped the grouped serverMetrics struct). Adopts main's separated Complete() + Done() pattern in subscription_event_updater (adapters pair the calls). Validation: - go build ./... clean for router, router-tests, demo - router-tests/entity_caching: 59/59 subtests pass - router/core unit tests (entity cache wiring): pass - router/pkg/{entitycache,metric,config}: pass - composition entity-caching tests: 60/60 pass - composition entity-cache mapping + fuzz: 135/135 pass - composition build clean - demo end-to-end smoke: router serves cached entities, cache hit observed (17ms cold -> 0ms warm), embedded playground includes Cache Explorer + cache-mode dropdown Supersedes the failed merge attempt preserved on the rescue branch. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

Commit:cbd541c
Author:Milinda Dias
Committer:Milinda Dias

emit FIELD_SELECTION events for nested object accessors When events export is enabled, the router writes one FIELD_SELECTION row per Object/Array accessor selected inside an entity scope, in addition to the existing per-leaf FIELD_HASH rows. Emission rides on EventsExport.Enabled — no separate sub-flag. Downstream consumers filter via the EventType column if they only want field_hash. The accessor row gives downstream coverage analytics (hub) the signal to count an accessor as observed even though cosmo's router flattens nested reads onto the parent entity and never emits a row keyed by the accessor name on its own. Wire change: - proto: new EventType.FIELD_SELECTION = 13, new string child_type_name field at slot 94 (reserved 95 for a future concrete_type_name). - engine flag plumbed through CachingOptions.EmitFieldSelections; router sets it to true whenever EventsExport.Enabled is true. - router builder mirrors the FIELD_HASH PII guard (drop on KeyHash=0). - writer appends ChildTypeName as the last column; new ClickHouse migration adds the column (additive, no row rewrite). - end-to-end router-test asserts FIELD_SELECTION for Warehouse.location emits with ChildTypeName=Location, non-zero KeyHash, zero FieldHash. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

Commit:cc85f26
Author:Jens Neuse
Committer:Ahmet Soormally

chore(code-mode-v2): demo full-federation fix + yoko proto/mock refresh Multi-topic snapshot of code-mode-v2 work in progress. demo/code-mode: - Include all non-EDFS demo subgraphs in the local federation: hobbies, products, test1, countries + the products_fg feature graph (under feature flag myff), in addition to the existing employees, family, availability, mood. Mirrors demo/graph-no-edg.yaml. The previous 4-subgraph set silently lacked Employee.hobbies (and Country, products, test1 fields), so code-mode-search-tools could never resolve prompts about those domains. - Fix BSD sed bug in prepare-schemas.sh: the previous regex used `\b` which macOS BSD sed treats as a literal `b`, so @authenticated stayed on type/enum/interface definitions. Switch to a portable (^|whitespace)/(non-word|EOL) anchor pair. Also extend the loop to cover all 9 subgraphs. - start.sh + run_subgraphs_subset.sh: launch the 5 added subgraphs on ports 4003/4004/4006/4009/4010 with matching wait_url checks. - README + Makefile comment: document the new subgraph set. yoko proto + mock + client: - Rewrite proto/wg/cosmo/code_mode/yoko/v1/yoko.proto and regenerate router/gen/proto/.../{yoko.pb.go, yokov1connect/yoko.connect.go}. - Rewrite demo/code-mode/yoko-mock/main.go (and tests). - Refresh router/internal/codemode/yoko/{client.go, client_test.go, searcher.go} against the new contract. - Bump demo/code-mode/{mcp-stdio-proxy,yoko-mock}/go.{mod,sum}. Connect demo: - Refresh demo/code-mode-connect/{README.md, router-config.yaml, start.sh} against the same yoko contract. Build / generate: - Makefile: pass --include-imports to `buf generate` so transitive protobuf imports are regenerated alongside the yoko v1 schema. - buf.yaml + buf.lock: pin the buf module deps now needed for that --include-imports run. - router/gen/proto/buf/validate/validate.pb.go: regenerated buf validate import. Misc: - router/pkg/codemode/varschema: new package + tests. - router/pkg/grpcconnector/grpcplugin/grpc_plugin.go: minor update. - router/internal/codemode/sandbox/sandbox_test.go + router/internal/codemode/server/observability_handler_test.go: adjust tests for the refreshed client surface. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

Commit:85b4593
Author:Jens Neuse
Committer:Ahmet Soormally

feat(router): add Code Mode MCP server Adds a second MCP server next to the existing per-operation one, exposing two generic tools instead of one-tool-per-operation: - code_mode_search_tools: takes prompts, generates GraphQL ops, registers them in the session catalog, returns their TS signatures. - code_mode_run_js: runs an async arrow against the session catalog inside a JS sandbox (V8 isolate), with tools.<name>(vars) bound to the registered ops. Includes: - router/internal/codemode: harness, sandbox, server, storage, tsgen, yoko (query-gen client), calltrace, observability. - proto/wg/cosmo/code_mode/yoko/v1: Yoko query-gen Connect API. - router/pkg/config: code_mode config block (auth, sandbox limits, query-generation endpoint, named-ops, mutation approval). - demo/code-mode: local federation + Yoko mock + start scripts + MCP client config snippets (Claude Code, Claude Desktop, Codex). - demo/code-mode-connect: alternate demo against an external yoko Connect supergraph (set YOKO_DIR). - router-tests: end-to-end named-ops integration test.

Commit:f0d0ef6
Author:Milinda Dias

Squash merge cohort-config-versions-rpc into milinda/entity-caching-3-feature-flag-rollout-router

Commit:3f125a2
Author:Wilson Rivera
Committer:GitHub

feat: add feature flag recomposition support (#2853)

Commit:522968a
Author:Wilson Rivera

Merge branch 'feat/split-configs' into wilson/eng-9541-controlplane-add-rpc-method-to-recompose-a-specific-feature # Conflicts: # connect-go/gen/proto/wg/cosmo/platform/v1/platform.pb.go # connect-go/gen/proto/wg/cosmo/platform/v1/platformv1connect/platform.connect.go # connect/src/wg/cosmo/platform/v1/platform-PlatformService_connectquery.ts # connect/src/wg/cosmo/platform/v1/platform_connect.ts # connect/src/wg/cosmo/platform/v1/platform_pb.ts # controlplane/src/core/bufservices/PlatformService.ts # controlplane/src/core/services/CompositionService.ts # proto/wg/cosmo/platform/v1/platform.proto

Commit:3bd0039
Author:Wilson Rivera

chore: add audit log and error counts

Commit:6a64b7e
Author:Wilson Rivera

feat: add rpc method to recompose feature flags

Commit:ba63680
Author:Dominik Korittki
Committer:GitHub

fix(router): fix unmarshall error of mapper.json during config fetch (#2842)

Commit:3c5d33e
Author:Jens Neuse

chore(code-mode-v2): demo full-federation fix + yoko proto/mock refresh Multi-topic snapshot of code-mode-v2 work in progress. demo/code-mode: - Include all non-EDFS demo subgraphs in the local federation: hobbies, products, test1, countries + the products_fg feature graph (under feature flag myff), in addition to the existing employees, family, availability, mood. Mirrors demo/graph-no-edg.yaml. The previous 4-subgraph set silently lacked Employee.hobbies (and Country, products, test1 fields), so code-mode-search-tools could never resolve prompts about those domains. - Fix BSD sed bug in prepare-schemas.sh: the previous regex used `\b` which macOS BSD sed treats as a literal `b`, so @authenticated stayed on type/enum/interface definitions. Switch to a portable (^|whitespace)/(non-word|EOL) anchor pair. Also extend the loop to cover all 9 subgraphs. - start.sh + run_subgraphs_subset.sh: launch the 5 added subgraphs on ports 4003/4004/4006/4009/4010 with matching wait_url checks. - README + Makefile comment: document the new subgraph set. yoko proto + mock + client: - Rewrite proto/wg/cosmo/code_mode/yoko/v1/yoko.proto and regenerate router/gen/proto/.../{yoko.pb.go, yokov1connect/yoko.connect.go}. - Rewrite demo/code-mode/yoko-mock/main.go (and tests). - Refresh router/internal/codemode/yoko/{client.go, client_test.go, searcher.go} against the new contract. - Bump demo/code-mode/{mcp-stdio-proxy,yoko-mock}/go.{mod,sum}. Connect demo: - Refresh demo/code-mode-connect/{README.md, router-config.yaml, start.sh} against the same yoko contract. Build / generate: - Makefile: pass --include-imports to `buf generate` so transitive protobuf imports are regenerated alongside the yoko v1 schema. - buf.yaml + buf.lock: pin the buf module deps now needed for that --include-imports run. - router/gen/proto/buf/validate/validate.pb.go: regenerated buf validate import. Misc: - router/pkg/codemode/varschema: new package + tests. - router/pkg/grpcconnector/grpcplugin/grpc_plugin.go: minor update. - router/internal/codemode/sandbox/sandbox_test.go + router/internal/codemode/server/observability_handler_test.go: adjust tests for the refreshed client surface. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>