mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-03 10:41:35 +00:00
On git-channel installs where both extensions/<id>/index.ts and dist/extensions/<id>/index.js exist, two registry assemblies resolved the same plugin id to different physical files (preferBuiltPluginArtifacts drives both the artifact choice and the load-cache key), so the path-keyed module cache evaluated the entry twice — two live plugin instances with separate state, binding hooks to one and registerTool to the other. Memoize the first resolved runtime entry path per plugin-id + real root + entry-kind so both assemblies converge on one module instance; clear the memo on activated-runtime-state and registry-load-cache resets so reload/install/doctor re-resolve. No-op on dist-only installs. Closes #107933
2.7 KiB
2.7 KiB