1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
[]
= "net-cli"
= "0.26.0"
= "2021"
= "Unified `net-mesh` command-line tool for the Net mesh"
= "Apache-2.0"
= "https://github.com/ai-2070/net"
= true
[[]]
= "net-mesh"
= "src/main.rs"
[]
= { = "net-mesh-sdk", = "0.26.0", = "../sdk", = false, = [
"net",
"nat-traversal",
"cortex",
"compute",
"groups",
"meshos",
"deck",
"dataforts",
"meshdb",
"aggregator",
] }
# Clap derives the argv parser from typed structs; `env` enables
# `NET_MESH_*` env-var fallback for global flags (`--profile` etc.).
= { = "4", = ["derive", "env"] }
# `clap_complete` powers `net-mesh completion <shell>`; `clap_mangen`
# powers `net-mesh man`. Release tarballs run those subcommands
# post-build to capture the output into `share/bash-completion/...`
# and `share/man/man1/net-mesh.1`.
= "4"
= "0.3"
# Multi-thread tokio for the SDK; macros for `#[tokio::main]`.
= { = "1", = [
"macros",
"rt-multi-thread",
"sync",
"time",
"signal",
"fs",
] }
# Serde stack for output dispatch + identity/config file parsing.
= { = "1", = ["derive"] }
= "1"
= "0.9"
# Pretty terminal tables for `--output table` (Phase 1: read-only
# views).
= "7"
# Tracing-subscriber wires `-v` / `-vv` / `-vvv` to env-filter
# levels. Format pinned to compact for stderr.
= { = "0.3", = ["env-filter", "fmt"] }
= "0.1"
# XDG paths + TOML for the config + identity stores.
= "6"
= "1.0"
# Streaming combinators used by the audit/log/failures ndjson
# outputs and the snapshot watch loop.
= "0.3"
# Hex codec for identity material (seed / public key / signature).
= "0.4"
# SHA-256 for the operator-visible identity fingerprint. ssh
# uses SHA-256 for the analogous `ssh-keygen -lf` surface; we
# mirror the algorithm so operators recognize the fingerprint
# format at a glance.
= "0.11"
# Typed errors at the config / identity boundary.
= "2"
# `cargo binstall net-cli` resolves prebuilt tarballs against the
# `release-binaries-cli.yml` workflow's GitHub Release assets.
# Defaults to the binstall convention except for the tag prefix
# (`cli-v*`, not `net-cli-v*`) and the binary name (the crate is
# `net-cli` but the binary inside is `net-mesh`).
[]
= "{ repo }/releases/download/cli-v{ version }/{ name }-v{ version }-{ target }.{ archive-suffix }"
= "{ name }-v{ version }-{ target }/net-mesh{ binary-ext }"
= "tgz"
[]
= "zip"
[]
# Drive the binary in integration tests.
= "2"
= "3"
= "3"
# Async test helpers — `#[tokio::test]` + the SDK's in-process
# cluster fixtures.
= { = "1", = [
"rt-multi-thread",
"macros",
"time",
"test-util",
] }
# Boot the aggregator-daemon in-process for the remote-attach
# integration test (`tests/aggregator_remote.rs`). The CLI
# subprocess handshakes against this booted daemon's MeshNode.
#
# Path-only on purpose — net-aggregator-daemon is a binary
# crate that doesn't publish to crates.io, so giving this
# dev-dep a `version = ...` field would make `cargo publish
# --dry-run` (and any real publish) fail at the dependency-
# resolution step. With only `path` set, cargo drops the
# dev-dep entirely when packaging.
= { = "../aggregator-daemon" }