34 lines
1.9 KiB
Markdown
34 lines
1.9 KiB
Markdown
# AD-002: Deepen Node startup orchestration
|
|
|
|
- **Status:** needs-triage
|
|
- **Priority:** p1
|
|
- **Dependencies:** AD-001
|
|
- **Evidence:** `run_startup()` in `packages/node/meshnet_node/startup.py` has cyclomatic complexity 101, a broad caller-facing parameter surface, and coordinates hardware, wallet, assignment, artifacts, server construction, capability proof, and Tracker registration.
|
|
|
|
## Objective
|
|
|
|
Create a deep Node startup module with explicit immutable startup intent and one execution seam, so callers and tests do not need to understand the full startup sequence.
|
|
|
|
## Constraints
|
|
|
|
- Retain the existing explicit capability-validator adapter used by tests.
|
|
- Preserve current CLI behavior, registration data, startup ordering, and Transformers behavior.
|
|
- Keep native-worker supervision out of scope: DGR-040 owns it. The result may expose a phase where DGR-040 can later attach, but must not implement that worker supervision.
|
|
|
|
## Acceptance criteria
|
|
|
|
- [ ] Characterization tests pin successful startup, capability refusal before registration, assignment behavior, and failure classification.
|
|
- [ ] The public startup interface accepts a cohesive intent/plan rather than leaking orchestration details across callers.
|
|
- [ ] Hardware/assignment, artifact/server, and proof/registration behavior are internally ordered and individually testable through internal seams.
|
|
- [ ] Existing `tests/test_node_startup.py`, `tests/test_node_admission.py`, and mining CLI tests retain behavior.
|
|
- [ ] `pytest` targeted tests and `python -m compileall packages tests` pass.
|
|
|
|
## Likely files
|
|
|
|
- Modify: `packages/node/meshnet_node/startup.py`, `packages/node/meshnet_node/testing.py`, `packages/node/meshnet_node/cli.py`
|
|
- Modify/add: `tests/test_node_startup.py`, `tests/test_node_admission.py`, `tests/test_mining_cli.py`
|
|
|
|
## Non-goals
|
|
|
|
No new backend type, no Tracker placement algorithm change, and no native-worker process supervision.
|