Skip to content

Refactor towards DFG v1 - #299

Merged
Affie merged 17 commits into
developfrom
refactor/dfgv1
Mar 26, 2026
Merged

Refactor towards DFG v1#299
Affie merged 17 commits into
developfrom
refactor/dfgv1

Conversation

@Affie

@Affie Affie commented Mar 12, 2026

Copy link
Copy Markdown
Member

This needs new dfg v0.29+ tagged

@Affie Affie self-assigned this Mar 12, 2026
@Affie Affie added this to the v0.9.0 milestone Mar 12, 2026
@Affie
Affie marked this pull request as ready for review March 26, 2026 15:20
@Affie
Affie requested a review from Copilot March 26, 2026 15:27

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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 GraphQLRegistries loader and update service calls to use GQL_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.

Comment thread src/entities/NvaNodes.jl
Comment thread src/entities/NvaNodes.jl
Comment thread test/runtests.jl
Comment thread src/services/Workers.jl
@Affie
Affie merged commit 41dac78 into develop Mar 26, 2026
0 of 3 checks passed
@Affie
Affie deleted the refactor/dfgv1 branch March 26, 2026 16:00
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