Features
- #5453 Add synchronized output support (DEC mode 2026)
- #5436 add range to IHTMLSerializeOptions
- #5334 Support shadow dom in webgl renderer
- #5285 Support detailed ligatures and variants
- #5251 progress-addon
- #5234 Add reflowCursorLine option
- #5224 putty-style ED2 sequence handling as terminal option
- #5107 Add top/bottom border overview ruler options
- ⚠️ This is a breaking change,
ITerminalOptions.overviewRulerWidthis now a property ofITerminalOptions.overviewRuler
- ⚠️ This is a breaking change,
- #5096 Integrate base/ platform from VS Code and adopt scroll bar
- ⚠️ This is a potential breaking change, the viewport/scroll bar works very differently now
- #5092 Add support for ESM via esbuild
- #5034 Expose onWriteParsed on API
- #4220 Add support to ANSI OSC52
Fixes
- #5445 Prefer performance.now() over Date.now()
- #5437 Prevent entire page from scrolling when scrolling in alt buffer with mouse event off
- #5423 Clear selection on vertical resize
- #5411 Fix teleport when exiting out of alt buffer. v2
- #5391 Bring back partial wheel tracking
- #5390 Fix scrollbar teleport after exiting alt buffer
- #5386 fix: ensure that currentRow can not go out of the range
- #5385 Fix terminal find when wrapped
- #5355 Add note about reverse tabnapping
- #5346 Remove alt -> ctrl+arrow hack in favor of embedder-specific solutions
- ⚠️ This is a breaking change, you will need to add keybindings in your code if you want alt to map to ctrl still
- #5337 Fix finding terms across wrapped lines
- #5335 webgl: Ignore alpha channel when allowTransparency is false
- #5328 Refresh viewport after clear or ED
- #5305 Fix issue where listeners remain after WebglRenderer throws
- #5291 Make ProgressAddon.onChange non undefined
- #5282 Fixed CapsLock triggering input twice in MacOS.
- #5279 Fixes: #5270 regex case-sensitive should behave like monaco
- #5278 Handle glyph widths up to the maximum device texture size
- #5277 Disable ligatures when cursor is in range
- #5276 Fix selection rendering on ligatures in both renderers
- #5265 Revert to cursor options after DECSCUSR 0
- #5263 Make textarea readonly when disableStdin is set
- #5262 Blend cursorAccent with background too
- #5260 Blend cursor with background to support alpha in webgl
- #5253 bug: properly render the terminal when open() is called again
- #5249 Fix click event bug caused by DomRenderer replaceChildren behavior
- #5209 Ensure last ligature cell is updated
- #5208 Set liga font feature when ligatures is enabled
- #5182 fix #5181
- #5171 Fix links sometimes not activating
- #5139 Fix image addon not being able to render some jpeg images in IIP
- #5127 Fix scroll dimensions when switching buffers
- #5122 Use main document to create viewport element
- #5102 Ensure decorations are refreshed when origin of scroll event is buffe…
- #5099 Remove overflow to allow decorations outside terminal
- #5088 Sync DOM decoration styles when line height/width changes
- #5067 Correct addon-clipboard ctor types
- #5027 Finish OSC hyperlinks when the second param is only whitespace
- #5024 Fix duplicate input for some IMEs
- #5020 Escape Unsafe HTML Characters in addon-serialize
- #5003 Support semi-colons in OSC 8 hyperlink URIs
- #4984 Clear timer when dispose
Performance
- #5403 Add SearchLineCache for improved search performance
- #5066 Speed up clearing all markers, mass event listener dispose
- #5038 Speed up insertion and deletion of values in SortedList by batching and deferring to idle task
- #5037 Prevent smooth scroll from running more than once per frame
- #4936 fix: memory leak in CoreBrowserService
- #4933 Check after updating the SelectionRenderModel
- #4879 Align character position in a11y tree with the actual rendering
Internal/minor changes
- #5462 Remove deprecated windowsMode and fastScrollModifier
- ⚠️ This is a breaking change, these deprecated properties of
ITerminalOptionshave been removed
- ⚠️ This is a breaking change, these deprecated properties of
- #5461 Remove need for glob module
- #5460 Git ignore test-results/
- #5452 Fix tsc build - upgrade glob version
- #5450 Fix wrong export path for ESM target in [addon-unicode-graphemes]
- #5449 Configure "exports" field in package.json [headless]
- #5446 Migrate from yarn to npm, node 18 -> 22, use npm workspaces
- #5442 Fix headless module path
- #5425 Only show char codes for parsing data on trace
- #5422 Explain filtering unit tests by file
- #5421 Use Windows PowerShell instead of pwsh 7 in demo
- #5420 Only log character codes for trace log
- #5413 Adding EmuDevz to the "Real-world uses" list
- #5407 Improve Copilot instructions and add test guidelines
- #5406 Refactor search addon into multiple files, add unit tests
- #5405 Refactor search addon interfaces
- #5404 Replace timeout handling with disposableTimeout
- #5402 Update GitHub Copilot instructions with test details
- #5401 Refactor search addon types and internal handling
- #5399 Refactor search constants and improve documentation
- #5398 Add proper typing for search results change event
- #5379 Bump form-data from 4.0.0 to 4.0.4 in /addons/addon-ligatures
- #5362 Move copilot steps to correct folder
- #5359 Add copilot setup steps
- #5358 Revert conpty-specific reflow handling
- #5349 Add comprehensive tests for alt+shift+letter keyboard combinations
- #5345 Add instructions to help Copilot coding agent
- #5329 Update and pin esbuild
- #5322 Bump axios from 1.7.4 to 1.8.2 in /addons/addon-ligatures
- #5321 Reflow on resize using similar logic to conpty
- #5317 docs: added usage tip for registerMarker()
- #5313 Revert "Merge pull request #5253 from akphi/patch-1"
- #5308 Update AccessibilityManager.ts to use textContent rather than innerText
- #5290 Progress polish
- #5286 Move WebGL addon-specific code into addon
- #5281 Pin Ubuntu 22 to fix playwright GH Actions issue for now
- #5280 Remove courier fonts from defaults
- #5275 Demo test button for common ligatures
- #5252 Fix ReferenceError in publish.js
- #5247 Update README.md - add ecmaOS as Use Case
- #5219 Add new site to Real-world uses
- #5218 Bump cross-spawn from 7.0.3 to 7.0.6
- #5212 chore(addons/fit): fix typo
- #5203 Don't hide build folders
- #5202 Only resolve ligatures externals in commonjs environment
- #5199 Store the DI decorator's id in specific property (#5131).
- #5196 Add pyTermTk HTML5 Exporter project to "Real-world uses"
- #5180 Forward integration test exit code to running proc
- #5166 Bump express from 4.19.2 to 4.20.0
- #5165 Bump axios from 1.6.0 to 1.7.4 in /addons/addon-ligatures
- #5157 Bump path-to-regexp from 1.7.0 to 1.9.0 in /addons/addon-ligatures
- #5151 Fix 'npm run package' in addon-unicode-graphemes
- #5148 Bump micromatch from 4.0.5 to 4.0.8
- #5143 Publish commit and set peerDependencies to @xterm/xterm beta when publishing
- #5141 Bump webpack from 5.88.2 to 5.94.0
- #5140 Add Filet Cloud to Real-world uses
- #5136 Fix description for WebglAddon class in @xterm/addon-webgl
- #5130 Remove xterm- prefix from addon mjs output
- #5124 Update node-pty, use conpty.dll
- #5106 Move to vs/base disposables
- #5105 Remove the canvas renderer
- ⚠️ This is a breaking change, this addon no longer exists and we recommend using either the DOM renderer or WebGL
- #5104 Remove EventEmitter in favor of vs/base/common/event's Emitter
- #5103 remove _workCell in InputHandler.
- #5095 Remove procfile
- #5094 Add build flow images and move logo into new images folder
- #5093 Align npm and test script names
- #5091 Ignore EPIPE exception on Windows when reloading demo client
- #5090 Suppress unrecognized option warning in demo
- #5089 Remove src dts files and correct exports
- #5086 Bump ws from 7.5.9 to 8.17.1
- #5085 Run other integration tests in CI
- #5083 typescript@5.5
- #5082 Fix .eslintrc.json warnings, move deprecated to stylistic/ts
- #5081 Simplify GH action names and remove test/api project
- #5080 Migrate remaining API tests to playwright and remove API test infrastructure
- #5079 Migrate more API tests to playwright
- #5078 Get tests working on node that requires shell arg
- #5071 Bump ws from 8.13.0 to 8.17.1
- #5070 Bump braces from 3.0.2 to 3.0.3
- #5059 Add
balenato real world uses - #5056 Add app OpenSFTP to README.md
- #5054 Add powerline git, LN, lock symbols
- #5052 Update README.md
- #5049 Add eva pro to README.md
- #5018 Bump express from 4.18.2 to 4.19.2
- #5010 Bump follow-redirects from 1.15.3 to 1.15.6 in /addons/addon-ligatures
- #4989 adding Wave Terminal to the README
- #4963 Polish convertEol api jsdoc
- #4940 Update global object fix
- #4865 Update devcontainer