Two claims were bundled in one step: that the control plane can describe the mesh correctly, and that the catalogue holds a complete record of what was built. The first passes; the second is novox/hq issue 050. Bundled, one open fault stopped three later steps from ever being attempted, which is exactly the information the run existed to produce. The catalogue is now measured against what the control plane ordered rather than against a list written in the test — a catalogue cannot know what it was never told, so it has to be compared with something that does. Claude-Session: https://claude.ai/code/session_01D6qtiYU3P9jk3pnAXyAFyx
133 lines
3.8 KiB
JSON
133 lines
3.8 KiB
JSON
{
|
|
"scenario": "one-node-mesh",
|
|
"established": 14,
|
|
"of": 18,
|
|
"steps": [
|
|
{
|
|
"code": "R1",
|
|
"title": "a bare machine becomes a mesh of one, raised by the installer",
|
|
"status": "pass",
|
|
"seconds": 132,
|
|
"why": ""
|
|
},
|
|
{
|
|
"code": "R2",
|
|
"title": "the substrate is up — a store and a broker of the mesh's own",
|
|
"status": "pass",
|
|
"seconds": 1,
|
|
"why": ""
|
|
},
|
|
{
|
|
"code": "R3",
|
|
"title": "the control plane is one this mesh built, not one it was handed",
|
|
"status": "pass",
|
|
"seconds": 0,
|
|
"why": ""
|
|
},
|
|
{
|
|
"code": "R4",
|
|
"title": "the pivot finished — what raised the mesh is gone",
|
|
"status": "pass",
|
|
"seconds": 0,
|
|
"why": ""
|
|
},
|
|
{
|
|
"code": "R5",
|
|
"title": "the registry serves this mesh its own images",
|
|
"status": "pass",
|
|
"seconds": 0,
|
|
"why": ""
|
|
},
|
|
{
|
|
"code": "R6",
|
|
"title": "the machine is enrolled, and an agent is running on it",
|
|
"status": "pass",
|
|
"seconds": 0,
|
|
"why": ""
|
|
},
|
|
{
|
|
"code": "R7",
|
|
"title": "the builder is installed as a module, with an account",
|
|
"status": "pass",
|
|
"seconds": 0,
|
|
"why": ""
|
|
},
|
|
{
|
|
"code": "P1",
|
|
"title": "the mesh builds the shared base from source",
|
|
"status": "pass",
|
|
"seconds": 84,
|
|
"why": ""
|
|
},
|
|
{
|
|
"code": "P2",
|
|
"title": "the mesh builds and runs a store of its own",
|
|
"status": "pass",
|
|
"seconds": 40,
|
|
"why": ""
|
|
},
|
|
{
|
|
"code": "P3",
|
|
"title": "the mesh builds and runs its own catalogue",
|
|
"status": "pass",
|
|
"seconds": 34,
|
|
"why": ""
|
|
},
|
|
{
|
|
"code": "P4",
|
|
"title": "the mesh rebuilds its own control plane from source",
|
|
"status": "pass",
|
|
"seconds": 36,
|
|
"why": ""
|
|
},
|
|
{
|
|
"code": "U1",
|
|
"title": "the mesh builds a module standing on that base",
|
|
"status": "pass",
|
|
"seconds": 14,
|
|
"why": ""
|
|
},
|
|
{
|
|
"code": "U2",
|
|
"title": "the mesh runs a broker for that module to talk to",
|
|
"status": "pass",
|
|
"seconds": 24,
|
|
"why": ""
|
|
},
|
|
{
|
|
"code": "U3",
|
|
"title": "the anchor runs the module the mesh built",
|
|
"status": "pass",
|
|
"seconds": 6,
|
|
"why": ""
|
|
},
|
|
{
|
|
"code": "V1",
|
|
"title": "the mesh can describe itself, and what it says is true",
|
|
"status": "fail",
|
|
"seconds": 2,
|
|
"why": "the catalogue does not know about mesh-tools:\n{\"modules\":[{\"module\":\"amqp-ping\",\"commit\":\"af1e3afa495bac11e74c2d76cb2cf7a78167f2f6\",\"repository\":\"https://git.novox.be/novox/mesh-catalog.git\",\"path\":\"modules/amqp-ping\"},{\"module\":\"lavinmq\",\"commit\":\"af1e3afa495bac11e74c2d76cb2cf7a78167f2f6\",\"repository\":\"https://git.novox.be/novox/mesh-catalog.git\",\"path\":\"modules/lavinmq\"},{\"module\":\"mesh-control\",\"commit\":\"5062c36fc9efe159aa9706c0ca2c873351ef1ce0\",\"repository\":\"https://git.novox.be/novox/mesh-control.git\",\"path\":\"\"}]}\n"
|
|
},
|
|
{
|
|
"code": "V2",
|
|
"title": "the machine's networking is what the modules asked for",
|
|
"status": "skip",
|
|
"seconds": 0,
|
|
"why": "not attempted — V1 (the mesh can describe itself, and what it says is true) did not succeed"
|
|
},
|
|
{
|
|
"code": "E1",
|
|
"title": "a change to a module's source reaches the machine on its own",
|
|
"status": "skip",
|
|
"seconds": 0,
|
|
"why": "not attempted — V2 (the machine's networking is what the modules asked for) did not succeed"
|
|
},
|
|
{
|
|
"code": "E2",
|
|
"title": "the mesh comes back after the machine reboots",
|
|
"status": "skip",
|
|
"seconds": 0,
|
|
"why": "not attempted — E1 (a change to a module's source reaches the machine on its own) did not succeed"
|
|
}
|
|
]
|
|
} |