From cd753cd74062f02a3f252353ebf94a6497ee3f16 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 16 Apr 2026 08:07:34 +0000 Subject: [PATCH] fix: alias legacy openSnap comlink path to openMiniApp Wire path openSnap matches the Frames SDK open_snap action used by older mini apps. Forward it to openMiniApp in the host, expose the same alias on WireMiniAppHost and sdk.actions, and add actions.openSnap to the capability list for manifest validation. --- packages/miniapp-core/src/types.ts | 4 ++++ packages/miniapp-host/src/comlink/comlink.ts | 3 +++ packages/miniapp-host/src/helpers/sdk.ts | 1 + packages/miniapp-sdk/src/sdk.ts | 1 + packages/miniapp-sdk/src/types.ts | 2 ++ 5 files changed, 11 insertions(+) diff --git a/packages/miniapp-core/src/types.ts b/packages/miniapp-core/src/types.ts index 2dc40a22..42c95404 100644 --- a/packages/miniapp-core/src/types.ts +++ b/packages/miniapp-core/src/types.ts @@ -62,6 +62,8 @@ export const miniAppHostCapabilityList = [ 'actions.sendToken', 'actions.swapToken', 'actions.openMiniApp', + // Legacy alias for actions.openMiniApp (Frames `open_snap`) + 'actions.openSnap', 'actions.requestCameraAndMicrophoneAccess', 'experimental.signManifest', 'haptics.impactOccurred', @@ -97,6 +99,8 @@ export type WireMiniAppHost = { sendToken: SendToken.SendToken swapToken: SwapToken.SwapToken openMiniApp: OpenMiniApp.OpenMiniApp + /** @deprecated Legacy Frames wire name; same as {@link openMiniApp}. */ + openSnap: OpenMiniApp.OpenMiniApp composeCast: ( options: ComposeCast.Options, ) => Promise> diff --git a/packages/miniapp-host/src/comlink/comlink.ts b/packages/miniapp-host/src/comlink/comlink.ts index 1aae6313..d29bf0c9 100644 --- a/packages/miniapp-host/src/comlink/comlink.ts +++ b/packages/miniapp-host/src/comlink/comlink.ts @@ -387,6 +387,9 @@ export function expose( return obj.updateBackState(...argumentList); case 'openMiniApp': return obj.openMiniApp(...argumentList); + // Legacy Frames SDK name for opening another mini app + case 'openSnap': + return obj.openSnap(...argumentList); default: throw new Error(`Unsupported APPLY for ${path.join('/')}`) } diff --git a/packages/miniapp-host/src/helpers/sdk.ts b/packages/miniapp-host/src/helpers/sdk.ts index 7d2531a3..c6d4a91f 100644 --- a/packages/miniapp-host/src/helpers/sdk.ts +++ b/packages/miniapp-host/src/helpers/sdk.ts @@ -9,6 +9,7 @@ import { export function wrapHandlers(host: MiniAppHost): WireMiniAppHost { return { ...host, + openSnap: host.openMiniApp, addFrame: async () => { try { const result = await host.addMiniApp() diff --git a/packages/miniapp-sdk/src/sdk.ts b/packages/miniapp-sdk/src/sdk.ts index b82f8320..4e9a751c 100644 --- a/packages/miniapp-sdk/src/sdk.ts +++ b/packages/miniapp-sdk/src/sdk.ts @@ -91,6 +91,7 @@ export const sdk: MiniAppSDK = { viewCast: miniAppHost.viewCast.bind(miniAppHost), viewProfile: miniAppHost.viewProfile.bind(miniAppHost), openMiniApp: miniAppHost.openMiniApp.bind(miniAppHost), + openSnap: miniAppHost.openSnap.bind(miniAppHost), signIn: async (options) => { const response = await miniAppHost.signIn({ ...options, diff --git a/packages/miniapp-sdk/src/types.ts b/packages/miniapp-sdk/src/types.ts index 5b58f000..80bcfd03 100644 --- a/packages/miniapp-sdk/src/types.ts +++ b/packages/miniapp-sdk/src/types.ts @@ -90,6 +90,8 @@ export type MiniAppSDK = { sendToken: SendToken.SendToken swapToken: SwapToken.SwapToken openMiniApp: OpenMiniApp.OpenMiniApp + /** @deprecated Legacy Frames action name; same as {@link openMiniApp}. */ + openSnap: OpenMiniApp.OpenMiniApp requestCameraAndMicrophoneAccess: RequestCameraAndMicrophoneAccess.RequestCameraAndMicrophoneAccess } experimental: {