# 02 — Adopt the versioned gRPC Shard protocol Status: done ## Mandatory fresh-session context - Read [RALPH-CONTEXT.md](../RALPH-CONTEXT.md) completely before changing code. - This issue is `DGR-002` in [prd.json](../prd.json). - Read the evidence README for every dependency listed below. - Inspect current code and `git status`; historical text and previous agent claims are not evidence. ## Description As a node developer, I need a battle-proven streaming protocol so that Python and C++ Shards communicate without a custom socket protocol. ## Expected durable outputs - packages/node/native/proto/shard_runtime.proto - Reproducible Python/C++ schema generation and build wiring - Protocol round-trip and compatibility tests - evidence/DGR-002/README.md ## Acceptance criteria - [x] Add a Protocol Buffers schema for capability, health, session stream, release, and cancellation operations. - [x] Define one long-lived bidirectional gRPC stream per Route Session Activation Seam with deadlines, cancellation, flow control, and structured errors. - [x] Define bounded chunking for prefill and a small decode fast path. - [x] Carry schema version, request/work ID, Route Session ID, route epoch, artifact/recipe fingerprint, Shard range/effective start, phase, position, idempotency step, cache expectation, compression, and checksum. - [x] Define a versioned named-tensor bundle with per-tensor name, shape, dtype, byte order, and payload fragments. - [x] Add generated-schema round-trip and compatibility tests in Python and C++. - [x] Targeted pytest tests pass - [x] python -m compileall packages tests passes for Python changes - [x] git diff --check passes - [x] Default tests remain deterministic, model-download-free, API-credit-free, and GPU-free - [x] Full deterministic pytest -q passes, or the exact pre-existing unrelated failure is recorded with a clean-tree reproduction - [x] Read .scratch/distributed-gguf-runtime/RALPH-CONTEXT.md and this story issue completely before changing code - [x] Read and verify every dependency evidence README before relying on dependency behavior - [x] Preserve all pre-existing working-tree changes and stage only files belonging to this story - [x] Write .scratch/distributed-gguf-runtime/evidence/DGR-002/README.md with files changed, exact commands and real results, limitations, compatibility notes, and dependent-story handoff - [x] Update only this story issue to Status: done after every acceptance criterion and quality gate passes ## Dependency handoff - None. This story may start immediately. ## Finish contract - Create the task evidence directory and durable handoff required above. - Preserve real failures and blockers; never fabricate benchmark, model, test or hardware output. - Change this issue to `Status: done` only after all criteria pass. - Emit `COMPLETE` only after the evidence handoff exists. ## References - [Ralph execution context](../RALPH-CONTEXT.md) - [PRD](../PRD.md) - [Implementation strategy](../implementation-strategy.md) - [Current architecture](../architecture.md) - [Architecture decision](../ADR-0020-distributed-gguf-runtime.md)