feat(alpha): complete hardening backlog
Complete the alpha-hardening Ralph task set, including tracker billing/accounting guards, validator fraud-audit primitives, wallet binding proof support, documentation runbooks, and updated tests. Verification: .venv/bin/python -m compileall -q packages tests; .venv/bin/python -m pytest -q --tb=short (313 passed, 3 skipped, 1 failed: tests/test_mining_cli.py::test_legacy_start_without_port_uses_next_available_port because meshnet-node pid 1263451 is already listening on port 7000).
This commit is contained in:
60
docs/dev/test-env.md
Normal file
60
docs/dev/test-env.md
Normal file
@@ -0,0 +1,60 @@
|
||||
# Test environment
|
||||
|
||||
## Setup
|
||||
|
||||
Create a venv at the repo root and install the root dev extras plus the
|
||||
packages exercised by the tests you're running:
|
||||
|
||||
```bash
|
||||
# Linux/macOS
|
||||
python3 -m venv .venv
|
||||
.venv/bin/pip install -e ".[dev]"
|
||||
.venv/bin/pip install -e packages/node -e packages/tracker -e packages/gateway
|
||||
```
|
||||
|
||||
```powershell
|
||||
# Windows (native, no WSL)
|
||||
python -m venv .venv
|
||||
.venv\Scripts\python.exe -m pip install -e ".[dev]"
|
||||
.venv\Scripts\python.exe -m pip install -e packages\node -e packages\tracker -e packages\gateway
|
||||
```
|
||||
|
||||
`conftest.py` at the repo root adds every `packages/*` source directory to
|
||||
`sys.path`, so tests can `import meshnet_node`, `import meshnet_tracker`, etc.
|
||||
without an editable install. That only resolves first-party modules, though —
|
||||
each package's own third-party dependencies (e.g. `cryptography` for
|
||||
`meshnet_node.wallet` and `meshnet_tracker.wallet_proof`) still need to be
|
||||
installed in the venv, either via `pip install -e packages/<pkg>` or by
|
||||
depending on the root `dev` extra covering them.
|
||||
|
||||
`cryptography>=41` is declared in `packages/node/pyproject.toml` (and
|
||||
`packages/p2p/pyproject.toml`) and is also pulled in by the root `dev` extra,
|
||||
so `pip install -e ".[dev]"` alone is enough to run the wallet-related tests
|
||||
even without installing `packages/node`.
|
||||
|
||||
## Running tests
|
||||
|
||||
```bash
|
||||
.venv/bin/python -m pytest
|
||||
```
|
||||
|
||||
## Optional-dependency tests
|
||||
|
||||
Some tests import heavyweight or optional third-party packages and guard
|
||||
themselves with `pytest.importorskip(...)` — they skip cleanly if the
|
||||
dependency isn't installed:
|
||||
|
||||
- `tests/test_real_model_backend.py` — `torch`, `transformers`, `safetensors`,
|
||||
`accelerate`, `bitsandbytes`
|
||||
- `tests/test_devnet_treasury.py` — `solders`, `spl.token.instructions`
|
||||
|
||||
`tests/test_openai_gateway.py` is the exception: it imports `openai` and
|
||||
`langchain_openai` directly inside test functions with no `importorskip`
|
||||
guard, so it hard-fails if those aren't installed. They're included in the
|
||||
root `dev` extra, so a normal `pip install -e ".[dev]"` covers it. If you
|
||||
deliberately install a minimal environment without the `dev` extra, skip it
|
||||
explicitly:
|
||||
|
||||
```bash
|
||||
.venv/bin/python -m pytest --ignore=tests/test_openai_gateway.py
|
||||
```
|
||||
@@ -1,4 +1,4 @@
|
||||
Status: ready-for-agent
|
||||
Status: superseded for alpha — see [ADR-0015](../adr/0015-usdt-custodial-settlement.md), issue [33](33-settlement-loop.md)/[34](34-forfeiture-penalty.md). ADR-0015 replaces the on-chain Anchor stake/registry/settlement contracts below with a custodial USDT treasury + off-chain ledger, and explicitly targets **Solana devnet** (with a mock-USDT SPL mint) rather than the "testnet, never devnet" rule stated here — see [ADR-0016](../adr/0016-alpha-scope-and-known-limitations.md) for the alpha scope this fits into.
|
||||
|
||||
# 06 — Solana stake + settlement contracts
|
||||
|
||||
|
||||
@@ -155,7 +155,8 @@
|
||||
"US-003"
|
||||
],
|
||||
"completionNotes": "Completed by fresh Ralph/Codex session c257ffde with controller patches for clarified economics; verified by pytest, compileall, and diff check.",
|
||||
"status": "done"
|
||||
"status": "done",
|
||||
"status_reason": "Superseded for alpha by ADR-0015 (US-030..US-035): custodial USDT treasury + off-chain ledger replaces the Anchor stake/registry/settlement contracts, and targets Solana devnet (mock-USDT mint) rather than the testnet-only rule in this story's description. See docs/issues/06-solana-stake-and-settlement.md and ADR-0016."
|
||||
},
|
||||
{
|
||||
"id": "US-007",
|
||||
|
||||
Reference in New Issue
Block a user