Context
Memo 152 Phase 7 (PRD-027), doctor gaps carried over from Memo 149. Consumes the new core primitives (LibraryLoader.probe / resolveExternal installTargets, flowmcp-core#90).
Gap (a) — module-present did resolve, not load
flowmcp doctor's module-present check decided pass/fail via require.resolve only, so a native lib that RESOLVES but fails to dlopen (missing/ABI-mismatched .node) reported green. Now it drives the REAL load via LibraryLoader.probe over the same resolution chain the runtime uses (allowed-libraries -> CLI base -> schema dir): a missing lib is LIB-001, an installed-but-unloadable one is LIB-BINDING (rebuild hint).
Gap (b) — blanket npm install hint was wrong for org-internal libs
The install hint emitted a bare npm install --prefix <base> <name> for every missing lib, which 404s for FlowMCP-org add-ons (time-csv-toolkit, geo-*-toolkit, rpc-benchmark) that are not on npm. New OrgInternalLibs helper (explicit documented list, No-Silent-Defaults) maps org-internal libs to github:FlowMCP/<repo> in both the doctor fix-hint AND the runtime LIB-001 throw (HandlerResolver -> core resolveExternal installTargets).
Also
- Core pin bump to flowmcp-core#9e17d20 + node_modules re-mirror.
- README doctor-contract passage updated ("loads", not just "resolves").
- Tests: org-internal-libs.test.mjs, doctor-library-gaps.test.mjs (dlopen-truth + github hint).
Part of the Memo 152 v4-only rollout. No push (H-19 gate).
Context
Memo 152 Phase 7 (PRD-027), doctor gaps carried over from Memo 149. Consumes the new core primitives (LibraryLoader.probe / resolveExternal installTargets, flowmcp-core#90).
Gap (a) — module-present did resolve, not load
flowmcp doctor'smodule-presentcheck decided pass/fail viarequire.resolveonly, so a native lib that RESOLVES but fails to dlopen (missing/ABI-mismatched.node) reported green. Now it drives the REAL load viaLibraryLoader.probeover the same resolution chain the runtime uses (allowed-libraries -> CLI base -> schema dir): a missing lib isLIB-001, an installed-but-unloadable one isLIB-BINDING(rebuild hint).Gap (b) — blanket npm install hint was wrong for org-internal libs
The install hint emitted a bare
npm install --prefix <base> <name>for every missing lib, which 404s for FlowMCP-org add-ons (time-csv-toolkit, geo-*-toolkit, rpc-benchmark) that are not on npm. NewOrgInternalLibshelper (explicit documented list, No-Silent-Defaults) maps org-internal libs togithub:FlowMCP/<repo>in both the doctor fix-hint AND the runtime LIB-001 throw (HandlerResolver -> core resolveExternalinstallTargets).Also
Part of the Memo 152 v4-only rollout. No push (H-19 gate).