Repository navigation
v0.26.2
workbench v0.26.2
2026-09-06
Headline: Every plugin loaded from a directory reported zero tools. The
portal listed all 25 apps correctly and each showed 0 tools; only the two
built-in plugins, which are imported statically, showed real counts. The tools
were never registered, so agents could not call them.
Fixes
- Plugin tools are found when the module arrives CJS-wrapped.
filterTools
searched only the top level of the imported module. That is the right shape
when the graph stays ESM — which is why loading from source in development
worked and hid this — but the shipped server is compiled to CJS and imports
each plugin's.tsthrough tsx, so the namespace it actually receives holds
defaultandmodule.exportswith the tools nested inside. Nothing matched,
every directory-loaded plugin registered with an empty tool list, and the
failure was silent because an empty array is indistinguishable from a plugin
that legitimately exports nothing. The search now unwraps that shape, the
same wayunwrapDefaultalready did for the manifest, and de-duplicates
tools reachable by more than one path.
Verified inside the built image: 211 tools across 19 plugins, none reporting
zero. Before the fix, 14 of them did.
Full diff: v0.26.1...v0.26.2