-
feat(cli): support `composio upgrade <version>` for specific releases (#3428)
发布于
2026-05-14 00:11:27 +00:00 Summary
composio upgradenow accepts an optional<version>argument so
users can install any published CLI release — stable or beta — without
having to wait for the channel pointer to move.- Accepts
0.13.1,v0.13.1,0.13.1-beta.42, or the full
@composio/cli@0.13.1tag (normalized internally). - When a version is provided, the "already on latest" guard is skipped
so the command also supports downgrades and reinstalls.--beta
continues to control the no-arg case.
Examples
composio upgrade # latest stable (unchanged) composio upgrade --beta # latest beta (unchanged) composio upgrade 0.13.1 # pin to a specific stable composio upgrade 0.13.1-beta.42 # install a specific beta composio upgrade @composio/cli@0.13.1 # full release tag also acceptedImplementation
upgrade.cmd.ts: added optionalversionArgs, normalizes input to a
@composio/cli@<semver>release tag, passes it through to the service.upgrade-binary.ts:upgrade/fetchLatestReleasenow accept atag
option that fetches the GitHub release directly via
/releases/tags/<tag>, bypassing the channel resolver. When a tag is
explicit, the update-availability check is skipped.- Falls back to the explicit tag for
installSkillSafewhen the upgrade
completes without returning one.
Test plan
pnpm typecheck(CLI package) — cleanpnpm testints/packages/cli— 703 passed, 1 skipped, no
regressions inupgrade-binary.test.ts- Manual:
composio upgrade 0.13.0from a newer beta to confirm
downgrade path works against real GitHub releases - Manual:
composio upgrade --betastill resolves the latest beta
when no version is given
🤖 Generated with Claude Code
Co-authored-by: Claude Opus 4.7 (1M context) noreply@anthropic.com
下载附件