Explorar o código

fix(plugin): prevent duplicate plugin function initialization (#6787)

Co-authored-by: Shpetim <[email protected]>
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: rekram1-node <[email protected]>
Shpetim hai 1 mes
pai
achega
c3fd3c8656
Modificáronse 1 ficheiros con 6 adicións e 0 borrados
  1. 6 0
      packages/opencode/src/plugin/index.ts

+ 6 - 0
packages/opencode/src/plugin/index.ts

@@ -47,7 +47,13 @@ export namespace Plugin {
         if (!plugin) continue
       }
       const mod = await import(plugin)
+      // Prevent duplicate initialization when plugins export the same function
+      // as both a named export and default export (e.g., `export const X` and `export default X`).
+      // Object.entries(mod) would return both entries pointing to the same function reference.
+      const seen = new Set<PluginInstance>()
       for (const [_name, fn] of Object.entries<PluginInstance>(mod)) {
+        if (seen.has(fn)) continue
+        seen.add(fn)
         const init = await fn(input)
         hooks.push(init)
       }