1.9 KiB
1.9 KiB
Status: ready-for-agent
01 — Generic capability and recipe report
What to build
Create a model-agnostic node capability domain object and local versioned recipe-manifest reader. It must represent a selected Model Artifact identity/revision/config fingerprint, Shard range, named recipe ID/version, device/backend identity, validation timestamp/duration, success/failure state, and sanitized diagnostics.
Do not add Qwen-, FLA-, Triton-, CUDA-, ROCm-, or vendor-specific branches. A recipe is generic data; specific runtime behavior remains in the existing backend.
Code refs:
packages/node/meshnet_node/model_catalog.py— existing generic HF config/model metadata helperspackages/node/meshnet_node/hardware.py— device identity/executability inventorypackages/node/meshnet_node/model_backend.py— model/shard loading pathpackages/node/pyproject.toml— package data declarations
Test-first
- Write a unit test building reports for two arbitrary fixture model IDs and asserting no model-specific normalization/branch is required.
- Write a manifest-version validation test: valid local manifest loads; malformed/unknown schema produces actionable non-secret diagnostics.
- Implement the smallest schema, serialization, and local manifest reader needed by later stories.
Acceptance criteria
- Capability report has a stable JSON-serializable schema with model identity/fingerprint, shard range, recipe ID/version, backend/device identity, status, timing, and sanitized diagnostic fields
- Generic arbitrary model IDs are preserved; no Qwen or optional-kernel name is a product default or code-path discriminator
- Local recipe manifest has an explicit schema/catalogue version
- Malformed manifest/report input fails locally with actionable diagnostics and never leaks environment secrets
- Unit tests cover serialization, schema validation, and model-agnostic behavior
Blocked by
None.