Hi! Maintainer of OpenClaw here. Heads-up about a small, non-urgent type-level change that affects this plugin.
OpenClaw recently moved channel setup vocabulary out of core and into plugins (openclaw/openclaw#112238). The shared ChannelSetupInput type is now a small generic envelope plus a compatibility tier of @deprecated fields. Your plugin reads cliPath, httpUrl, url from setup input (src/channel/setup.ts:49,53), which now lives in that deprecated tier.
Nothing is broken today: runtime behavior is unchanged (all setup values still flow), and your published build keeps working as-is. This only surfaces as editor deprecation hints when you next develop against a current SDK.
The one-time fix is to declare the fields your plugin owns in a plugin-local type:
import type { ChannelSetupInput } from "openclaw/plugin-sdk/channel-setup";
type SimplexSetupInput = ChannelSetupInput & {
cliPath?: string;
httpUrl?: string;
url?: string;
};
// in your setup adapter:
const setupInput = input as SimplexSetupInput;
Docs for the pattern: https://docs.openclaw.ai/plugins/sdk-setup
OpenClaw removes deprecated fields only once no published plugin reads them, so the shared fields stay until you've migrated — but migrating unpins you from that shared surface entirely. Happy to answer questions or review a PR. Thanks for building on OpenClaw!
Hi! Maintainer of OpenClaw here. Heads-up about a small, non-urgent type-level change that affects this plugin.
OpenClaw recently moved channel setup vocabulary out of core and into plugins (openclaw/openclaw#112238). The shared
ChannelSetupInputtype is now a small generic envelope plus a compatibility tier of@deprecatedfields. Your plugin readscliPath,httpUrl,urlfrom setup input (src/channel/setup.ts:49,53), which now lives in that deprecated tier.Nothing is broken today: runtime behavior is unchanged (all setup values still flow), and your published build keeps working as-is. This only surfaces as editor deprecation hints when you next develop against a current SDK.
The one-time fix is to declare the fields your plugin owns in a plugin-local type:
Docs for the pattern: https://docs.openclaw.ai/plugins/sdk-setup
OpenClaw removes deprecated fields only once no published plugin reads them, so the shared fields stay until you've migrated — but migrating unpins you from that shared surface entirely. Happy to answer questions or review a PR. Thanks for building on OpenClaw!