Found preparing hq design 38 WP4, before the first module's tools bundle is loaded beside the runtime's own.
A bundle carries its dependencies (to-be 38 WP3), the SDK among them. Imported in-process, that copy is a second SDK with its own tool registry: a bundle's registerModuleTools lands in a list the runtime never reads, the bundle counts as loaded, and tools answers an empty list — silently. Proven with a two-copies probe on the laptop (0 registrations seen).
Fix: node-tools installs a module.registerHooks() resolve hook (in-thread, synchronous; module.register() is deprecated from Node 26 — probed on 23.9, 25.8, 26.7 and 26.10, the four nodes' versions) before the first bundle is imported; every import of @novox/mesh-sdk (bare or a subpath), from whichever bundle, resolves against the runtime's own file, so there is one registry and one broker. Everything else a bundle carries still resolves from its own tree; a launched bundle (ADR 0188) is untouched.
Test: a bundle in a temp directory with its own copy of the SDK is served (zeta.probe@anchor answers). Without the hook the same test fails with serving 0 tool(s) for 1 module(s): (none). Full suite 33/33 against the test bus.
hq: 04-ISSUES/209 (hq #316). Follow-up: mesh-catalog #239 (WP4) merges only after this has rolled to all four nodes.
Found preparing hq design 38 WP4, before the first module's tools bundle is loaded beside the runtime's own.
A bundle carries its dependencies (to-be 38 WP3), the SDK among them. Imported in-process, that copy is a second SDK with its own tool registry: a bundle's `registerModuleTools` lands in a list the runtime never reads, the bundle counts as loaded, and `tools` answers an empty list — silently. Proven with a two-copies probe on the laptop (0 registrations seen).
Fix: `node-tools` installs a `module.registerHooks()` resolve hook (in-thread, synchronous; `module.register()` is deprecated from Node 26 — probed on 23.9, 25.8, 26.7 and 26.10, the four nodes' versions) before the first bundle is imported; every import of `@novox/mesh-sdk` (bare or a subpath), from whichever bundle, resolves against the runtime's own file, so there is one registry and one broker. Everything else a bundle carries still resolves from its own tree; a launched bundle (ADR 0188) is untouched.
Test: a bundle in a temp directory with its own copy of the SDK is served (`zeta.probe@anchor` answers). Without the hook the same test fails with `serving 0 tool(s) for 1 module(s): (none)`. Full suite 33/33 against the test bus.
hq: `04-ISSUES/209` (hq #316). Follow-up: mesh-catalog #239 (WP4) merges only after this has rolled to all four nodes.
A bundle carries its dependencies, the SDK among them; imported in-process that copy was a
second SDK with its own tool registry, so a bundle registered its tools into a list the
runtime never read and served nothing, silently. A resolve hook (module.registerHooks, in
thread; module.register is deprecated from Node 26) now sends every import of
@novox/mesh-sdk, from whichever bundle, to the runtime's own copy: one registry, one broker.
The test loads a bundle from a directory holding its own SDK copy and sees its tool served.
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.
Found preparing hq design 38 WP4, before the first module's tools bundle is loaded beside the runtime's own.
A bundle carries its dependencies (to-be 38 WP3), the SDK among them. Imported in-process, that copy is a second SDK with its own tool registry: a bundle's
registerModuleToolslands in a list the runtime never reads, the bundle counts as loaded, andtoolsanswers an empty list — silently. Proven with a two-copies probe on the laptop (0 registrations seen).Fix:
node-toolsinstalls amodule.registerHooks()resolve hook (in-thread, synchronous;module.register()is deprecated from Node 26 — probed on 23.9, 25.8, 26.7 and 26.10, the four nodes' versions) before the first bundle is imported; every import of@novox/mesh-sdk(bare or a subpath), from whichever bundle, resolves against the runtime's own file, so there is one registry and one broker. Everything else a bundle carries still resolves from its own tree; a launched bundle (ADR 0188) is untouched.Test: a bundle in a temp directory with its own copy of the SDK is served (
zeta.probe@anchoranswers). Without the hook the same test fails withserving 0 tool(s) for 1 module(s): (none). Full suite 33/33 against the test bus.hq:
04-ISSUES/209(hq #316). Follow-up: mesh-catalog #239 (WP4) merges only after this has rolled to all four nodes.d4a4f4d1bato5d395c54735d395c5473to7152148410