story: DGR-041 Register native Shard capabilities without redesigning Meshnet
This commit is contained in:
99
.scratch/distributed-gguf-runtime/evidence/DGR-041/README.md
Normal file
99
.scratch/distributed-gguf-runtime/evidence/DGR-041/README.md
Normal file
@@ -0,0 +1,99 @@
|
||||
# DGR-041 evidence — backend-agnostic native Shard registration
|
||||
|
||||
**Date:** 2026-08-01
|
||||
**Authority:** `.scratch/distributed-gguf-runtime/prd.json` (`passes` remains
|
||||
`false`; this is model-free integration evidence, not a real hardware
|
||||
certification).
|
||||
|
||||
## Implemented
|
||||
|
||||
- Added the optional, backend-neutral `ExecutionCapacity` capability-report
|
||||
block: memory capacity in bytes, Hot-KV capacity in tokens, and maximum
|
||||
concurrent Route Sessions. Existing Transformers reports omit it and keep
|
||||
their previous serialized shape.
|
||||
- Added `NativeShardRegistration`, which accepts only an exact `ShardIdentity`,
|
||||
DGR-040 startup spec, and verified worker probe that all agree on artifact
|
||||
digest, recipe fingerprint, recipe labels, and half-open range. It emits the
|
||||
existing tracker registration payload and uses the capability report for
|
||||
backend, capacity, and exact identity facts.
|
||||
- Added `NativeCapabilityRegistrar.bind()` and additive supervisor callbacks:
|
||||
publish happens only after DGR-040 has verified availability; a worker health
|
||||
loss invokes caller-owned withdrawal. The adapter owns neither tracker HTTP
|
||||
nor routing, billing, telemetry, relay, or provider policy.
|
||||
- Tracker capability parsing/network state now preserves the three optional
|
||||
capacity facts. Its existing `CertificationLedger` still registers the exact
|
||||
native recipe as `dark` / `uncertified`, making it visible but unroutable.
|
||||
No backend-name allowlist or routing special case was added.
|
||||
|
||||
## Changed files
|
||||
|
||||
- `packages/node/meshnet_node/capability.py`
|
||||
- `packages/node/meshnet_node/native_registration.py`
|
||||
- `packages/node/meshnet_node/native_worker_supervisor.py`
|
||||
- `packages/tracker/meshnet_tracker/capability.py`
|
||||
- `tests/test_native_registration.py`
|
||||
- `.scratch/distributed-gguf-runtime/evidence/DGR-041/README.md`
|
||||
- `.ralph-tui/progress.md`
|
||||
|
||||
## Commands and results
|
||||
|
||||
```bash
|
||||
PYTHONPATH=packages/node:packages/tracker /home/popov/.hermes/hermes-agent/venv/bin/python -m pytest -q \
|
||||
tests/test_native_registration.py tests/test_native_worker_supervisor.py \
|
||||
tests/test_node_capability.py tests/test_runtime_recipe_identity.py
|
||||
```
|
||||
```text
|
||||
101 passed in 0.71s
|
||||
```
|
||||
|
||||
```bash
|
||||
/home/popov/.hermes/hermes-agent/venv/bin/python -m ruff check \
|
||||
packages/node/meshnet_node/capability.py \
|
||||
packages/node/meshnet_node/native_registration.py \
|
||||
packages/node/meshnet_node/native_worker_supervisor.py \
|
||||
packages/tracker/meshnet_tracker/capability.py \
|
||||
tests/test_native_registration.py
|
||||
```
|
||||
```text
|
||||
All checks passed!
|
||||
```
|
||||
|
||||
```bash
|
||||
python3 -m compileall -q packages tests
|
||||
git diff --check
|
||||
```
|
||||
```text
|
||||
Both exit 0.
|
||||
```
|
||||
|
||||
The default focused tests are model-download-free, API-credit-free, and
|
||||
GPU-free. No model artifact was touched and nothing was written under `/home`.
|
||||
|
||||
## Limitations
|
||||
|
||||
- The full HTTP tracker-registration route suite could not run in this sandbox:
|
||||
`PYTHONPATH=packages/node:packages/tracker /home/popov/.hermes/hermes-agent/venv/bin/python -m pytest -q tests/test_tracker_capability_admission.py`
|
||||
produced `25 passed, 9 failed`; every failure is the known sandbox
|
||||
`PermissionError: [Errno 1] Operation not permitted` while creating an AF_INET
|
||||
listening socket. The model-free direct tracker admission path is exercised
|
||||
by `test_native_registration.py` and the existing identity suite.
|
||||
- No native source/protobuf/patch changed, so an out-of-tree CMake/CTest build
|
||||
and pin patch apply/check/reverse gates are not applicable.
|
||||
- The registrar deliberately takes caller-owned register/withdraw callbacks.
|
||||
DGR-042 owns the native direct/relay activation endpoint; deployment wiring
|
||||
must provide its existing tracker transport rather than invent another one.
|
||||
- No real backend/model/recipe combination is certified by this change.
|
||||
`prd.json` remains false until the authoritative execution process grants
|
||||
completion credit.
|
||||
|
||||
## Dependency handoff
|
||||
|
||||
- **DGR-025:** `ShardIdentity` and the tracker-owned `CertificationLedger` are
|
||||
used directly; do not substitute labels for the fingerprint or promote a
|
||||
recipe in node code.
|
||||
- **DGR-040:** construct this registration from the post-`start()` verified
|
||||
probe and call `NativeCapabilityRegistrar.bind(supervisor)` before startup.
|
||||
Its unavailable callback must withdraw only the native capability.
|
||||
- **DGR-042:** consume the registration's verified native endpoint through the
|
||||
existing direct/relay route mechanism; keep its protobuf transport opaque to
|
||||
tracker admission.
|
||||
Reference in New Issue
Block a user