node-tools launches every bundle it serves; a child's emit is published as its module (hq ADR 0193) #36

Merged
mesh-admin merged 1 commits from feat/0193-the-runtime-launches-every-bundle into main 2026-10-03 20:01:58 +00:00
Contributor

hq ADR 0193, design 38 WP4d.

  • Every served entrypoint is started as a child speaking MCP over stdio, with its module's words, MESH_SERVED_MODULE, MESH_MODULE and MESH_NODE. A non-executable entrypoint is refused by name; the others serve.
  • The import path, the SDK resolve hook (issue 209) and the per-registration hand-off (ADR 0192 §3) go. The one-module form used by the per-module containers (their handlers and provisioners) is still imported until WP4c.
  • A child's mesh/publish is published as its module (as in-process emits were) and answered once accepted (SDK 0.1.5).
  • A child that exits before its handshake fails with its own last words, not just an exit code.

Tests: fixtures served through launchers exactly as the builder writes them; the five-module test (two TypeScript, one broken, Python, protocol-written TypeScript) including an emit landing on its module's subject; a non-executable entrypoint refused; own-SDK-copy and per-bundle-environment tests launched; 36/36.

Merge only after every TypeScript bundle has been rebuilt with a launcher (controller #239 live), or bundles still named by their .js entrypoint would be refused.

hq ADR 0193, design 38 WP4d. - Every served entrypoint is started as a child speaking MCP over stdio, with its module's words, `MESH_SERVED_MODULE`, `MESH_MODULE` and `MESH_NODE`. A non-executable entrypoint is refused by name; the others serve. - The import path, the SDK resolve hook (issue 209) and the per-registration hand-off (ADR 0192 §3) go. The one-module form used by the per-module containers (their handlers and provisioners) is still imported until WP4c. - A child's `mesh/publish` is published as its module (as in-process emits were) and answered once accepted (SDK 0.1.5). - A child that exits before its handshake fails with its own last words, not just an exit code. Tests: fixtures served through launchers exactly as the builder writes them; the five-module test (two TypeScript, one broken, Python, protocol-written TypeScript) including an emit landing on its module's subject; a non-executable entrypoint refused; own-SDK-copy and per-bundle-environment tests launched; 36/36. **Merge only after every TypeScript bundle has been rebuilt with a launcher** (controller #239 live), or bundles still named by their `.js` entrypoint would be refused.
mesh-admin added 1 commit 2026-10-03 19:12:37 +00:00
Every served entrypoint is started as a process speaking MCP over stdio, told its module and node;
one that is not executable is refused by name. The import path, the SDK resolve hook (issue 209)
and the per-registration hand-off go. The one-module form the per-module containers use is still
imported until they move (to-be 38 WP4c). A child's mesh/publish is published as its module and
answered once accepted; a child that dies says why in its own last words. Fixtures are served
through launchers exactly as the builder writes them.
mesh-admin merged commit 65f3b68076 into main 2026-10-03 20:01:58 +00:00
mesh-admin deleted branch feat/0193-the-runtime-launches-every-bundle 2026-10-03 20:01:59 +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/mesh-tools#36