A module is a repository and a path, and installing is described to its end #33

Merged
jschoubben merged 4 commits from feat/a-module-is-a-repository-and-a-path into main 2026-09-12 14:54:22 +00:00
Owner

Four records.

How a mesh is raised — the only complete account of standing one up was an integration test, and a fixture is free to invent what it needs. Written from what the installer does: genesis and joining as separate moments, the lab running the installer rather than describing installing, and the things that are not true yet named rather than glossed — including one rule nothing checks.

A module is a repository and a path within it — the design said a manifest sits at a repository's root, which means one repository per module. Nothing we have is shaped that way, so the builder could be asked to build nothing that exists. Also corrects, in the same document, how the three things the build loop cannot produce actually arrive: only the control plane is carried, the registry is pulled from the public internet, and the builder has no route at all.

The lab takes requests — proposed, not accepted. The load-bearing part is the restriction that a request names a bed and a commit and nothing else.

Issue 043 withdrawn — the capability existed and I used the wrong verb. Kept for the one real finding: the wrong verb succeeds and reports success, producing an account that authenticates and can do nothing.

Code in the matching branch on mesh-control, mesh-catalog and mesh-lab; the first two are already on main.

Four records. **How a mesh is raised** — the only complete account of standing one up was an integration test, and a fixture is free to invent what it needs. Written from what the installer does: genesis and joining as separate moments, the lab running the installer rather than describing installing, and the things that are not true yet named rather than glossed — including one rule nothing checks. **A module is a repository and a path within it** — the design said a manifest sits at a repository's root, which means one repository per module. Nothing we have is shaped that way, so the builder could be asked to build nothing that exists. Also corrects, in the same document, how the three things the build loop cannot produce actually arrive: only the control plane is carried, the registry is pulled from the public internet, and the builder has no route at all. **The lab takes requests** — proposed, not accepted. The load-bearing part is the restriction that a request names a bed and a commit and nothing else. **Issue 043 withdrawn** — the capability existed and I used the wrong verb. Kept for the one real finding: the wrong verb succeeds and reports success, producing an account that authenticates and can do nothing. Code in the matching branch on mesh-control, mesh-catalog and mesh-lab; the first two are already on main.
jschoubben added 4 commits 2026-09-12 14:53:07 +00:00
The one complete account of standing a mesh up was an integration test, and a
fixture is free to invent what it needs — which is how a registry that exists in
no production hid two faults for as long as the lab existed.

Written from what the installer does, not what it should do: genesis and joining
are separate moments, the lab runs the installer rather than describing
installing, and three things that are not true yet are named rather than glossed,
including one rule nothing checks.

Claude-Session: https://claude.ai/code/session_01D6qtiYU3P9jk3pnAXyAFyx
The design said a module's manifest sits at a repository's root, full stop, which
means one repository per module. Nothing that exists is shaped that way: the
catalogue holds sixty-seven modules one to a directory, no code repository has a
manifest at its root, and the system being replaced has always built a module
from a repository and a path.

So the builder could be asked to build nothing that exists — pointed at the
catalogue it finds no manifest, pointed at a module's source it finds none
either. Recorded as a decision because it moves the core modules' manifests
beside their source, and corrects the design that said otherwise.

Also corrects, in the same document, how the three things the build loop cannot
produce actually arrive. They were written as though all three were carried in.
Only the control plane is: the registry is pulled from the public internet, and
the builder has no route at all — which is now stated as the open one rather than
implied to be solved.

Claude-Session: https://claude.ai/code/session_01D6qtiYU3P9jk3pnAXyAFyx
Raising a scenario occupies the machine and the person who started it, and
running in the background against a working copy is worse than waiting: a run
reads that copy as it goes, so editing while it runs yields a result describing a
state that never existed.

Proposed rather than accepted. The load-bearing part is the restriction — a
request names a bed and a commit and nothing else — because a request that could
say what to install and where would make the lab a second way of installing a
mesh, which is the arrangement that just cost a year of late-found faults.

Claude-Session: https://claude.ai/code/session_01D6qtiYU3P9jk3pnAXyAFyx
A build machine was refused the build queue, and this was raised as a gap in what
a manifest can express. It is not: `builder issue` creates exactly that account,
three lines from the code being read at the time.

Kept rather than deleted, for the one real thing in it — the wrong verb succeeds
and reports success, producing an account that authenticates and can do nothing,
so the failure surfaces a layer away as a permissions error that reads like a
missing feature.

Claude-Session: https://claude.ai/code/session_01D6qtiYU3P9jk3pnAXyAFyx
jschoubben merged commit 0fa4d14f54 into main 2026-09-12 14:54:22 +00:00
jschoubben deleted branch feat/a-module-is-a-repository-and-a-path 2026-09-12 14:54:22 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/hq#33