From 7b3399760eb6bcffd66eb60c514c17f6b69a6627 Mon Sep 17 00:00:00 2001 From: Dobromir Popov Date: Tue, 14 Jul 2026 17:09:04 +0300 Subject: [PATCH] chore: wrap up completed story metadata --- .scratch/dashboard-test-runner/PRD.md | 6 ++ .scratch/dashboard-test-runner/prd.json | 7 +- .../prd.json | 67 ++++++++++++++----- .scratch/node-capability-admission/prd.json | 22 +++--- docs/issues/42-gguf-llamacpp-node-backend.md | 21 +++--- 5 files changed, 81 insertions(+), 42 deletions(-) diff --git a/.scratch/dashboard-test-runner/PRD.md b/.scratch/dashboard-test-runner/PRD.md index e7782a2..ef01546 100644 --- a/.scratch/dashboard-test-runner/PRD.md +++ b/.scratch/dashboard-test-runner/PRD.md @@ -12,4 +12,10 @@ Provide an opt-in, admin-only tracker Dashboard Testing tab that dynamically dis - One active run. - Real inference stays separately environment-gated and excluded from default suites. +## Operator workflow + +See [`docs/dev/dashboard-test-runner.md`](../../docs/dev/dashboard-test-runner.md) +for launch configuration, default safe suites vs the gated real-inference suite, +and required environment variables. + See `prd.json` for executable Ralph user stories and acceptance criteria. diff --git a/.scratch/dashboard-test-runner/prd.json b/.scratch/dashboard-test-runner/prd.json index 334e875..d57977e 100644 --- a/.scratch/dashboard-test-runner/prd.json +++ b/.scratch/dashboard-test-runner/prd.json @@ -51,15 +51,16 @@ "uv run pytest tests/test_dashboard.py tests/test_dynamic_routing.py -q passes." ], "priority": 3, - "passes": false, + "passes": true, "notes": "Do not reintroduce --enable-test-runner without implementing its CLI argument in US-001.", "dependsOn": [ "US-001", "US-002" - ] + ], + "completionNotes": "Completed by agent" } ], "metadata": { - "updatedAt": "2026-07-11T17:02:30.520Z" + "updatedAt": "2026-07-12T01:58:06.286Z" } } \ No newline at end of file diff --git a/.scratch/distributed-inference-performance/prd.json b/.scratch/distributed-inference-performance/prd.json index 7184324..9006c66 100644 --- a/.scratch/distributed-inference-performance/prd.json +++ b/.scratch/distributed-inference-performance/prd.json @@ -16,8 +16,9 @@ ], "priority": 1, "passes": true, - "notes": "Completed 2026-07-14. Deterministic direct/relay and cached/stateless stub benchmark with JSON/summary attribution; focused test suite passes (7). Source issue: .scratch/distributed-inference-performance/issues/01-baseline-profiling-harness.md", - "dependsOn": [] + "notes": "Source issue: .scratch/distributed-inference-performance/issues/01-baseline-profiling-harness.md", + "dependsOn": [], + "completionNotes": "Completed by agent" }, { "id": "DIP-002", @@ -31,9 +32,12 @@ "Tests cover binary, JSON, timeout, disconnect, cancellation, and cleanup" ], "priority": 2, - "passes": false, + "passes": true, "notes": "Source issue: .scratch/distributed-inference-performance/issues/02-relay-session-compatibility.md", - "dependsOn": ["DIP-001"] + "dependsOn": [ + "DIP-001" + ], + "completionNotes": "Completed by agent" }, { "id": "DIP-003", @@ -47,9 +51,12 @@ "Benchmark shows healthy-session connection count independent of token count" ], "priority": 3, - "passes": false, + "passes": true, "notes": "Source issue: .scratch/distributed-inference-performance/issues/03-http-keepalive.md", - "dependsOn": ["DIP-001"] + "dependsOn": [ + "DIP-001" + ], + "completionNotes": "Completed by agent" }, { "id": "DIP-004", @@ -63,9 +70,12 @@ "Tests verify cadence and cleanup" ], "priority": 4, - "passes": false, + "passes": true, "notes": "Source issue: .scratch/distributed-inference-performance/issues/04-seam-telemetry.md", - "dependsOn": ["DIP-001"] + "dependsOn": [ + "DIP-001" + ], + "completionNotes": "Completed by agent" }, { "id": "DIP-005", @@ -79,9 +89,12 @@ "Tests cover compressible, incompressible, threshold, malformed, and legacy bodies" ], "priority": 5, - "passes": false, + "passes": true, "notes": "Source issue: .scratch/distributed-inference-performance/issues/05-adaptive-compression.md", - "dependsOn": ["DIP-001"] + "dependsOn": [ + "DIP-001" + ], + "completionNotes": "Completed by agent" }, { "id": "DIP-006", @@ -95,9 +108,12 @@ "Wire and token-output regression tests pass" ], "priority": 6, - "passes": false, + "passes": true, "notes": "Source issue: .scratch/distributed-inference-performance/issues/06-activation-framing-copies.md", - "dependsOn": ["DIP-001"] + "dependsOn": [ + "DIP-001" + ], + "completionNotes": "Completed by agent" }, { "id": "DIP-007", @@ -111,9 +127,13 @@ "Tests cover chunking, slow consumers, failure, and legacy peers" ], "priority": 7, - "passes": false, + "passes": true, "notes": "Source issue: .scratch/distributed-inference-performance/issues/07-prefill-backpressure.md", - "dependsOn": ["DIP-001", "DIP-004"] + "dependsOn": [ + "DIP-001", + "DIP-004" + ], + "completionNotes": "Completed by agent" }, { "id": "DIP-008", @@ -127,9 +147,20 @@ "Gate verifies token identity, session stability, and resource cleanup" ], "priority": 8, - "passes": false, + "passes": true, "notes": "Source issue: .scratch/distributed-inference-performance/issues/08-end-to-end-performance-gate.md", - "dependsOn": ["DIP-002", "DIP-003", "DIP-004", "DIP-005", "DIP-006", "DIP-007"] + "dependsOn": [ + "DIP-002", + "DIP-003", + "DIP-004", + "DIP-005", + "DIP-006", + "DIP-007" + ], + "completionNotes": "Completed by agent" } - ] -} + ], + "metadata": { + "updatedAt": "2026-07-12T02:35:28.752Z" + } +} \ No newline at end of file diff --git a/.scratch/node-capability-admission/prd.json b/.scratch/node-capability-admission/prd.json index dad87ae..1cfe28d 100644 --- a/.scratch/node-capability-admission/prd.json +++ b/.scratch/node-capability-admission/prd.json @@ -35,11 +35,12 @@ "Full pytest passes or an exact unrelated blocker is recorded" ], "priority": 2, - "passes": false, + "passes": true, "notes": "Source issue: .scratch/node-capability-admission/issues/02-doctor-real-forward.md", "dependsOn": [ "NCA-001" - ] + ], + "completionNotes": "Completed by agent" }, { "id": "NCA-003", @@ -54,12 +55,13 @@ "Full pytest passes or an exact unrelated blocker is recorded" ], "priority": 3, - "passes": false, + "passes": true, "notes": "Source issue: .scratch/node-capability-admission/issues/03-fail-closed-startup-admission.md", "dependsOn": [ "NCA-001", "NCA-002" - ] + ], + "completionNotes": "Completed by agent" }, { "id": "NCA-004", @@ -76,12 +78,13 @@ "Full pytest passes or an exact unrelated blocker is recorded" ], "priority": 4, - "passes": false, + "passes": true, "notes": "Source issue: .scratch/node-capability-admission/issues/04-tracker-validated-capability-routing.md", "dependsOn": [ "NCA-001", "NCA-003" - ] + ], + "completionNotes": "Completed by agent" }, { "id": "NCA-005", @@ -96,15 +99,16 @@ "Full pytest passes or an exact unrelated blocker is recorded" ], "priority": 5, - "passes": false, + "passes": true, "notes": "Source issue: .scratch/node-capability-admission/issues/05-docs-hardware-lane-contract.md", "dependsOn": [ "NCA-002", "NCA-004" - ] + ], + "completionNotes": "Completed by agent" } ], "metadata": { - "updatedAt": "2026-07-11T19:16:52.768Z" + "updatedAt": "2026-07-12T01:54:03.030Z" } } \ No newline at end of file diff --git a/docs/issues/42-gguf-llamacpp-node-backend.md b/docs/issues/42-gguf-llamacpp-node-backend.md index dc26ac4..3a33c05 100644 --- a/docs/issues/42-gguf-llamacpp-node-backend.md +++ b/docs/issues/42-gguf-llamacpp-node-backend.md @@ -1,9 +1,16 @@ # US-042 — GGUF/llama.cpp node backend Status: planned -Priority: High (whole-model GGUF shortcut; distributed path in [ADR-0024](../adr/0024-distributed-gguf-runtime.md)) +Priority: High (unlocks DeepSeek-V4-Flash on volunteer hardware — the pool's core value) Stage: Draft design +## Goal + +Run **DeepSeek-V4-Flash** as the first real large-model target on volunteer +hardware via GGUF/llama.cpp. This epic is no longer GLM-oriented: the initial +objective is to prove that DeepSeek-V4-Flash can load and serve correctly on +consumer/unified-memory nodes, then expand from there. + ## Context The node backend is transformers-only (`model_backend.py` → @@ -35,17 +42,7 @@ to it (single-hop route). Smallest step, no cross-node activation work, and already useful: Strix Halo 128 GB serves DeepSeek-V4-Flash IQ3_XXS (114 GB) via llama.cpp Vulkan today. -Recommended sequencing: **C first** (US-042), then **ADR-0024 benchmark gate** (DGR-001), then distributed native worker (DGR-002+). Direction B (llama.cpp RPC) is rejected per ADR-0024. - -## Runtime sequencing - -| Stage | Track | Delivers | -|---|---|---| -| **C — Whole-model GGUF** | US-042 (this issue) | Single-hop llama.cpp, billing, relay streaming | -| **0 — Benchmark gate** | ADR-0024 DGR-001 | Safetensors vs GGUF measured contract | -| **1 — Distributed GGUF** | ADR-0024 `.scratch/distributed-gguf-runtime/` | gRPC C++ worker, layer-range GGUF | - -Phase C uses the existing tracker hop path (whole model, one node). ADR-0024 direction A (layer-range GGUF + activations) merges into the native worker track after the benchmark gate — not in parallel with phase C on the same backend without an integration plan. +Recommended sequencing: C first (small, real value), then A/B investigation. ## Also in scope