Hello Project

VERSION a9b38ce
Hello Project

This is the project root. Everything else branches from here.

Tests
Smoke Test

A trivial runnable check, with its output cached below the fence.

echo "hello from meshfox"
date
exit code: 0 · 33ms

hello from meshfox
Mon Sep  7 23:35:17 +04 2026
Build Then Test

Two blocks in the same node, chained with deps: running test always runs build first, automatically — deps="build" is a bare name here because build lives in this node.

echo "building..."
exit code: 0

building...
echo "testing..."
exit code: 0

testing...
Examples
Shared Smoke Check

Reused from Tests as well — this node has two parents: Examples (its lexical parent) and Tests (declared via the meshfox:edge line above).

Deploy (cross-node dependency)

deps can also point at a block in a different node, as node-id/block-name — here, build-then-test/test. Running deploy runs build, then test, then deploy, in that order.

echo "deploying..."
exit code: 0

deploying...

verify closes out the chain but has no cache flag — it still runs (and still runs deploy and its own deps first), it just never writes an output block back into the file, so nothing below appears here even after running it.

echo "verifying..."
Release (multiple dependencies)

deps is a comma-separated list — a block can depend on more than one other block at once, mixing same-node and cross-node references. Here release depends on both build-then-test/test and deploy-example/deploy; since deploy itself already depends on test (which depends on build), running release still only runs build and test once each — shared dependencies aren't re-run just because more than one thing needs them.

echo "releasing..."
exit code: 0

releasing...
Lint (implicit block name)

A node with just one fence and no name= at all is runnable too, implicitly named after its own node id (lint) — so it's addressed as meshfox run examples lint, no separate trailing block name needed (dropping a name that would just repeat lint a second time). A second fence in this node, named or not, would make that ambiguous and turn the shortcut off.

echo "linting..."
exit code: 0

linting...
Architecture Diagram
Seed Script

A tiny runnable script — see interpreters.canvas.md for how meshfox executes it directly from the canvas.

import sys

print(f"seeding via {sys.argv[0]}")