Skip to content

Commit 00a1d26

Browse files
committed
Merge remote-tracking branch 'origin/main' into sawka/preview-updates
2 parents 13bed12 + 1a1cd85 commit 00a1d26

56 files changed

Lines changed: 2370 additions & 328 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/FUNDING.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
github: wavetermdev

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,14 @@ Find more information in our [Contributions Guide](CONTRIBUTING.md), which inclu
104104
- [Ways to contribute](CONTRIBUTING.md#contributing-to-wave-terminal)
105105
- [Contribution guidelines](CONTRIBUTING.md#before-you-start)
106106

107+
### Sponsoring Wave ❤️
108+
109+
If Wave Terminal is useful to you or your company, consider sponsoring development.
110+
111+
Sponsorship helps support the time spent building and maintaining the project.
112+
113+
- https://github.com/sponsors/wavetermdev
114+
107115
## License
108116

109117
Wave Terminal is licensed under the Apache-2.0 License. For more information on our dependencies, see [here](./ACKNOWLEDGEMENTS.md).

cmd/server/main-server.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,8 @@ func startupActivityUpdate(firstLaunch bool) {
343343
ClientArch: wavebase.ClientArch(),
344344
ClientOSRelease: wavebase.UnameKernelRelease(),
345345
ClientIsDev: wavebase.IsDevMode(),
346+
ClientPackageType: wavebase.ClientPackageType(),
347+
ClientMacOSVersion: wavebase.ClientMacOSVersion(),
346348
AutoUpdateChannel: autoUpdateChannel,
347349
AutoUpdateEnabled: autoUpdateEnabled,
348350
LocalShellType: shellType,

docs/docs/config.mdx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ wsh editconfig
7373
| term:cursorblink <VersionBadge version="v0.14" /> | bool | when enabled, terminal cursor blinks (default false) |
7474
| term:bellsound <VersionBadge version="v0.14" /> | bool | when enabled, plays the system beep sound when the terminal bell (BEL character) is received (default false) |
7575
| term:bellindicator <VersionBadge version="v0.14" /> | bool | when enabled, shows a visual indicator in the tab when the terminal bell is received (default false) |
76+
| term:osc52 <VersionBadge version="v0.14" /> | string | controls OSC 52 clipboard behavior: `always` (default, allows OSC 52 at any time) or `focus` (requires focused window and focused block) |
7677
| term:durable <VersionBadge version="v0.14" /> | bool | makes remote terminal sessions durable across network disconnects (defaults to false) |
7778
| editor:minimapenabled | bool | set to false to disable editor minimap |
7879
| editor:stickyscrollenabled | bool | enables monaco editor's stickyScroll feature (pinning headers of current context, e.g. class names, method names, etc.), defaults to false |
@@ -147,6 +148,7 @@ For reference, this is the current default configuration (v0.14.0):
147148
"telemetry:enabled": true,
148149
"term:bellsound": false,
149150
"term:bellindicator": false,
151+
"term:osc52": "always",
150152
"term:cursor": "block",
151153
"term:cursorblink": false,
152154
"term:copyonselect": true,

docs/docs/releasenotes.mdx

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,34 @@ sidebar_position: 200
66

77
# Release Notes
88

9+
### v0.14.1 &mdash; Mar 3, 2026
10+
11+
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.
12+
13+
**Terminal Improvements:**
14+
15+
- **Claude Code Scroll Fix** - Fixed a long-standing bug that caused terminal windows to jump to the top unexpectedly, affecting many Claude Code users
16+
- **IME Fix** - Fixed Korean/CJK input where characters were lost or stuck in composition and only committed on Space
17+
- **Scroll Position Preserved on Resize** - Terminal now stays scrolled to the bottom across resizes when it was already at the bottom
18+
- **Better Link Handling** - Terminal URLs now have improved context menus and tooltips for easier navigation
19+
- **Terminal Scrollback Save** - New context menu item and `wsh` command to save terminal scrollback to a file
20+
21+
**New Features:**
22+
23+
- **Focus Follows Cursor** - New `app:focusfollowscursor` setting (off/on/term) for hover-based block focus
24+
- **Terminal Cursor Style & Blink** - New settings for cursor style (block/bar/underline) and blink, configurable per-block
25+
- **Tab Close Confirmation** - New `tab:confirmclose` setting to prompt before closing a tab
26+
- **Workspace-Scoped Widgets** - New optional `workspaces` field in `widgets.json` to show/hide widgets per-workspace
27+
- **Vim-Style Block Navigation** - Added Ctrl+Shift+H/J/K/L to navigate between blocks
28+
- **New AI Providers** - Added Groq and NanoGPT as built-in AI provider presets
29+
30+
**Other Changes:**
31+
32+
- Fixed intermittant bugs with connection switching in terminal blocks
33+
- Widgets.json schema improvements for better editor validation
34+
- Package updates and dependency upgrades
35+
- Internal code cleanup and refactoring
36+
937
### v0.14.0 &mdash; Feb 10, 2026
1038

1139
**Durable SSH Sessions and Enhanced Connection Monitoring**

emain/emain-ipc.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import {
1717
incrementTermCommandsRemote,
1818
incrementTermCommandsRun,
1919
incrementTermCommandsWsl,
20+
setWasActive,
2021
} from "./emain-activity";
2122
import { createBuilderWindow, getAllBuilderWindows, getBuilderWindowByWebContentsId } from "./emain-builder";
2223
import { callWithOriginalXdgCurrentDesktopAsync, unamePlatform } from "./emain-platform";
@@ -317,6 +318,10 @@ export function initIpcHandlers() {
317318
tabView?.setKeyboardChordMode(true);
318319
});
319320

321+
electron.ipcMain.handle("set-is-active", () => {
322+
setWasActive(true);
323+
});
324+
320325
const fac = new FastAverageColor();
321326
electron.ipcMain.on("update-window-controls-overlay", async (event, rect: Dimensions) => {
322327
if (unamePlatform === "darwin") return;

emain/preload.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ contextBridge.exposeInMainWorld("api", {
7171
setBuilderWindowAppId: (appId: string) => ipcRenderer.send("set-builder-window-appid", appId),
7272
doRefresh: () => ipcRenderer.send("do-refresh"),
7373
saveTextFile: (fileName: string, content: string) => ipcRenderer.invoke("save-text-file", fileName, content),
74+
setIsActive: () => ipcRenderer.invoke("set-is-active"),
7475
});
7576

7677
// Custom event for "new-window"

frontend/app/aipanel/aipanel.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ const AIPanelComponentInner = memo(() => {
306306
};
307307

308308
useEffect(() => {
309-
globalStore.set(model.isAIStreaming, status == "streaming");
309+
globalStore.set(model.isAIStreaming, status === "streaming" || status === "submitted");
310310
}, [status]);
311311

312312
useEffect(() => {

frontend/app/app.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -200,12 +200,16 @@ function AppFocusHandler() {
200200
const AppKeyHandlers = () => {
201201
useEffect(() => {
202202
const staticKeyDownHandler = keyutil.keydownWrapper(appHandleKeyDown);
203+
const staticMouseDownHandler = (e: MouseEvent) => {
204+
keyboardMouseDownHandler(e);
205+
GlobalModel.getInstance().setIsActive();
206+
};
203207
document.addEventListener("keydown", staticKeyDownHandler);
204-
document.addEventListener("mousedown", keyboardMouseDownHandler);
208+
document.addEventListener("mousedown", staticMouseDownHandler);
205209

206210
return () => {
207211
document.removeEventListener("keydown", staticKeyDownHandler);
208-
document.removeEventListener("mousedown", keyboardMouseDownHandler);
212+
document.removeEventListener("mousedown", staticMouseDownHandler);
209213
};
210214
}, []);
211215
return null;
Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
11
// Copyright 2026, Command Line Inc.
22
// SPDX-License-Identifier: Apache-2.0
33

4-
export const CurrentOnboardingVersion = "v0.14.0";
4+
export const CurrentOnboardingVersion = "v0.14.1";
5+
6+
export function OnboardingGradientBg() {
7+
return (
8+
<div className="absolute inset-0 bg-gradient-to-br from-accent/[0.25] via-transparent to-accent/[0.05] pointer-events-none rounded-[10px]" />
9+
);
10+
}

0 commit comments

Comments
 (0)