From 3a54bbb6174a9f68dfa04d32b94269ded0947841 Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Sun, 26 Apr 2026 04:03:57 -0700 Subject: [PATCH] fix(plugins): persist synthetic auth refs in index --- src/plugins/installed-plugin-index-store.test.ts | 1 + src/plugins/installed-plugin-index-store.ts | 1 + src/plugins/installed-plugin-index.test.ts | 2 ++ src/plugins/installed-plugin-index.ts | 4 ++++ 4 files changed, 8 insertions(+) diff --git a/src/plugins/installed-plugin-index-store.test.ts b/src/plugins/installed-plugin-index-store.test.ts index 61af416c615..fb556707a74 100644 --- a/src/plugins/installed-plugin-index-store.test.ts +++ b/src/plugins/installed-plugin-index-store.test.ts @@ -39,6 +39,7 @@ function createIndex(overrides: Partial = {}): InstalledPl rootDir: "/plugins/demo", origin: "global", enabled: true, + syntheticAuthRefs: ["demo"], startup: { sidecar: false, memory: false, diff --git a/src/plugins/installed-plugin-index-store.ts b/src/plugins/installed-plugin-index-store.ts index 0827ca174c9..45edc0201d3 100644 --- a/src/plugins/installed-plugin-index-store.ts +++ b/src/plugins/installed-plugin-index-store.ts @@ -69,6 +69,7 @@ const InstalledPluginIndexRecordSchema = z.object({ origin: z.string(), enabled: z.boolean(), enabledByDefault: z.boolean().optional(), + syntheticAuthRefs: StringArraySchema.optional(), startup: InstalledPluginIndexStartupSchema, compat: z.array(z.string()), }); diff --git a/src/plugins/installed-plugin-index.test.ts b/src/plugins/installed-plugin-index.test.ts index 119bc8bea3c..9d2dff291e2 100644 --- a/src/plugins/installed-plugin-index.test.ts +++ b/src/plugins/installed-plugin-index.test.ts @@ -123,6 +123,7 @@ function createRichPluginFixture(params: { packageVersion?: string } = {}) { providerAuthEnvVars: { demo: ["DEMO_API_KEY"], }, + syntheticAuthRefs: ["demo", "demo-cli"], channelEnvVars: { "demo-chat": ["DEMO_CHAT_TOKEN"], }, @@ -182,6 +183,7 @@ describe("installed plugin index", () => { rootDir: fixture.rootDir, source: path.join(fixture.rootDir, "index.ts"), enabled: true, + syntheticAuthRefs: ["demo", "demo-cli"], packageInstall: { defaultChoice: "npm", npm: { diff --git a/src/plugins/installed-plugin-index.ts b/src/plugins/installed-plugin-index.ts index 4c280e8a9cb..e8f551fda15 100644 --- a/src/plugins/installed-plugin-index.ts +++ b/src/plugins/installed-plugin-index.ts @@ -103,6 +103,7 @@ export type InstalledPluginIndexRecord = { origin: PluginManifestRecord["origin"]; enabled: boolean; enabledByDefault?: boolean; + syntheticAuthRefs?: readonly string[]; startup: InstalledPluginStartupInfo; compat: readonly PluginCompatCode[]; }; @@ -591,6 +592,9 @@ function buildInstalledPluginIndex( startup: buildStartupInfo(record), compat: collectCompatCodes(record), }; + if (record.syntheticAuthRefs && record.syntheticAuthRefs.length > 0) { + indexRecord.syntheticAuthRefs = record.syntheticAuthRefs; + } if (record.format && record.format !== "openclaw") { indexRecord.format = record.format; }