Completes the catalogue migration on the controller side. examples/modules/ framed the real catalogue as illustrations of a control-plane package; it is the mesh's own catalogue and now lives in novox/mesh-catalog, consumed as a build source. The parser engine stays here (internal/catalogue) — the control plane owns the manifest contract; the data does not belong beside it. Answers ADR 0030's open tier-4 question (where the catalogue lives) in favour of one flat mesh-catalog repository.
Verified safe to remove:
All 30 modules in examples/modules/ are already present in mesh-catalog (70 modules) — comm confirms zero missing. Nothing is lost.
The only reference to examples/modules outside itself is internal/catalogue/parseall_test.go, which is removed with it (along with modules_test.go). internal/catalogue's own inline parser tests remain.
After the change: go build ./..., go vet ./..., and go test ./internal/... ./cmd/... all pass.
Rebased onto current main (resolved modify/delete conflicts on distribution.json/dnsmasq.json — edited on main since, deleted here as the whole directory goes).
The sibling claude/four-more-of-the-catalogue branch (which added modules to this now-removed location) is left in place; its still-unconverted modules (kometa/penpot/matrix) are follow-up work for mesh-catalog in its current format, not salvageable from the old examples format.
Completes the catalogue migration on the controller side. `examples/modules/` framed the real catalogue as illustrations of a control-plane package; it is the mesh's own catalogue and now lives in `novox/mesh-catalog`, consumed as a build source. The parser engine stays here (`internal/catalogue`) — the control plane owns the manifest contract; the data does not belong beside it. Answers ADR 0030's open tier-4 question (where the catalogue lives) in favour of one flat mesh-catalog repository.
**Verified safe to remove:**
- All **30** modules in `examples/modules/` are already present in `mesh-catalog` (70 modules) — `comm` confirms zero missing. Nothing is lost.
- The **only** reference to `examples/modules` outside itself is `internal/catalogue/parseall_test.go`, which is removed with it (along with `modules_test.go`). `internal/catalogue`'s own inline parser tests remain.
- After the change: `go build ./...`, `go vet ./...`, and `go test ./internal/... ./cmd/...` all pass.
Rebased onto current main (resolved modify/delete conflicts on `distribution.json`/`dnsmasq.json` — edited on main since, deleted here as the whole directory goes).
The sibling `claude/four-more-of-the-catalogue` branch (which added modules to this now-removed location) is left in place; its still-unconverted modules (kometa/penpot/matrix) are follow-up work for mesh-catalog in its current format, not salvageable from the old examples format.
https://claude.ai/code/session_01D6qtiYU3P9jk3pnAXyAFyx
The modules the mesh runs were under examples/modules/, which framed
the real catalogue as illustrations of a control-plane package. They
are neither examples nor the control plane's — they are the mesh's own
catalogue, and they now live in their own repository (novox/mesh-catalog),
consumed as a build source like any other.
The engine that reads them stays here (internal/catalogue): the control
plane owns the manifest contract; the data does not belong beside it.
Removed with them: modules_test.go and parseall_test.go, which validated
the example manifests against the parser. That validation logically
follows the catalogue to mesh-catalog, but it imports internal/catalogue,
so re-homing it needs the parser exported from internal/ first — a
deliberate follow-up, not done here. Until then the pipeline is the gate,
and internal/catalogue's own inline tests still cover the parser.
Answers novox/hq ADR 0030's open tier-4 question — where the catalogue
lives — in favour of one flat mesh-catalog repository.
Claude-Session: https://claude.ai/code/session_01LrgweAeERJYBg88c5cKDzF
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Completes the catalogue migration on the controller side.
examples/modules/framed the real catalogue as illustrations of a control-plane package; it is the mesh's own catalogue and now lives innovox/mesh-catalog, consumed as a build source. The parser engine stays here (internal/catalogue) — the control plane owns the manifest contract; the data does not belong beside it. Answers ADR 0030's open tier-4 question (where the catalogue lives) in favour of one flat mesh-catalog repository.Verified safe to remove:
examples/modules/are already present inmesh-catalog(70 modules) —commconfirms zero missing. Nothing is lost.examples/modulesoutside itself isinternal/catalogue/parseall_test.go, which is removed with it (along withmodules_test.go).internal/catalogue's own inline parser tests remain.go build ./...,go vet ./..., andgo test ./internal/... ./cmd/...all pass.Rebased onto current main (resolved modify/delete conflicts on
distribution.json/dnsmasq.json— edited on main since, deleted here as the whole directory goes).The sibling
claude/four-more-of-the-cataloguebranch (which added modules to this now-removed location) is left in place; its still-unconverted modules (kometa/penpot/matrix) are follow-up work for mesh-catalog in its current format, not salvageable from the old examples format.https://claude.ai/code/session_01D6qtiYU3P9jk3pnAXyAFyx