{ "task": "DGR-002", "title": "Adopt the versioned gRPC Shard protocol", "schema": { "proto": "packages/node/native/proto/shard_runtime.proto", "package": "meshnet.shard.v1", "syntax": "proto3", "schema_version": 1, "service": "ShardRuntime", "rpcs": ["GetCapability", "Health", "ActivateSession", "Release", "Cancel"], "streaming_seam": "ActivateSession (bidirectional stream)" }, "toolchain": { "python": "3.14.6", "protobuf_runtime_python": "7.35.1", "grpcio": "1.82.1", "grpcio_tools": "1.82.1", "cpp_protoc": "libprotoc 33.1", "cpp_protobuf_toolchain": "/tmp/pbsrc/install (from-source protobuf 33.1, ephemeral host build)", "cmake": "4.4.0 (.venv)", "cxx": "g++ (system)" }, "generation": { "python_cmd": "python packages/node/native/scripts/generate_python.py", "python_out": "packages/node/native/build/python/shard_runtime_pb2{,_grpc}.py (gitignored)", "cpp_cmd": "packages/node/native/scripts/generate_cpp.sh", "cpp_out": "packages/node/native/build/cpp-gen/shard_runtime.pb.{h,cc} (gitignored)", "cpp_build": "cmake -S packages/node/native -B && cmake --build " }, "tests": { "python_default_env": {"passed": 11, "skipped": 1, "note": "C++ cross-language test skips when cmake/protoc absent"}, "python_with_cpp_toolchain": {"passed": 12, "skipped": 0}, "cpp_selftest_bytes": 128, "cpp_ctest": "1/1 passed", "cross_language": "Python->C++ and C++->Python round-trip verified in both directions" }, "quality_gates": { "targeted_pytest": "11 passed, 1 skipped (default); 12 passed with C++ toolchain", "compileall_packages_tests": "exit 0", "git_diff_check": "clean", "full_pytest": { "passed": 704, "skipped": 14, "failed": 11, "failed_are_preexisting_unrelated": true, "clean_tree_reproduction": "same 11 fail with all DGR-002 files removed (11 failed, 3 passed)" } }, "preexisting_unrelated_failures": [ "tests/test_dynamic_routing.py::test_admin_can_replace_a_served_model_and_release_it", "tests/test_manual_route_benchmark.py::test_pinned_route_uses_named_node", "tests/test_manual_route_benchmark.py::test_unknown_route_node_is_400", "tests/test_manual_route_benchmark.py::test_invalid_route_shape_is_400", "tests/test_manual_route_benchmark.py::test_clients_without_route_are_unaffected", "tests/test_manual_route_benchmark.py::test_benchmark_records_one_and_two_node_routes", "tests/test_toploc_calibration_dispatch.py::test_calibration_run_dispatches_only_solo_capable_nodes", "tests/test_toploc_calibration_dispatch.py::test_calibration_run_persists_corpus_and_results_endpoint_reports_it", "tests/test_toploc_calibration_dispatch.py::test_calibration_run_node_without_commitment_endpoint_is_skipped_not_failed", "tests/test_tracker_routing.py::test_torch_node_applies_tracker_load_shard_directive", "tests/test_tracker_routing.py::test_shard_heal_cycle_surviving_node_covers_dead_peers_gap" ], "evidence_kind": "synthetic-unit (schema round-trip + cross-language protobuf; no model, no GPU, no network, no API credits)" }