From ddfee2a8ff0cb10503337d5aa2fe99194f7d9b87 Mon Sep 17 00:00:00 2001 From: huntharo Date: Sat, 14 Mar 2026 09:20:21 -0400 Subject: [PATCH] Plugins: migrate legacy binding ids --- src/plugins/conversation-binding.test.ts | 4 ++-- src/plugins/conversation-binding.ts | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/plugins/conversation-binding.test.ts b/src/plugins/conversation-binding.test.ts index ab7bcb51a48..5b966739cb8 100644 --- a/src/plugins/conversation-binding.test.ts +++ b/src/plugins/conversation-binding.test.ts @@ -387,10 +387,10 @@ describe("plugin conversation binding approvals", () => { }); }); - it("migrates a legacy plugin binding record through the new approval flow", async () => { + it("migrates a legacy plugin binding record through the new approval flow even if the old plugin id differs", async () => { sessionBindingState.setRecord({ bindingId: "binding-legacy", - targetSessionKey: "plugin-binding:codex:legacy123", + targetSessionKey: "plugin-binding:old-codex-plugin:legacy123", targetKind: "session", conversation: { channel: "telegram", diff --git a/src/plugins/conversation-binding.ts b/src/plugins/conversation-binding.ts index e87b7b07568..5861de814f8 100644 --- a/src/plugins/conversation-binding.ts +++ b/src/plugins/conversation-binding.ts @@ -204,13 +204,12 @@ function isLegacyPluginBindingRecord(params: { } | null | undefined; - pluginId: string; }): boolean { if (!params.record || isPluginOwnedBindingMetadata(params.record.metadata)) { return false; } const targetSessionKey = params.record.targetSessionKey.trim(); - return targetSessionKey.startsWith(`${PLUGIN_BINDING_SESSION_PREFIX}:${params.pluginId}:`); + return targetSessionKey.startsWith(`${PLUGIN_BINDING_SESSION_PREFIX}:`); } function buildDiscordButtonRow( @@ -544,7 +543,6 @@ export async function requestPluginConversationBinding(params: { const existingPluginBinding = toPluginConversationBinding(existing); const existingLegacyPluginBinding = isLegacyPluginBindingRecord({ record: existing, - pluginId: params.pluginId, }); if (existing && !existingPluginBinding) { if (existingLegacyPluginBinding) {