Compare commits
2 Commits
ralph/terr
...
54d19f9a29
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
54d19f9a29 | ||
|
|
377bc3475c |
@@ -1,7 +1,7 @@
|
||||
<!-- GENERATED FROM prd.json — DO NOT EDIT AS AN INDEPENDENT SOURCE. prd.json IS AUTHORITATIVE. -->
|
||||
# DGR-023: Make Python and C++ protobuf generation reproducible
|
||||
|
||||
- **Status / triage:** specification only; `ready-for-agent`; `passes: false`
|
||||
- **Status / triage:** completed; `passes: true`
|
||||
- **Execution mode:** `AFK`
|
||||
- **Milestone:** `M1`
|
||||
- **Dependencies:** `DGR-021`
|
||||
@@ -18,11 +18,11 @@ Fresh Ralph session: read `.scratch/distributed-gguf-runtime/RALPH-CONTEXT.md`,
|
||||
|
||||
## Acceptance criteria
|
||||
|
||||
- [ ] Pin protoc, gRPC, and plugin versions or declare a verified compatible range.
|
||||
- [ ] Generate Python and C++ bindings into out-of-tree build/package locations through documented commands.
|
||||
- [ ] Add Python↔C++ round-trip and descriptor compatibility tests.
|
||||
- [ ] A clean checkout regenerates bindings deterministically or fails with an actionable toolchain error.
|
||||
- [ ] Applicable shared quality gates in `prd.json` pass, and the evidence handoff records exact commands/results, changed files, limitations, and dependency handoff.
|
||||
- [x] Pin protoc, gRPC, and plugin versions or declare a verified compatible range.
|
||||
- [x] Generate Python and C++ bindings into out-of-tree build/package locations through documented commands.
|
||||
- [x] Add Python↔C++ round-trip and descriptor compatibility tests.
|
||||
- [x] A clean checkout regenerates bindings deterministically or fails with an actionable toolchain error.
|
||||
- [x] Applicable shared quality gates in `prd.json` pass, and the evidence handoff records exact commands/results, changed files, limitations, and dependency handoff.
|
||||
|
||||
## Shared quality gates
|
||||
|
||||
@@ -36,4 +36,4 @@ Fresh Ralph session: read `.scratch/distributed-gguf-runtime/RALPH-CONTEXT.md`,
|
||||
|
||||
## Evidence handoff
|
||||
|
||||
Write and verify `.scratch/distributed-gguf-runtime/evidence/DGR-023/README.md`. Until every criterion and applicable gate has real evidence, this story remains `passes: false`. Legacy evidence is provenance only, not completion credit.
|
||||
Verified evidence: `.scratch/distributed-gguf-runtime/evidence/DGR-023/README.md`. Legacy evidence remains provenance only and grants no implementation completion credit.
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
<!-- GENERATED FROM prd.json — DO NOT EDIT AS AN INDEPENDENT SOURCE. prd.json IS AUTHORITATIVE. -->
|
||||
# DGR-024: Implement real generated-gRPC protocol harness
|
||||
|
||||
- **Status / triage:** specification only; `ready-for-agent`; `passes: false`
|
||||
- **Execution mode:** `AFK`
|
||||
- **Milestone:** `M1`
|
||||
- **Dependencies:** `DGR-022`, `DGR-023`
|
||||
- **Blocks (derived):** `DGR-033`, `DGR-042`
|
||||
- **Labels:** `area:protocol`, `area:testing`, `type:vertical-slice`, `priority:p0`, `ready-for-agent`
|
||||
- **Evidence class:** `model-free`
|
||||
- **Hardware:** `none`
|
||||
- **Model:** `none`
|
||||
- **Upstream:** `no`
|
||||
|
||||
## Objective / description
|
||||
|
||||
Build a real generated-gRPC protocol harness around the versioned shard_runtime.proto contract. Use generated Python and C++ stubs over an actual localhost transport and real process lifecycle; exercise captured deterministic protocol vectors and serialized protobuf bytes before a real model worker exists. Do not implement an in-memory fake transport, synthetic model outputs, or a production-looking stub/demo service.
|
||||
|
||||
## Acceptance criteria
|
||||
|
||||
- [ ] Start a real localhost gRPC server process using generated bindings and connect to it with a generated client; no in-memory fake channel or direct method-only seam.
|
||||
- [ ] Exercise prefill fragments, decode frames, release, cancel, flow-control, deadlines, malformed input, checksum failure, duplicates, and stale epochs using serialized protocol messages and captured deterministic vectors.
|
||||
- [ ] Prove direct and opaque-relay paths preserve identical protobuf bytes by recording and comparing actual wire frames at both boundaries.
|
||||
- [ ] Use real process/socket lifecycle and fail closed on transport, schema, epoch, size, cache, and deadline violations; do not claim model or accelerator behavior that is not exercised.
|
||||
- [ ] Applicable shared quality gates pass, and evidence records exact commands, raw outputs, generated artifact identities, wire-frame hashes, changed files, limitations, and dependency handoff.
|
||||
|
||||
## Shared quality gates
|
||||
|
||||
- Targeted deterministic tests pass; Python changes also pass `python -m compileall packages tests`.
|
||||
- `git diff --check` passes.
|
||||
- Default tests are model-download-free, API-credit-free, and GPU-free.
|
||||
- Evidence README records exact changed files, commands/results, limitations, and dependency handoff; no fabricated evidence or inherited completion credit.
|
||||
- Native changes pass focused out-of-tree CMake build and CTest; patch changes verify clean apply/check/reverse against the exact llama.cpp pin.
|
||||
- Runs are opt-in and record exact artifact/split hashes, runtime/upstream pin, backend/driver, hardware, network, commands, and raw metrics. Model artifacts use configured mounted-drive storage and never `/home`.
|
||||
- Preserve existing Transformers behavior and backend-agnostic Tracker routing/load balancing/billing/relay semantics unless an explicit versioned contract says otherwise. One scoped story commit is expected during execution, but this specification-materialization change is not committed.
|
||||
|
||||
## Evidence handoff
|
||||
|
||||
Write and verify `.scratch/distributed-gguf-runtime/evidence/DGR-024/README.md`. Until every criterion and applicable gate has real evidence, this story remains `passes: false`. Legacy evidence is provenance only, not completion credit.
|
||||
@@ -524,6 +524,7 @@
|
||||
],
|
||||
"passes": true,
|
||||
"notes": "Completed from Gitea #7 after controller provisioned and exercised the exact Python/C++ toolchains. Verified deterministic generation, native CMake/CTest, Python↔C++ byte parity, compileall, and diff checks; fixed relative bootstrap prefix resolution.",
|
||||
"completionNotes": "Verified exact grpcio-tools 1.82.1, Protobuf 33.1, Abseil 20250814.1, and gRPC C++ 1.82.1 at commit acccf84c0df20487d64101f528e5d426541ca4e5. Mandatory Python/C++ message and service generation, native CTest, deterministic regeneration, and byte-for-byte Python/C++ parity passed; see evidence/DGR-023/README.md.",
|
||||
"blocks": [
|
||||
"DGR-024",
|
||||
"DGR-037"
|
||||
@@ -531,7 +532,7 @@
|
||||
},
|
||||
{
|
||||
"id": "DGR-024",
|
||||
"title": "Implement in-memory fake gRPC seam transport",
|
||||
"title": "Implement real generated-gRPC protocol harness",
|
||||
"priority": 8,
|
||||
"milestone": "M1",
|
||||
"executionMode": "AFK",
|
||||
@@ -542,26 +543,26 @@
|
||||
"priority:p0",
|
||||
"ready-for-agent"
|
||||
],
|
||||
"evidenceClass": "fixture",
|
||||
"evidenceClass": "model-free",
|
||||
"evidencePath": ".scratch/distributed-gguf-runtime/evidence/DGR-024/README.md",
|
||||
"hardware": "none",
|
||||
"model": "fake",
|
||||
"model": "none",
|
||||
"upstream": "no",
|
||||
"dependsOn": [
|
||||
"DGR-022",
|
||||
"DGR-023"
|
||||
],
|
||||
"triage": "ready-for-agent",
|
||||
"description": "Fresh Ralph session: read `.scratch/distributed-gguf-runtime/RALPH-CONTEXT.md`, source issue `.scratch/distributed-gguf-runtime/issues/024-implement-in-memory-fake-grpc-seam-transport.md`, and evidence READMEs for dependencies (DGR-022, DGR-023) before changing code. Inspect live source/tests rather than trusting legacy pass states. Objective: Exercise the complete streaming protocol deterministically before a real model or worker exists.",
|
||||
"description": "Build a real generated-gRPC protocol harness around the versioned shard_runtime.proto contract. Use generated Python and C++ stubs over an actual localhost transport and real process lifecycle; exercise captured deterministic protocol vectors and serialized protobuf bytes before a real model worker exists. Do not implement an in-memory fake transport, synthetic model outputs, or a production-looking stub/demo service.",
|
||||
"acceptanceCriteria": [
|
||||
"Provide a fake bidirectional stream supporting prefill fragments, decode fast-path frames, release, cancel, and structured errors.",
|
||||
"Test flow-control blocking, deadlines, malformed fragments, checksum failure, duplicates, and stale epochs.",
|
||||
"Verify direct and opaque-relay framing preserve identical protobuf bytes.",
|
||||
"Tests require no sockets outside localhost, model downloads, or native accelerator.",
|
||||
"Applicable shared quality gates in `prd.json` pass, and the evidence handoff records exact commands/results, changed files, limitations, and dependency handoff."
|
||||
"Start a real localhost gRPC server process using generated bindings and connect to it with a generated client; no in-memory fake channel or direct method-only seam.",
|
||||
"Exercise prefill fragments, decode frames, release, cancel, flow-control, deadlines, malformed input, checksum failure, duplicates, and stale epochs using serialized protocol messages and captured deterministic vectors.",
|
||||
"Prove direct and opaque-relay paths preserve identical protobuf bytes by recording and comparing actual wire frames at both boundaries.",
|
||||
"Use real process/socket lifecycle and fail closed on transport, schema, epoch, size, cache, and deadline violations; do not claim model or accelerator behavior that is not exercised.",
|
||||
"Applicable shared quality gates pass, and evidence records exact commands, raw outputs, generated artifact identities, wire-frame hashes, changed files, limitations, and dependency handoff."
|
||||
],
|
||||
"passes": false,
|
||||
"notes": "Generated source issue: .scratch/distributed-gguf-runtime/issues/024-implement-in-memory-fake-grpc-seam-transport.md; prd.json is authoritative.",
|
||||
"notes": "Revised by policy audit: the former in-memory fake/stub seam task was invalid under the no-fake-data/no-demo-implementation rule. Existing fake-seam work is preserved as unaccepted historical material and must not be integrated.",
|
||||
"blocks": [
|
||||
"DGR-033",
|
||||
"DGR-042"
|
||||
|
||||
Reference in New Issue
Block a user