Rename mesh-control -> mesh-controller, substrate -> foundation

One name per thing, per the HQ glossary: the module/container/image/binary/repo
becomes mesh-controller, the seat the-controller, and the store+broker pair the
foundation (embedded base bundles, default template and example lock renamed with
their go:embed directives). No behaviour change — a pure vocabulary rename.

Claude-Session: https://claude.ai/code/session_01D6qtiYU3P9jk3pnAXyAFyx
This commit is contained in:
2026-09-16 18:40:40 +02:00
parent 286cf0bba2
commit f062235c5e
3 changed files with 3 additions and 3 deletions
+1 -1
View File
@@ -47,7 +47,7 @@ own resolved environment.
- **A module's API client and its tool implementations** → in the module. (The Plex client, the - **A module's API client and its tool implementations** → in the module. (The Plex client, the
Umami client, `tools/plex.ts` — all module-local. ADR 0039.) Umami client, `tools/plex.ts` — all module-local. ADR 0039.)
- **Delivery machinery** — build executor, bundler, dependency resolver, artifact manager, feature - **Delivery machinery** — build executor, bundler, dependency resolver, artifact manager, feature
handlers → **mesh-control**. It co-evolves with the pipeline. handlers → **mesh-controller**. It co-evolves with the pipeline.
- **Host synchronisers** — config-sync, ufw config, vhost generation, systemd, health checks → - **Host synchronisers** — config-sync, ufw config, vhost generation, systemd, health checks →
**mesh-host**'s apply engine. The host applies these; they are not module code. **mesh-host**'s apply engine. The host applies these; they are not module code.
- **Domain logic** — tasks, workflows, agents, provider integrations → **tier-2 contexts**. - **Domain logic** — tasks, workflows, agents, provider integrations → **tier-2 contexts**.
+1 -1
View File
@@ -9,7 +9,7 @@ export type { Envelope, EventHeaders };
/** A request/reply call and a publish/subscribe surface over the mesh broker. */ /** A request/reply call and a publish/subscribe surface over the mesh broker. */
export interface Broker { export interface Broker {
/** Ask one question and await one answer — the client side; the shape mesh-control's command /** Ask one question and await one answer — the client side; the shape mesh-controller's command
* API is reached by. */ * API is reached by. */
request<Req, Res>(key: string, body: Req): Promise<Res>; request<Req, Res>(key: string, body: Req): Promise<Res>;
/** Answer a question — the server side of request/reply. A tool runtime serves invocations this /** Answer a question — the server side of request/reply. A tool runtime serves invocations this
+1 -1
View File
@@ -106,7 +106,7 @@ test("modules can SERVE: a real async tool, loaded and invoked over the broker",
const broker = memBroker(); const broker = memBroker();
const stop = await serveTools(broker, {}); const stop = await serveTools(broker, {});
// Invoke it the way a caller (mesh-control's command API) would — over the broker, by module and // Invoke it the way a caller (mesh-controller's command API) would — over the broker, by module and
// tool, each served on its own key `demo.create_site` (novox/hq ADR 0047). // tool, each served on its own key `demo.create_site` (novox/hq ADR 0047).
const result = (await invokeTool(broker, "demo", "create_site", { domain: "my-app" })) as { snippet: string }; const result = (await invokeTool(broker, "demo", "create_site", { domain: "my-app" })) as { snippet: string };
assert.match(result.snippet, /data-website-id="site-123"/); assert.match(result.snippet, /data-website-id="site-123"/);