diff --git a/docs/docs/releasenotes.mdx b/docs/docs/releasenotes.mdx
index eb51b43aa1..789017efa3 100644
--- a/docs/docs/releasenotes.mdx
+++ b/docs/docs/releasenotes.mdx
@@ -6,7 +6,7 @@ sidebar_position: 200
# Release Notes
-### v0.12.3 — Nov 14, 2025
+### v0.12.3 — Nov 17, 2025
Patch release with Wave AI model upgrade, new secret management features, and improved terminal input handling.
diff --git a/frontend/app/onboarding/onboarding-common.tsx b/frontend/app/onboarding/onboarding-common.tsx
index d0c71a1836..ec77a1457b 100644
--- a/frontend/app/onboarding/onboarding-common.tsx
+++ b/frontend/app/onboarding/onboarding-common.tsx
@@ -1,4 +1,4 @@
// Copyright 2025, Command Line Inc.
// SPDX-License-Identifier: Apache-2.0
-export const CurrentOnboardingVersion = "v0.12.2";
+export const CurrentOnboardingVersion = "v0.12.3";
diff --git a/frontend/app/onboarding/onboarding-upgrade-patch.tsx b/frontend/app/onboarding/onboarding-upgrade-patch.tsx
index 8bfd0e0fc1..fb6df91244 100644
--- a/frontend/app/onboarding/onboarding-upgrade-patch.tsx
+++ b/frontend/app/onboarding/onboarding-upgrade-patch.tsx
@@ -16,6 +16,7 @@ import { useEffect, useRef, useState } from "react";
import { debounce } from "throttle-debounce";
import { UpgradeOnboardingModal_v0_12_1_Content } from "./onboarding-upgrade-v0121";
import { UpgradeOnboardingModal_v0_12_2_Content } from "./onboarding-upgrade-v0122";
+import { UpgradeOnboardingModal_v0_12_3_Content } from "./onboarding-upgrade-v0123";
interface VersionConfig {
version: string;
@@ -34,6 +35,12 @@ const versions: VersionConfig[] = [
version: "v0.12.2",
content: () => ,
prevText: "Prev (v0.12.1)",
+ nextText: "Next (v0.12.3)",
+ },
+ {
+ version: "v0.12.3",
+ content: () => ,
+ prevText: "Prev (v0.12.2)",
},
];
diff --git a/frontend/app/onboarding/onboarding-upgrade-v0123.tsx b/frontend/app/onboarding/onboarding-upgrade-v0123.tsx
new file mode 100644
index 0000000000..6999fccef4
--- /dev/null
+++ b/frontend/app/onboarding/onboarding-upgrade-v0123.tsx
@@ -0,0 +1,84 @@
+// Copyright 2025, Command Line Inc.
+// SPDX-License-Identifier: Apache-2.0
+
+const UpgradeOnboardingModal_v0_12_3_Content = () => {
+ return (
+
+
+
+ Wave AI model upgrade to GPT-5.1, new secret management features, and improved terminal input
+ handling for interactive CLI tools.
+
+
+
+
+
+
+
+
+
Wave AI Updates
+
+
+ -
+ GPT-5.1 Model - Upgraded to OpenAI's GPT-5.1 model for improved
+ responses
+
+ -
+ Thinking Mode Toggle - New dropdown to select between Quick, Balanced,
+ and Deep thinking modes
+
+ - Fixed path mismatch issue when restoring AI write file backups
+
+
+
+
+
+
+
+
+
+
+
Terminal Improvements
+
+
+ -
+ Enhanced Input Handling - Better support for CLI tools like Claude Code
+
+ -
+ Image Paste Support - Paste images directly into terminal (saved to
+ temp files)
+
+ - Shift+Enter now inserts newlines by default for multi-line commands
+ - Fixed duplicate text issue when switching input methods (IME)
+
+
+
+
+
+
+
+
+
+
+
Secret Store
+
+
+ -
+ Secret Management Widget - Store and manage sensitive credentials
+ securely
+
+ -
+ Access secrets via CLI with wsh secret list/get/set{" "}
+ commands
+
+
+
+
+
+
+ );
+};
+
+UpgradeOnboardingModal_v0_12_3_Content.displayName = "UpgradeOnboardingModal_v0_12_3_Content";
+
+export { UpgradeOnboardingModal_v0_12_3_Content };
diff --git a/frontend/app/onboarding/onboarding-upgrade.tsx b/frontend/app/onboarding/onboarding-upgrade.tsx
index e8b45ecd3b..c5b86c64b1 100644
--- a/frontend/app/onboarding/onboarding-upgrade.tsx
+++ b/frontend/app/onboarding/onboarding-upgrade.tsx
@@ -6,6 +6,7 @@ import { modalsModel } from "@/app/store/modalmodel";
import { useAtomValue } from "jotai";
import { useEffect, useRef } from "react";
import * as semver from "semver";
+import { CurrentOnboardingVersion } from "./onboarding-common";
import { UpgradeOnboardingModal_v0_12_0 } from "./onboarding-upgrade-v0120";
import { UpgradeOnboardingPatch } from "./onboarding-upgrade-patch";
@@ -20,12 +21,12 @@ const UpgradeOnboardingModal = () => {
const lastVersion = initialVersionRef.current;
useEffect(() => {
- if (semver.gte(lastVersion, "v0.12.2")) {
+ if (semver.gte(lastVersion, CurrentOnboardingVersion)) {
globalStore.set(modalsModel.upgradeOnboardingOpen, false);
}
}, [lastVersion]);
- if (semver.gte(lastVersion, "v0.12.2")) {
+ if (semver.gte(lastVersion, CurrentOnboardingVersion)) {
return null;
}
diff --git a/package-lock.json b/package-lock.json
index 6a62724f7c..dfc132373a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "waveterm",
- "version": "0.12.3-beta.1",
+ "version": "0.12.3-beta.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "waveterm",
- "version": "0.12.3-beta.1",
+ "version": "0.12.3-beta.2",
"hasInstallScript": true,
"license": "Apache-2.0",
"workspaces": [