Wave v0.14.4 introduces vertical tabs, upgrades to xterm.js v6, and includes a collection of bug fixes and internal improvements.
Vertical Tab Bar:
- New Vertical Tab Bar Option - Tabs can now be displayed vertically along the side of the window, giving you more horizontal space and easier access to tabs when you have many open. Toggle between horizontal and vertical tab layouts in settings.
Terminal Improvements:
- xterm.js v6.0.0 Upgrade - Upgraded to the latest xterm.js v6, bringing improved terminal compatibility and rendering. This should resolve various terminal rendering quirks observed with tools like Claude Code.
Other Changes:
backgrounds.json- Renamedpresets/bg.jsontobackgrounds.jsonand moved background config to newtab:backgroundkey (auto-migrated on startup)- Config Errors Moved - Config errors removed from the tab bar and moved to Settings / WaveConfig view for less clutter
- Warn on Unsaved Changes - WaveConfig view now warns before discarding unsaved changes
- Stream Performance - Migrated file streaming to new modern interface with flow control, fixing a large time-to-first-byte streaming bug
- macOS First Click - Improved first-click handling on macOS (cancel the click but properly set block/WaveAI focus)
- Deprecated legacy AI widget has been removed
- [bugfix] Fixed focus bug for newly created blocks
- [bugfix] Fixed an issue around starting a new durable session by splitting an old one
- Electron upgraded to v41
- Package updates and dependency upgrades
PRs
- getting vtabbar into shape, share mock between the tab bars by @sawka in #3047
- Bump tar from 7.5.10 to 7.5.11 by @dependabot[bot] in #3037
- Bump electron from 40.4.1 to 41.0.2 by @dependabot[bot] in #3055
- Bump golang.org/x/term from 0.40.0 to 0.41.0 by @dependabot[bot] in #3052
- fix electron v41 regression (webContents is null in destroyed hander) by @sawka in #3057
- Bump golang.org/x/crypto from 0.48.0 to 0.49.0 by @dependabot[bot] in #3051
- New Vertical Tab Bar Option by @sawka in #3059
- Add preview-safe web widget preview by @Copilot in #3062
- Remove Config Errors from TabBar, move to Settings / WaveConfig by @sawka in #3060
- Add standalone preview for the
aifilediffblock view by @Copilot in #3063 - Begin PreviewEnv narrowing for the preview widget by @Copilot in #3065
- fix previewenv to use services.object instead of services.ObjectService by @sawka in #3067
- Add WebViewEnv and wire web preview to the mock WaveEnv contract by @Copilot in #3064
- Bump google.golang.org/api from 0.269.0 to 0.271.0 by @dependabot[bot] in #3050
- Add preview mock support for secrets RPCs by @Copilot in #3071
- fix pdfs in preview by @sawka in #3076
- Create WaveEnv narrowing for WaveConfig View by @Copilot in #3068
- fallback to canvas renderer if webgl is not available, debug toggle for testing by @sawka in #3081
- big simplifications to the preview mocks for rendering blocks by @sawka in #3082
- switch /wave/stream-file to use new modern streams (w/ flow control) and fix big ttfb streaming bug by @sawka in #3084
- Bump google.golang.org/grpc from 1.79.2 to 1.79.3 by @dependabot[bot] in #3083
- Bump github.com/mattn/go-sqlite3 from 1.14.34 to 1.14.37 by @dependabot[bot] in #3094
- Bump golang.org/x/mod from 0.33.0 to 0.34.0 by @dependabot[bot] in #3091
- Bump flatted from 3.3.3 to 3.4.2 by @dependabot[bot] in #3089
- Bump nick-fields/retry from 3 to 4 in /.github/workflows by @dependabot[bot] in #3093
- Bump actions/create-github-app-token from 2 to 3 in /.github/workflows by @dependabot[bot] in #3092
- Bump github.com/buger/jsonparser from 1.1.1 to 1.1.2 by @dependabot[bot] in #3088
- update emain-window to do repositioning in a simpler way by @sawka in #3087
- Fix bug with WaveAI panel growing in size when vtabs were open by @sawka in #3097
- special first click handling for macos. cancel the click but set block/waveai focus by @sawka in #3098
- Diffing RenderedElem trees to produce VDomPatch by @Copilot in #3104
- upgrade xterm.js to v6.0.0 by @sawka in #3095
- Change presets/bg.json => backgrounds.json, migrate, change tab background to tab:background key by @sawka in #3108
- minor, fix double sub in webview giveFocus by @sawka in #3110
- fix: retry giveFocus on next animation frame for newly created blocks by @majiayu000 in #3100
- migrate old file streaming to new modern interface (w/ flow control) by @sawka in #3096
- fix: warn before discarding unsaved changes in waveconfig view by @majiayu000 in #3099
- increase buffer size for stream to lines to accomodate oversize packets by @sawka in #3112
- fix for terrible background color for default "ls" output on pwsh by @sawka in #3119
- fix: use fspath.Base to strip Windows paths on SSH remote drag-drop by @majiayu000 in #3118
- Bump picomatch from 2.3.1 to 2.3.2 by @dependabot[bot] in #3123
- Deprecate the legacy
waveaiblock UI and add a preview for its replacement state by @Copilot in #3122 - fix: set XDG_CONFIG_DIRS and XDG_DATA_DIRS defaults in tryGetPamEnvVars by @majiayu000 in #3121
- v0.14.4 release notes / onboarding by @sawka in #3120
- Show Claude icon in terminal header while Claude Code is active by @Copilot in #3046
- Bump yaml from 2.8.1 to 2.8.3 by @dependabot[bot] in #3124
- fix #3011 (missing blockfile) when splitting durable sessions by @sawka in #3125
- add line to release notes about durable session fix by @sawka in #3126
- Upgrade GitHub Actions to latest versions by @salmanmkc in #2842
New Contributors
- @majiayu000 made their first contribution in #3100
- @salmanmkc made their first contribution in #2842
Full Changelog: v0.14.3...v0.14.4