From b65f99c3772a7232f9fe35e139e1c2b76660c778 Mon Sep 17 00:00:00 2001 From: Matt Johnson-Pint Date: Fri, 16 May 2025 17:33:24 -0700 Subject: [PATCH 1/4] forward prerelease flag to subcommand --- cli/src/commands/new/index.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cli/src/commands/new/index.ts b/cli/src/commands/new/index.ts index edf9eeddc..4bf63c680 100644 --- a/cli/src/commands/new/index.ts +++ b/cli/src/commands/new/index.ts @@ -305,7 +305,11 @@ export default class NewCommand extends BaseCommand { } } if (updateSDK) { - await SDKInstallCommand.run([sdk, latestVersion!, "--no-logo"]); + const sdkInstallArgs = [sdk, latestVersion!, "--no-logo"]; + if (prerelease) { + sdkInstallArgs.push("--prerelease"); + } + await SDKInstallCommand.run(sdkInstallArgs); installedSdkVersion = latestVersion; } } From d240bd68d90d8efbd4817de9c527754f83cc4f3d Mon Sep 17 00:00:00 2001 From: Matt Johnson-Pint Date: Fri, 16 May 2025 17:38:31 -0700 Subject: [PATCH 2/4] allow prerelease if using a prerelease sdk --- cli/src/commands/dev/index.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cli/src/commands/dev/index.ts b/cli/src/commands/dev/index.ts index 41cc14c91..b74a64f16 100644 --- a/cli/src/commands/dev/index.ts +++ b/cli/src/commands/dev/index.ts @@ -80,6 +80,7 @@ export default class DevCommand extends BaseCommand { const app = await getAppInfo(appPath); const { sdk, sdkVersion } = app; + const prerelease = vi.isPrerelease(sdkVersion) || flags.prerelease; if (!flags["no-logo"]) { this.log(getHeader(this.config.version)); @@ -109,7 +110,7 @@ export default class DevCommand extends BaseCommand { } } } else if (await isOnline()) { - const version = await vi.findLatestCompatibleRuntimeVersion(sdk, sdkVersion, flags.prerelease); + const version = await vi.findLatestCompatibleRuntimeVersion(sdk, sdkVersion, prerelease); if (version && !(await vi.runtimeVersionIsInstalled(version))) { const runtimeText = `Modus Runtime ${version}`; await withSpinner(chalk.dim("Downloading and installing " + runtimeText), async (spinner) => { @@ -128,7 +129,7 @@ export default class DevCommand extends BaseCommand { } runtimeVersion = version; } else { - const version = await vi.findCompatibleInstalledRuntimeVersion(sdk, sdkVersion, flags.prerelease); + const version = await vi.findCompatibleInstalledRuntimeVersion(sdk, sdkVersion, prerelease); if (!version) { this.logError("Could not find a compatible Modus runtime version. Please try again when you have an internet connection."); return; From 03ac92fd72e4f17fe2b9593e5a5ecc390ccc59f1 Mon Sep 17 00:00:00 2001 From: Matt Johnson-Pint Date: Fri, 16 May 2025 17:40:15 -0700 Subject: [PATCH 3/4] Update CHANGELOG.md --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e780cac30..d235ec4c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ # Change Log +## 2025-05-16 CLI 0.18.0 + +- fix: pass pre-release flags properly to subcommands [#847](https://github.com/hypermodeinc/modus/pull/847) + ## 2025-05-16 Runtime 0.18.0-alpha.2 - fix: reflection error in runtime when starting agent [#845](https://github.com/hypermodeinc/modus/pull/845) From f24d776fa5e1b4edb2f68cff0717d34ec36e7dcd Mon Sep 17 00:00:00 2001 From: Matt Johnson-Pint Date: Fri, 16 May 2025 18:01:34 -0700 Subject: [PATCH 4/4] sort versions --- cli/src/util/versioninfo.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cli/src/util/versioninfo.ts b/cli/src/util/versioninfo.ts index a3f918917..043279ea8 100644 --- a/cli/src/util/versioninfo.ts +++ b/cli/src/util/versioninfo.ts @@ -311,7 +311,9 @@ export async function findLatestCompatibleRuntimeVersion(sdk: globals.SDK, sdkVe compatibleVersions = versions.filter((v) => semver.satisfies(v.slice(1), constraint, { includePrerelease: true })); } if (compatibleVersions.length > 0) { - return compatibleVersions[0]; + // Sort in descending order and return the latest version + compatibleVersions = semver.rsort(compatibleVersions.map((v) => v.slice(1))); + return "v" + compatibleVersions[0]; } } }