Refactor towards DFG v1 - #299
Merged
Merged
Conversation
…nt structures, and improve GraphQL query handling
…nality and improve error handling
…emove outdated unit tests
There was a problem hiding this comment.
Pull request overview
This PR refactors the SDK toward the newer DFG API surface by replacing the prior hardcoded GraphQL string layer (and legacy PPE/SolverData concepts) with a versioned GraphQL registry, adding State CRUD support, and rewriting the test suite around integration coverage.
Changes:
- Replace inline GraphQL definitions with a versioned
GraphQLRegistriesloader and update service calls to useGQL_OPS. - Introduce State CRUD APIs and remove legacy PPE/SolverData service layers.
- Replace the old unit/integration tests with a new integration test suite and updated test runner behavior.
Reviewed changes
Copilot reviewed 177 out of 179 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| test/unit/testdata/sap_test.json | Removed legacy unit test data. |
| test/unit/testFactors.jl | Removed legacy unit tests for factor serialization. |
| test/unit/testDistributions.jl | Removed legacy unit tests for distribution serialization. |
| test/unit/runtests.jl | Removed unit test runner. |
| test/runtests.jl | Run Aqua + gate integration tests on AUTH_TOKEN. |
| test/integration/test_variable.jl | New integration tests for variable CRUD and batch ops. |
| test/integration/test_state.jl | New integration tests for State CRUD. |
| test/integration/test_standard_api.jl | New integration tests for DFG “standard API” convenience methods. |
| test/integration/test_graph_queries.jl | New integration tests for neighbor queries, filters, existence checks. |
| test/integration/test_factor.jl | New integration tests for factor CRUD and summaries/skeletons. |
| test/integration/test_cleanup.jl | New cleanup routine for integration test graph/agent teardown. |
| test/integration/test_blobstore.jl | New integration tests for blob store and cached blob store. |
| test/integration/test_blobentry.jl | New integration tests for blobentry CRUD + bloblets. |
| test/integration/test_agent_graph.jl | New integration tests for agent/graph CRUD and agent bloblets. |
| test/integration/testVariable.jl | Removed legacy integration variable tests. |
| test/integration/testStandardAPI.jl | Removed legacy standard API integration test. |
| test/integration/testSolve.jl | Removed legacy solve integration tests. |
| test/integration/testInitVariable.jl | Removed legacy initVariable integration tests. |
| test/integration/testFactor.jl | Removed legacy factor integration tests. |
| test/integration/testExportSession.jl | Removed legacy exportSession integration tests. |
| test/integration/testBlobStore.jl | Removed legacy blob store integration tests. |
| test/integration/setup.jl | New shared setup for integration tests (client/agent/graph + test types). |
| test/integration/runtests.jl | New integration test runner structure. |
| test/integration/fixtures.jl | Removed legacy fixtures. |
| src/services/Workers.jl | Refactor worker start into dispatchAction + deprecate startWorker. |
| src/services/State.jl | Add State CRUD service implementation. |
| src/services/StandardAPI.jl | Refactor “standard API” wrappers to construct VariableDFG/FactorDFG. |
| src/services/SolverData.jl | Removed legacy solver-data CRUD. |
| src/services/PPE.jl | Removed legacy PPE CRUD. |
| src/services/Org.jl | Refactor org queries to GQL_OPS and typed variable tuples. |
| src/services/Model.jl | Refactor model queries/mutations to GQL_OPS; adjust model add API. |
| src/services/AsyncCalls.jl | Update async wrapper list for renamed/removed APIs. |
| src/services/Agent.jl | Refactor agent queries/mutations to GQL_OPS; add bloblet APIs. |
| src/graphql/Workflows.jl | Removed legacy GraphQL workflow strings. |
| src/graphql/Variable/Variable.jl | Removed legacy variable GraphQL strings. |
| src/graphql/Variable/SolverData.jl | Removed legacy solver-data GraphQL strings. |
| src/graphql/Variable/PPE.jl | Removed legacy PPE GraphQL strings. |
| src/graphql/Org.jl | Removed legacy org GraphQL strings. |
| src/graphql/Model.jl | Removed legacy model GraphQL strings. |
| src/graphql/Graph.jl | Removed legacy graph GraphQL strings. |
| src/graphql/Factor.jl | Removed legacy factor GraphQL strings. |
| src/graphql/BlobStore.jl | Removed legacy blob-store GraphQL strings. |
| src/graphql/BlobEntry.jl | Removed legacy blob-entry GraphQL strings. |
| src/graphql/Agent.jl | Removed legacy agent GraphQL strings. |
| src/entities/VariableTypes.jl | Removed legacy variable-type wrapper types. |
| src/entities/Variable.jl | Removed legacy input/response entity definitions tied to old schema. |
| src/entities/InferenceTypes.jl | Removed legacy inference type serialization structs. |
| src/entities/Factor.jl | Removed legacy factor input/response entity definitions. |
| src/entities/Distributions.jl | Removed legacy distribution serialization structs. |
| src/entities/NvaNodes.jl | Update/create node/input entities for new schema naming + JSON traits. |
| src/NavAbilitySDK.jl | Switch JSON/StructUtils usage; wire in GraphQLRegistries; update exports/imports. |
| src/NavAbilityModel.jl | Update blob store abstract type name. |
| src/NavAbilityDFG.jl | Update DFG type parameters and graph node type; adjust connect/link behavior; define equality. |
| src/NavAbilityClient.jl | Remove deprecated ctor; keep required token ctor. |
| src/GraphQLRegistries/v0.6/queries/variable/listVariables.graphql | New registry query: listVariables. |
| src/GraphQLRegistries/v0.6/queries/variable/getVariablesSummary.graphql | New registry query: getVariablesSummary. |
| src/GraphQLRegistries/v0.6/queries/variable/getVariablesSkeleton.graphql | New registry query: getVariablesSkeleton. |
| src/GraphQLRegistries/v0.6/queries/variable/getVariablesByIds.graphql | New registry query: getVariablesByIds. |
| src/GraphQLRegistries/v0.6/queries/variable/getVariables.graphql | New registry query: getVariables. |
| src/GraphQLRegistries/v0.6/queries/variable/getVariableSummary.graphql | New registry query: getVariableSummary. |
| src/GraphQLRegistries/v0.6/queries/variable/getVariableSkeleton.graphql | New registry query: getVariableSkeleton. |
| src/GraphQLRegistries/v0.6/queries/variable/getVariableBloblets.graphql | New registry query: getVariableBloblets. |
| src/GraphQLRegistries/v0.6/queries/variable/getVariable.graphql | New registry query: getVariable. |
| src/GraphQLRegistries/v0.6/queries/state/listStates.graphql | New registry query: listStates. |
| src/GraphQLRegistries/v0.6/queries/state/getStates.graphql | New registry query: getStates. |
| src/GraphQLRegistries/v0.6/queries/state/getState.graphql | New registry query: getState. |
| src/GraphQLRegistries/v0.6/queries/org/getOrgs.graphql | New registry query: getOrgs. |
| src/GraphQLRegistries/v0.6/queries/org/getOrg.graphql | New registry query: getOrg. |
| src/GraphQLRegistries/v0.6/queries/model/listModelBlobentries.graphql | New registry query: listModelBlobentries. |
| src/GraphQLRegistries/v0.6/queries/model/getModels.graphql | New registry query: getModels. |
| src/GraphQLRegistries/v0.6/queries/model/getModelBlobentries.graphql | New registry query: getModelBlobentries. |
| src/GraphQLRegistries/v0.6/queries/model/getModel.graphql | New registry query: getModel. |
| src/GraphQLRegistries/v0.6/queries/listNeighbors.graphql | New registry query: listNeighbors. |
| src/GraphQLRegistries/v0.6/queries/graph/listGraphs.graphql | New registry query: listGraphs. |
| src/GraphQLRegistries/v0.6/queries/graph/listGraphTags.graphql | New registry query: listGraphTags. |
| src/GraphQLRegistries/v0.6/queries/graph/listGraphBlobentries.graphql | New registry query: listGraphBlobentries. |
| src/GraphQLRegistries/v0.6/queries/graph/getGraphs_Model.graphql | New registry query: getGraphs_Model. |
| src/GraphQLRegistries/v0.6/queries/graph/getGraphBlobentries.graphql | New registry query: getGraphBlobentries. |
| src/GraphQLRegistries/v0.6/queries/graph/getGraph.graphql | New registry query: getGraph. |
| src/GraphQLRegistries/v0.6/queries/findVariablesNearTimestamp.graphql | New registry query: findVariablesNearTimestamp. |
| src/GraphQLRegistries/v0.6/queries/factor/listFactors.graphql | New registry query: listFactors. |
| src/GraphQLRegistries/v0.6/queries/factor/getFactorsSummary.graphql | New registry query: getFactorsSummary. |
| src/GraphQLRegistries/v0.6/queries/factor/getFactorsSkeleton.graphql | New registry query: getFactorsSkeleton. |
| src/GraphQLRegistries/v0.6/queries/factor/getFactors.graphql | New registry query: getFactors. |
| src/GraphQLRegistries/v0.6/queries/factor/getFactorSummary.graphql | New registry query: getFactorSummary. |
| src/GraphQLRegistries/v0.6/queries/factor/getFactorSkeleton.graphql | New registry query: getFactorSkeleton. |
| src/GraphQLRegistries/v0.6/queries/factor/getFactorBloblets.graphql | New registry query: getFactorBloblets. |
| src/GraphQLRegistries/v0.6/queries/factor/getFactor.graphql | New registry query: getFactor. |
| src/GraphQLRegistries/v0.6/queries/existsVariableFactorLabel.graphql | New registry query: existsVariableFactorLabel. |
| src/GraphQLRegistries/v0.6/queries/blobentry/listBlobentries.graphql | New registry query: listBlobentries. |
| src/GraphQLRegistries/v0.6/queries/blobentry/getBlobentry.graphql | New registry query: getBlobentry. |
| src/GraphQLRegistries/v0.6/queries/blobentry/getBlobentries.graphql | New registry query: getBlobentries. |
| src/GraphQLRegistries/v0.6/queries/blob/listBlobs.graphql | New registry query: listBlobs. |
| src/GraphQLRegistries/v0.6/queries/blob/hasBlob.graphql | New registry query: hasBlob. |
| src/GraphQLRegistries/v0.6/queries/agent/listAgents.graphql | New registry query: listAgents. |
| src/GraphQLRegistries/v0.6/queries/agent/listAgentBlobentries.graphql | New registry query: listAgentBlobentries. |
| src/GraphQLRegistries/v0.6/queries/agent/getAgents_Graph.graphql | New registry query: getAgents_Graph. |
| src/GraphQLRegistries/v0.6/queries/agent/getAgentBloblets.graphql | New registry query: getAgentBloblets. |
| src/GraphQLRegistries/v0.6/queries/agent/getAgentBlobentries.graphql | New registry query: getAgentBlobentries. |
| src/GraphQLRegistries/v0.6/queries/agent/getAgent.graphql | New registry query: getAgent. |
| src/GraphQLRegistries/v0.6/mutations/variable/deleteVariable.graphql | New registry mutation: deleteVariable. |
| src/GraphQLRegistries/v0.6/mutations/variable/addVariables.graphql | New registry mutation: addVariables. |
| src/GraphQLRegistries/v0.6/mutations/variable/addVariableBloblet.graphql | New registry mutation: addVariableBloblet. |
| src/GraphQLRegistries/v0.6/mutations/state/updateState.graphql | New registry mutation: updateState. |
| src/GraphQLRegistries/v0.6/mutations/state/deleteState.graphql | New registry mutation: deleteState. |
| src/GraphQLRegistries/v0.6/mutations/state/addStates.graphql | New registry mutation: addStates. |
| src/GraphQLRegistries/v0.6/mutations/pushGraphTags.graphql | New registry mutation: pushGraphTags. |
| src/GraphQLRegistries/v0.6/mutations/model/addModels.graphql | New registry mutation: addModels. |
| src/GraphQLRegistries/v0.6/mutations/graph/setGraphTags.graphql | New registry mutation: setGraphTags. |
| src/GraphQLRegistries/v0.6/mutations/graph/deleteGraph.graphql | New registry mutation: deleteGraph. |
| src/GraphQLRegistries/v0.6/mutations/graph/addGraphs.graphql | New registry mutation: addGraphs. |
| src/GraphQLRegistries/v0.6/mutations/factor/deleteFactor.graphql | New registry mutation: deleteFactor. |
| src/GraphQLRegistries/v0.6/mutations/factor/addFactors.graphql | New registry mutation: addFactors. |
| src/GraphQLRegistries/v0.6/mutations/factor/addFactorBloblet.graphql | New registry mutation: addFactorBloblet. |
| src/GraphQLRegistries/v0.6/mutations/dispatchAction.graphql | New registry mutation: dispatchAction. |
| src/GraphQLRegistries/v0.6/mutations/connectGraphModel.graphql | New registry mutation: connectGraphModel. |
| src/GraphQLRegistries/v0.6/mutations/connectGraphAgent.graphql | New registry mutation: connectGraphAgent. |
| src/GraphQLRegistries/v0.6/mutations/blobentry/deleteBlobentry.graphql | New registry mutation: deleteBlobentry. |
| src/GraphQLRegistries/v0.6/mutations/blobentry/addBlobentries.graphql | New registry mutation: addBlobentries. |
| src/GraphQLRegistries/v0.6/mutations/blob/deleteBlob.graphql | New registry mutation: deleteBlob. |
| src/GraphQLRegistries/v0.6/mutations/blob/createUpload.graphql | New registry mutation: createUpload. |
| src/GraphQLRegistries/v0.6/mutations/blob/createDownload.graphql | New registry mutation: createDownload. |
| src/GraphQLRegistries/v0.6/mutations/blob/completeUploadSingle.graphql | New registry mutation: completeUploadSingle. |
| src/GraphQLRegistries/v0.6/mutations/blob/completeUpload.graphql | New registry mutation: completeUpload. |
| src/GraphQLRegistries/v0.6/mutations/agent/deleteAgent.graphql | New registry mutation: deleteAgent. |
| src/GraphQLRegistries/v0.6/mutations/agent/addAgents.graphql | New registry mutation: addAgents. |
| src/GraphQLRegistries/v0.6/mutations/agent/addAgentBloblet.graphql | New registry mutation: addAgentBloblet. |
| src/GraphQLRegistries/v0.6/fragments/Workflow_fields.graphql | New registry fragment: Workflow_fields. |
| src/GraphQLRegistries/v0.6/fragments/VariableSummary_fields.graphql | New registry fragment: VariableSummary_fields. |
| src/GraphQLRegistries/v0.6/fragments/VariableSkeleton_fields.graphql | New registry fragment: VariableSkeleton_fields. |
| src/GraphQLRegistries/v0.6/fragments/VariableDFG_fields.graphql | New registry fragment: VariableDFG_fields. |
| src/GraphQLRegistries/v0.6/fragments/State_fields.graphql | New registry fragment: State_fields. |
| src/GraphQLRegistries/v0.6/fragments/Model_fields.graphql | New registry fragment: Model_fields. |
| src/GraphQLRegistries/v0.6/fragments/FactorSummary_fields.graphql | New registry fragment: FactorSummary_fields. |
| src/GraphQLRegistries/v0.6/fragments/FactorSkeleton_fields.graphql | New registry fragment: FactorSkeleton_fields. |
| src/GraphQLRegistries/v0.6/fragments/FactorDFG_fields.graphql | New registry fragment: FactorDFG_fields. |
| src/GraphQLRegistries/v0.6/fragments/Blobentry_fields.graphql | New registry fragment: Blobentry_fields. |
| src/GraphQLRegistries/GraphQLRegistries.jl | New loader to stitch fragments and build GQL_OPS. |
| src/GraphQLRegistries/.gitignore | Ignore local GraphQL tooling artifacts under registry dir. |
| src/Deprecated.jl | Update/replace deprecated APIs (on-prem blob store wrapper). |
| sandbox/dev_julialoader.jl | Removed legacy GraphQL TOML loader script. |
| docs/todo/factors.md | Update docs example field name (variableorder). |
| docs/PublicAPI_design.jl | Update public API design notes for State and typed CRUD patterns. |
| src/graphql/Workflows.jl | Removed legacy GraphQL file. |
| src/NavAbilityClient.jl | Remove deprecated kwarg-based constructor. |
| Project.toml | Bump version, switch deps (JSON/StructUtils), update DFG compat and test extras. |
| .gitignore | Ignore .graphqlrc and normalize dev/ entry. |
| attic/navability/services/Utils.jl | Remove legacy attic code. |
| attic/navability/services/UserRobotSession.jl | Remove legacy attic code. |
| attic/navability/services/Status.jl | Remove legacy attic code. |
| attic/navability/services/StandardAPI.jl | Remove legacy attic code. |
| attic/navability/services/Solve.jl | Remove legacy attic code. |
| attic/navability/services/Session.jl | Remove legacy attic code. |
| attic/navability/services/Factor.jl | Remove legacy attic code. |
| attic/navability/graphql/Variable.jl | Remove legacy attic code. |
| attic/navability/graphql/UserRobotSession.jl | Remove legacy attic code. |
| attic/navability/graphql/Status.jl | Remove legacy attic code. |
| attic/navability/graphql/Session.jl | Remove legacy attic code. |
| attic/navability/graphql/Factor.jl | Remove legacy attic code. |
| attic/navability/graphql/DataBlobs.jl | Remove legacy attic code. |
| attic/navability/entities/Variable.jl | Remove legacy attic code. |
| attic/navability/entities/UserRobotSession.jl | Remove legacy attic code. |
| attic/navability/entities/StatusMessage.jl | Remove legacy attic code. |
| attic/navability/entities/Solve.jl | Remove legacy attic code. |
| attic/navability/entities/Session.jl | Remove legacy attic code. |
| attic/navability/entities/NavAbilityClient.jl | Remove legacy attic code. |
| attic/navability/entities/InferenceTypes.jl | Remove legacy attic code. |
| attic/navability/entities/Distributions.jl | Remove legacy attic code. |
| attic/navability/entities/Common.jl | Remove legacy attic code. |
| attic/navability/entities/Client.jl | Remove legacy attic code. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
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.
This needs new dfg v0.29+ tagged