Daniel Imms
43e8365f0e
Merge pull request #5960 from xtermjs/cursor/move-fixtures-1191
...
Move fixtures to test/fixtures
2026-05-28 07:06:21 -07:00
Daniel Imms
4bb9c06b5f
Merge pull request #5953 from xtermjs/cursor/alt-click-for-mouse-events-5b17
...
Add altClickForMouseEvents option
2026-05-28 06:35:56 -07:00
Daniel Imms
00e54532b3
Merge pull request #5959 from xtermjs/cursor/setup-dev-environment-dc0c
...
Add Cursor Cloud specific instructions to AGENTS.md
2026-05-27 22:13:27 -07:00
Daniel Imms
b2003861ec
Merge pull request #5859 from xtermjs/iip_enhancements
...
IIP enhancements
2026-05-27 20:36:13 -07:00
Daniel Imms
38f77fd4ca
Merge branch 'master' into iip_enhancements
2026-05-27 20:16:36 -07:00
Daniel Imms
d3352cf1d5
Merge pull request #5873 from xtermjs/package_upgrades
...
package upgrades & linter fixes
2026-05-27 20:16:08 -07:00
Daniel Imms
0c4ec34df8
Remove unnecessary @types/lru-cache
2026-05-27 20:11:20 -07:00
Daniel Imms
743852b60c
Remove unneeded comment
2026-05-27 19:58:52 -07:00
Daniel Imms
2069176528
Fix lint
2026-05-27 19:58:21 -07:00
Daniel Imms
acd2472961
Merge remote-tracking branch 'upstream/master' into package_upgrades
2026-05-27 19:23:43 -07:00
Daniel Imms
c2ecfe7446
Merge pull request #5895 from xtermjs/dependabot/npm_and_yarn/multi-f792d6d6d9
...
Bump qs and express
2026-05-27 18:26:29 -07:00
Daniel Imms
5656443163
Merge pull request #5957 from xtermjs/cursor/fix-progress-webkit-flake-5577
...
fix(addon-progress): stabilize flaky WebKit integration test harness
2026-05-27 17:32:25 -07:00
Daniel Imms and Cursor
1b95efa8c8
Add explicit void return type to alt cursor event listener.
...
Fixes explicit-function-return-type lint in AltMouseCursorController.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-27 16:54:23 -07:00
Daniel Imms
91fcb46a1a
Merge pull request #5955 from xtermjs/cursor/gitignore-cursor-logs-5a86
...
Ignore .cursor/*.log files in git
2026-05-27 16:25:02 -07:00
Daniel Imms and Cursor
ce1f5f9608
Add MouseEventCssClasses const enum for enable-mouse-events class.
...
Centralize the CSS class name in MouseService.ts and use it across mouse mode handling and tests.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-27 16:23:17 -07:00
Daniel Imms and Cursor
bf8af4a871
Toggle enable-mouse-events cursor while alt is held for mouseEventsRequireAlt.
...
Extract AltMouseCursorController to bind DOM listeners only when the option and mouse protocol are active.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-27 16:20:45 -07:00
Daniel Imms and Cursor
f8e9a81d0e
Fix mouseEventsRequireAlt by stripping alt from PTY mouse reports.
...
Alt is only used locally to gate passthrough; applications like tmux ignore alt-modified SGR sequences.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-27 16:11:35 -07:00
Daniel Imms
db244ea5a8
Merge pull request #5954 from xtermjs/cursor/align-headless-marker-alt-buffer-2866
...
Allow markers on alt buffer in headless terminal
2026-05-27 14:51:35 -07:00
Daniel Imms
ec0c93fd5a
Merge pull request #5950 from xtermjs/cursor/writebuffer-dispose-timeout-124c
...
Cancel WriteBuffer innerWrite timers on dispose
2026-05-27 14:14:41 -07:00
Daniel Imms
be339bf796
Merge pull request #5947 from xtermjs/cursor/decoration-bucket-merge-loop-7132
...
Avoid spread when merging decoration line buckets
2026-05-27 13:15:37 -07:00
Daniel Imms
7294124736
Merge pull request #5945 from xtermjs/cursor/bufferline-stringbuilder-5939-79f8
...
Use StringBuilder in BufferLine.translateToString
2026-05-27 13:11:02 -07:00
Daniel Imms
2c3fad39af
Merge pull request #5948 from xtermjs/cursor/hoist-get-current-link-id-e29d
...
Hoist _getCurrentLinkId() in print() loop
2026-05-27 13:09:09 -07:00
Daniel Imms
95d9224b8c
Merge pull request #5946 from xtermjs/cursor/fix-duplicate-buildnumber-guard-cbb8
...
Fix duplicate buildNumber guard in Windows ConPTY logic
2026-05-27 12:34:08 -07:00
Daniel Imms
7dc820f5fa
Merge pull request #5949 from xtermjs/cursor/rename-headless-register-marker-22c3
...
Rename headless core addMarker → registerMarker
2026-05-27 12:33:02 -07:00
Daniel Imms
f3e2c08a5d
Merge pull request #5944 from xtermjs/cursor/buffer-reflow-single-loop-sum-705e
...
perf: use single loop for cellsNeeded sum in BufferReflow
2026-05-27 12:28:08 -07:00
Daniel Imms
b138bf38d0
Merge pull request #5943 from xtermjs/cursor/remove-duplicate-defineproperty-57b2
...
Remove duplicate Object.defineProperty loop in headless Terminal
2026-05-27 12:26:36 -07:00
Daniel Imms
2ab0f10a26
Merge pull request #5929 from xtermjs/cursor/atlas-cache-texture-size-7cad
...
fix(webgl): include texture size and cell dimensions in atlas cache equality
2026-05-27 10:31:32 -07:00
Daniel Imms
280dc0a36a
Merge pull request #5927 from xtermjs/cursor/webgl-vao-dispose-ef2f
...
fix(addon-webgl): delete VAOs on renderer dispose
2026-05-27 09:34:46 -07:00
Daniel Imms
ebe8cb749a
Merge pull request #5928 from xtermjs/cursor/fix-dcs-osc-apc-payload-o-n-f60b
...
Fix O(n²) payload accumulation in DCS/OSC/APC handlers
2026-05-27 09:32:42 -07:00
Daniel Imms
c28f3c8d73
Merge pull request #5922 from xtermjs/cursor/remove-stale-sgr-fixme-e362
...
Remove stale FIXME comments from charAttributes JSDoc
2026-05-27 09:28:29 -07:00
Daniel Imms
3bd7ac083a
Merge pull request #5923 from xtermjs/cursor/texture-atlas-remove-emitter-leak-75ac
...
Fix TextureAtlas remove-emitter leak on dispose
2026-05-27 09:27:51 -07:00
Daniel Imms
80e832e417
Merge pull request #5930 from xtermjs/cursor/webgl-ilogservice-5921-3745
...
fix(addon-webgl): use ILogService instead of console for logging
2026-05-27 09:21:12 -07:00
Daniel Imms
470947abd8
Merge pull request #5931 from xtermjs/cursor/headless-clear-markers-ccc0
...
fix(headless): clear markers when clear() is called
2026-05-27 09:18:17 -07:00
Daniel Imms
bb49a80ace
Merge branch 'master' into cursor/headless-clear-markers-ccc0
2026-05-27 09:13:38 -07:00
Daniel Imms
65b87e0f40
Merge pull request #5933 from xtermjs/cursor/replace-clone-with-structuredclone-34fc
...
Replace custom clone utility with structuredClone
2026-05-27 09:12:41 -07:00
Daniel Imms
39fc0f259e
Merge pull request #5932 from xtermjs/cursor/webgl-context-loss-timeout-dispose-3f04
...
Clear WebGL context-loss timeout on WebglRenderer dispose
2026-05-27 09:10:07 -07:00
Daniel Imms
b787ac8b1b
Merge pull request #5924 from xtermjs/cursor/selection-trim-listener-leak-135c
...
Fix SelectionService trim listener leak
2026-05-27 09:10:04 -07:00
Daniel Imms
457efbf55d
Merge pull request #5925 from xtermjs/cursor/fix-onwillopen-error-logging-7e14
...
Log onWillOpen handler errors instead of swallowing them
2026-05-27 09:00:33 -07:00
Daniel Imms
42270a0b68
Merge pull request #5926 from xtermjs/cursor/fix-flushsync-onwriteparsed-7a21
...
Fix flushSync() to fire onWriteParsed
2026-05-27 09:00:13 -07:00
Daniel Imms
1064e4f783
Merge pull request #5812 from JeffreyCA/osc8-hover-fix
...
Underline entire wrapped OSC 8 links on hover
2026-05-27 08:34:50 -07:00
c62e6dd765
Register BufferNamespaceApi onBufferActivate listener with disposables ( #5906 )
...
Wrap the onBufferActivate subscription in this._register so it is
disposed when BufferNamespaceApi is disposed, matching the pattern used
elsewhere in the codebase.
Co-authored-by: Cursor Agent <cursoragent@cursor.com >
Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com >
2026-05-27 04:39:27 +00:00
Daniel Imms
29a07f1d8f
Merge pull request #5905 from xtermjs/cursor/multiline-comment-style-5899-d349
...
Add multiline-comment-style lint rule
2026-05-26 21:05:48 -07:00
Daniel Imms
1a67b6f4b3
Merge pull request #5903 from xtermjs/cursor/space-unary-ops-5898-604c
...
Add space-unary-ops lint rule to prevent space after !
2026-05-26 13:01:20 -07:00
Daniel Imms
afaed108e4
Merge pull request #5828 from lawrence3699/fix/addon-ligatures-prepublish-only
...
fix(addon-ligatures): run package build on publish
2026-05-26 12:26:53 -07:00
Daniel Imms
c27d6bb462
Merge branch 'master' into fix/addon-ligatures-prepublish-only
2026-05-26 12:26:23 -07:00
Daniel Imms
9c4f0f96ca
Merge pull request #5831 from juspay/fix/intersection-observer-nullify
...
Clear IntersectionObserver reference on dispose
2026-05-26 12:23:13 -07:00
Daniel Imms
18c370a154
Merge pull request #5813 from CodinGame/fix-wrong-window-regression
...
Use element window instead of global object
2026-05-26 12:18:29 -07:00
Daniel Imms
850f4ad738
Merge pull request #5872 from xtermjs/dependabot/npm_and_yarn/fast-uri-3.1.2
...
Bump fast-uri from 3.1.0 to 3.1.2
2026-05-26 12:15:57 -07:00
Daniel Imms
b665f6259a
Merge pull request #5871 from xtermjs/dependabot/npm_and_yarn/axios-1.15.2
...
Bump axios from 1.15.0 to 1.15.2
2026-05-26 12:15:54 -07:00
Daniel Imms
4e5994d8a2
Merge pull request #5902 from Tyriar/tyriar/cell_opt
...
Optimize forEachDecorationAtCell by maintaining cache against buffer line index
2026-05-26 10:52:17 -07:00
Daniel Imms and Cursor
4a0cb5ae6b
Add MicrotaskTimer and use it for decoration line index sync
...
Introduce MicrotaskTimer as a TimeoutTimer-style helper that schedules a
single runner via queueMicrotask, with set and cancel but no cancelAndSet.
Use it in DecorationLineCache to batch insert/delete line-index updates after
marker line adjustments, replacing ad-hoc queueMicrotask scheduling.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-26 09:52:53 -07:00
Daniel Imms and Cursor
9e72a4b6d3
Refactor decoration line index into DecorationLineCache
...
Extract the per-line lookup index from DecorationService into an exported
DecorationLineCache class in the same module, with DecorationService listed
first for readability.
Optimize buffer insert/delete maintenance to shift map keys in O(unique
indexed lines) instead of full re-indexing every affected decoration. Only
multi-line decorations that span the mutation point get a full re-index.
Add a direct DecorationLineCache unit test in DecorationService.test.ts.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-26 09:47:11 -07:00
Daniel Imms and Cursor
f484584b70
Speed up decoration cell lookup with a per-line index
...
Refs #5176 .
forEachDecorationAtCell and getDecorationsAtCell previously scanned every
registered decoration on each call. With thousands of search highlights this
becomes O(total decorations) per cell and blocks rendering during viewport
refreshes.
Maintain a Map of buffer line -> decorations that cover that line. Multi-line
decorations are indexed on every line in their span, so mixed single-line and
multi-line workloads stay fast without falling back to a full scan.
Keep the index aligned with buffer mutations:
- Register and unregister decorations in the line buckets on add/dispose.
- On trim, shift line keys synchronously (before marker handlers run).
- On insert/delete, re-index affected decorations in a microtask after marker
line updates are applied.
Inject IBufferService so line listeners follow the active buffer. Add unit
tests for trim, dispose-on-trim, insert, and dense single-line plus multi-line
lookup. Add DecorationService.benchmark.ts to measure sparse hits and
viewport-sized grid scans with 20k decorations.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-26 09:30:25 -07:00
Daniel Imms
e749cb6125
Merge pull request #5891 from Tyriar/cross-env
...
Remove cross-env dep
2026-05-21 03:17:50 -07:00
Daniel Imms
8df996f9e7
Merge pull request #5892 from Tyriar/tyriar/deps
...
Remove @types/debug and trusted-types
2026-05-21 03:17:24 -07:00
Daniel Imms
51f6186352
Remove @types/debug and trusted-types
2026-05-21 03:09:41 -07:00
Daniel Imms
ae5c41c518
Merge pull request #5890 from Tyriar/utf8
...
Remove utf8 dep
2026-05-21 03:09:04 -07:00
Daniel Imms
df9fb7e473
Remove cross-env dep
2026-05-21 03:06:53 -07:00
Daniel Imms
f100e93ba5
Remove utf8 dep
2026-05-21 03:04:16 -07:00
Daniel Imms
1d3825d341
Merge pull request #5889 from Tyriar/deepEqual
...
Remove deep-equal/types packages
2026-05-21 03:03:37 -07:00
Daniel Imms
57315e6cc9
Remove deep-equal/types packages
2026-05-21 02:58:43 -07:00
Daniel Imms
2be4fc68e5
Merge pull request #5884 from sotasan/addon-image-kitty-q2-suppresses-ok
...
addon-image: Kitty graphics q=2 should suppress OK responses too
2026-05-21 02:37:53 -07:00
Daniel Imms
66fabfc232
Merge pull request #5878 from PerBothner/demo-size-style
...
demo - indicate screen area size when non-auto
2026-05-21 02:36:24 -07:00
Daniel Imms
3e2a42eb29
Merge pull request #5883 from vsych/fix-webgl-atlas-merge-stale-vertices
...
Fix webgl rendering corruption from atlas page merges
2026-05-21 02:26:03 -07:00
Daniel Imms
6a47d09b4c
Merge pull request #5888 from Tyriar/tyriar/nal-trace
...
Git ignore cursor nal-traces
2026-05-21 02:18:06 -07:00
Daniel Imms
b36001ee7b
Git ignore cursor nal-traces
2026-05-21 02:17:43 -07:00
Daniel Imms
e64f25a0dd
Merge pull request #5880 from ciembor/master
...
Add 4bit to the Real-world uses section.
2026-05-21 02:13:34 -07:00
Daniel Imms
c8c8b3a7fe
Merge pull request #5875 from zeertzjq/kitty
...
Fix keys getting swallowed when enabling only "Report event types"
2026-05-12 04:23:01 -07:00
Daniel Imms
7059a07c09
Merge pull request #5874 from xtermjs/clipboard_base64
...
clipboard addon: various fixes
2026-05-11 06:43:58 -07:00
Daniel Imms
c5c6fc2a64
Merge pull request #5791 from zeertzjq/kitty
...
Fix kitty keyboard "Report event types" behavior not matching spec
2026-05-11 06:42:32 -07:00
Daniel Imms
6ba731d73b
Merge pull request #5867 from Tyriar/inst_const_enuym
...
Add disposable/const enum agent instructions, convert a lot of top level consts to const enums
2026-05-02 06:59:12 -07:00
Daniel Imms
2d3909be2c
Fix lint
2026-05-02 06:54:41 -07:00
Daniel Imms
1e189625fa
Merge remote-tracking branch 'upstream/master' into inst_const_enuym
2026-05-02 06:49:10 -07:00
Daniel Imms
80debafa11
Convert a lot of top level consts to const enums
2026-05-02 06:44:25 -07:00
Daniel Imms
1023e40428
Merge pull request #5864 from Tyriar/tyriar/bufferline_cache
...
Cache translateToString calls inside BufferLine
2026-05-02 06:30:49 -07:00
Daniel Imms
5c47e6dd9a
Add instructions around MutableDisposables and const enums
2026-05-02 06:30:18 -07:00
Daniel Imms
4ebb3fffe9
Ignore cache keys in serialize addon
...
Bit hacky, but this is due to the way we're serializing the line in the test
2026-05-02 06:21:42 -07:00
Daniel Imms
093e81b9a7
Fix build, lint
2026-05-02 06:07:41 -07:00
Daniel Imms
e04dd2501f
Avoid thrashing timeouts
2026-05-02 05:58:56 -07:00
Daniel Imms
d911b40a47
Avoid any in test
2026-05-02 05:52:33 -07:00
Daniel Imms
3dbfa7ce3e
Convert cache to Disposable
2026-05-02 05:48:08 -07:00
Daniel Imms
6287c6ddfe
Cache/buffer lifecycle
2026-05-02 05:44:13 -07:00
Daniel Imms
52d4b2719c
Move cache into Buffer owned object, use WeakRefs
...
This allows O(1) clearing of the cache, a single TTL timer and we
can avoid making BufferLine's Disposable
2026-05-02 05:32:43 -07:00
Daniel Imms
7615cd210a
Store a boolean on whether the cache is trimmed
2026-05-02 04:35:18 -07:00
Daniel Imms
4d4b994c35
Support caching of trimRight
2026-05-02 04:35:18 -07:00
Daniel Imms
7fa8b7a069
Merge branch 'master' into tyriar/bufferline_cache
2026-05-02 03:56:22 -07:00
Daniel Imms
a2e51e8d36
Merge pull request #5865 from Tyriar/tyriar/image
...
Fix integration test defaults
2026-05-01 16:22:01 -07:00
Daniel Imms
f89253d24b
Fix integration test defaults
...
Broke due to 2 recent conflicting PRs
2026-05-01 16:17:16 -07:00
Daniel Imms
7aeee95346
Merge remote-tracking branch 'upstream/master' into tyriar/bufferline_cache
2026-05-01 16:10:45 -07:00
Daniel Imms
66fcdb2583
Fix test/startCol handling
2026-05-01 14:11:14 -07:00
Daniel Imms
2a18600d18
Cache translateToString calls inside BufferLine
...
Fixes #5863
2026-05-01 14:06:39 -07:00
Daniel Imms
5ef4f86543
Merge pull request #5846 from xtermjs/qoi_decoder
...
QOI support for IIP
2026-05-01 10:28:25 -07:00
Daniel Imms
874e767b40
Merge pull request #5840 from xtermjs/fix_apc
...
changes in APC handling
2026-05-01 10:22:52 -07:00
Daniel Imms
605a7c6e30
Merge pull request #5844 from xtermjs/adjust_image_addon_defaults
...
adjust image addon defaults
2026-05-01 10:21:58 -07:00
Daniel Imms
802decb046
Merge pull request #5856 from xtermjs/fix_colorbits
...
fix RG colorbits in AttributeData
2026-05-01 10:21:21 -07:00
Daniel Imms
79a95dbfd8
Merge pull request #5857 from nwparker/add-orca-real-world-use
...
Add Orca to real-world uses
2026-05-01 10:20:18 -07:00
Daniel Imms
75ba88c51b
Merge pull request #5862 from Tyriar/05-01-make_agent_instructions_harness_agnostic
...
Make agent instructions harness agnostic
2026-05-01 10:13:01 -07:00
Daniel Imms
f9cea732f2
Make agent instructions harness agnostic
2026-05-01 10:08:04 -07:00
Daniel Imms
3a84bcb7ae
Merge pull request #5766 from SergioChan/fix-image-renderer-desync-5691
...
fix(addon-image): disable desynchronized resize canvas
2026-04-26 16:17:03 -07:00
Daniel Imms
0911688295
Merge pull request #5817 from juspay/fix/dispose-leaks
...
Fix dispose leaks: register CursorBlinkStateManager + _pausedResizeTask
2026-04-21 12:57:24 -07:00