diff --git a/docs/docs/releasenotes.mdx b/docs/docs/releasenotes.mdx index d2671ec3b5..fb71d99d64 100644 --- a/docs/docs/releasenotes.mdx +++ b/docs/docs/releasenotes.mdx @@ -6,6 +6,34 @@ sidebar_position: 200 # Release Notes +### v0.14.1 — Mar 3, 2026 + +Wave v0.14.1 fixes several high-impact terminal bugs (Claude Code scrolling, IME input) and adds new config options: focus-follows-cursor, cursor style customization, workspace-scoped widgets, and vim-style block navigation. + +**Terminal Improvements:** + +- **Claude Code Scroll Fix** - Fixed a long-standing bug that caused terminal windows to jump to the top unexpectedly, affecting many Claude Code users +- **IME Fix** - Fixed Korean/CJK input where characters were lost or stuck in composition and only committed on Space +- **Scroll Position Preserved on Resize** - Terminal now stays scrolled to the bottom across resizes when it was already at the bottom +- **Better Link Handling** - Terminal URLs now have improved context menus and tooltips for easier navigation +- **Terminal Scrollback Save** - New context menu item and `wsh` command to save terminal scrollback to a file + +**New Features:** + +- **Focus Follows Cursor** - New `app:focusfollowscursor` setting (off/on/term) for hover-based block focus +- **Terminal Cursor Style & Blink** - New settings for cursor style (block/bar/underline) and blink, configurable per-block +- **Tab Close Confirmation** - New `tab:confirmclose` setting to prompt before closing a tab +- **Workspace-Scoped Widgets** - New optional `workspaces` field in `widgets.json` to show/hide widgets per-workspace +- **Vim-Style Block Navigation** - Added Ctrl+Shift+H/J/K/L to navigate between blocks +- **New AI Providers** - Added Groq and NanoGPT as built-in AI provider presets + +**Other Changes:** + +- Fixed intermittant bugs with connection switching in terminal blocks +- Widgets.json schema improvements for better editor validation +- Package updates and dependency upgrades +- Internal code cleanup and refactoring + ### v0.14.0 — Feb 10, 2026 **Durable SSH Sessions and Enhanced Connection Monitoring** diff --git a/frontend/app/onboarding/onboarding-common.tsx b/frontend/app/onboarding/onboarding-common.tsx index b91bf81fa8..9a506b2567 100644 --- a/frontend/app/onboarding/onboarding-common.tsx +++ b/frontend/app/onboarding/onboarding-common.tsx @@ -1,4 +1,10 @@ // Copyright 2026, Command Line Inc. // SPDX-License-Identifier: Apache-2.0 -export const CurrentOnboardingVersion = "v0.14.0"; +export const CurrentOnboardingVersion = "v0.14.1"; + +export function OnboardingGradientBg() { + return ( +
+ ); +} diff --git a/frontend/app/onboarding/onboarding-starask.tsx b/frontend/app/onboarding/onboarding-starask.tsx new file mode 100644 index 0000000000..bb7678ab2a --- /dev/null +++ b/frontend/app/onboarding/onboarding-starask.tsx @@ -0,0 +1,122 @@ +// Copyright 2026, Command Line Inc. +// SPDX-License-Identifier: Apache-2.0 + +import Logo from "@/app/asset/logo.svg"; +import { Button } from "@/app/element/button"; +import { ClientModel } from "@/app/store/client-model"; +import * as WOS from "@/app/store/wos"; +import { RpcApi } from "@/app/store/wshclientapi"; +import { TabRpcClient } from "@/app/store/wshrpcutil"; + +type StarAskPageProps = { + onClose: () => void; + page?: string; +}; + +export function StarAskPage({ onClose, page = "upgrade" }: StarAskPageProps) { + const handleStarClick = async () => { + RpcApi.RecordTEventCommand( + TabRpcClient, + { + event: "onboarding:githubstar", + props: { "onboarding:githubstar": "star", "onboarding:page": page }, + }, + { noresponse: true } + ); + const clientId = ClientModel.getInstance().clientId; + await RpcApi.SetMetaCommand(TabRpcClient, { + oref: WOS.makeORef("client", clientId), + meta: { "onboarding:githubstar": true }, + }); + window.open(`https://github.com/wavetermdev/waveterm?ref=${page}`, "_blank"); + onClose(); + }; + + const handleAlreadyStarred = async () => { + RpcApi.RecordTEventCommand( + TabRpcClient, + { + event: "onboarding:githubstar", + props: { "onboarding:githubstar": "already", "onboarding:page": page }, + }, + { noresponse: true } + ); + const clientId = ClientModel.getInstance().clientId; + await RpcApi.SetMetaCommand(TabRpcClient, { + oref: WOS.makeORef("client", clientId), + meta: { "onboarding:githubstar": true }, + }); + onClose(); + }; + + const handleRepoLinkClick = () => { + RpcApi.RecordTEventCommand( + TabRpcClient, + { + event: "action:link", + props: { "action:type": "githubrepo", "onboarding:page": page }, + }, + { noresponse: true } + ); + window.open("https://github.com/wavetermdev/waveterm", "_blank"); + }; + + const handleMaybeLater = async () => { + RpcApi.RecordTEventCommand( + TabRpcClient, + { + event: "onboarding:githubstar", + props: { "onboarding:githubstar": "later", "onboarding:page": page }, + }, + { noresponse: true } + ); + const clientId = ClientModel.getInstance().clientId; + await RpcApi.SetMetaCommand(TabRpcClient, { + oref: WOS.makeORef("client", clientId), + meta: { "onboarding:githubstar": false }, + }); + onClose(); + }; + + return ( ++ Wave AI is your terminal assistant with full context. It can read your terminal output, + analyze widgets, read and write files, and help you solve problems faster. +
++ New in v0.13: Wave AI now + supports local models and bring-your-own-key! Use Ollama, LM Studio, vLLM, OpenRouter, + or any OpenAI-compatible provider. +
++ New in v0.14: Durable SSH + sessions survive network drops, laptop sleep, and restarts — all without tmux or screen. +
+- Wave AI is your terminal assistant with full context. It can read your terminal - output, analyze widgets, read and write files, and help you solve - problems faster. -
-- New in v0.13: Wave AI now - supports local models and bring-your-own-key! Use Ollama, LM Studio, vLLM, - OpenRouter, or any OpenAI-compatible provider. -
-- New in v0.14: Durable SSH - sessions survive network drops, laptop sleep, and restarts — all without tmux or - screen. -
-+ Wave v0.14.1 fixes several high-impact terminal bugs and adds new config options for focus, cursor + style, and block navigation. +
+wsh command to save scrollback to a file
+ app:focusfollowscursor setting
+ (off/on/term)
+