What the mesh is, what it is becoming, and why. Implementation lives in the code repositories; the reasoning lives here. 00-GENESIS mission, engineering context, effect, and the rules that hold 01-RESEARCH investigations, before they harden into design 02-DESIGN the authoritative specification adr numbered decisions — what was chosen, and what was rejected DECISIONS.md the ledger: every decision, in the order it was taken Written for a reader who is not its author and has no access to the mesh it describes. Addresses use the documentation ranges of RFC 5737 and RFC 1918; nodes are named by role. Single initial commit by intent. The prior history came from a private repository and carried operational detail — a routable address identified as a VPN hub, real domain names, a hosting provider — which sanitising a tip commit would not have removed from the log.
2.1 KiB
2.1 KiB
Engineering Context
The conditions the mesh is built for. Properties, not an inventory — no node here is named, and nothing should be designed around a particular one existing.
Mandatory
- Nodes are heterogeneous. Desktops, laptops and servers, with different hardware, different operating systems and wildly different uptime. A design that assumes uniform nodes does not survive contact.
- Some nodes are mobile and frequently absent. They sleep, change networks and lose addressability. A node being unreachable is ordinary operation, never an incident.
- At least one node must be stably addressable. Central components — transport, registry, artifact storage — can only live where they can always be reached. That is a property some node must have, not an identity a particular node holds.
- Human agents are few — often one — and usually asleep. There is no team, no rota, no second reviewer. Anything requiring a human to notice it will be noticed late.
- Nodes are personal. A human agent works on the same node the mesh runs on. The mesh is a guest there and must not make a node worse to use.
Default
- Self-hosted throughout. Transport, state, artifacts and memory run on nodes the mesh owns, not a managed service.
- A hosted model provider supplies the thinking for non-human agents, drawn from a shared pool of subscriptions — which is why budget pacing is a first-class concern.
- Long-lived user services rather than an orchestrator. No cluster scheduler, no cloud control plane.
Defaults, not mandates. A second model provider is anticipated by design; nothing in the domain may assume one vendor's credential lifecycle.
Deviations
- No enterprise identity. No directory, no SSO. Identity is mesh-internal.
- Public exposure is minimal. Only nodes that must terminate public traffic do so.
- Agents share a pool of provider subscriptions rather than holding billing relationships of their own. A consequence of personal-scale infrastructure, and the reason spend must be paced rather than merely billed.