Cursor Agent and Daniel Imms
eacf90b2b7
Split common into composite subprojects with project references
...
- common/tsconfig.json is a solution root referencing layer tsconfigs
- Each layer has composite tsconfig with correct references and outDir
- Break buffer/services cycle via buffer-local service interfaces
- Move cell types, keyboard/unicode types, TaskQueue, and TerminalOptions
- Exclude *.test.ts from composite builds; fix parser IDisposable imports
Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com >
2026-05-30 17:32:03 +00:00
Cursor Agent and Daniel Imms
6ff26d2c7e
Move CircularList to base and colocate ICircularList
...
Define ICircularList, IInsertEvent, and IDeleteEvent in common/base/CircularList
instead of common/services/Types. Removes the Types ↔ CircularList cycle and
keeps services from depending on Types for base-layer types.
Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com >
2026-05-30 17:26:10 +00:00
Cursor Agent and Daniel Imms
3f39edb025
Restore source files after removing only build artifacts
...
Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com >
2026-05-30 16:13:32 +00:00
Cursor Agent and Daniel Imms
5f3882efe7
Remove stray emit artifacts from src/common and fix import path
...
Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com >
2026-05-30 16:12:51 +00:00
Cursor Agent and Daniel Imms
1d125ac715
Restructure common into layered folders (issue #5963 )
...
Reorganize src/common into platform (base, encoding, data, buffer,
parser, input), integration (services, terminal), and public API layers.
- Move core utilities to common/base/
- Move TextDecoder to common/encoding/
- Move Types, CircularList, Color, TaskQueue, SortedList to common/services/
- Move CoreTerminal, InputHandler, WindowsMode to common/terminal/
- Define ICharset in common/data/Charsets.ts (re-exported from Types)
- Update imports across src/, addons/, and test/
- Add per-layer tsconfig.json files and REARCHITECTURE.md
- Root common/tsconfig.json remains the composite build entry
Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com >
2026-05-30 16:12:18 +00:00
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
Cursor Agent and Daniel Imms
c7a94fc0bc
Move fixtures to test/fixtures and update references
...
Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com >
2026-05-28 14:01:12 +00: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
Cursor Agent and Daniel Imms
e96133603b
Add Cursor Cloud specific instructions to AGENTS.md
...
Add development environment guidance for cloud agents including:
- Demo server startup notes
- Build-before-test requirements
- Note about no external services needed
- tsgo compiler note
- Lint optimization tip
Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com >
2026-05-28 05:10:34 +00: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
Cursor Agent and Daniel Imms
38174907f3
fix(addon-progress): stabilize WebKit integration test harness
...
Remove unnecessary unawaited setViewportSize from ProgressAddon tests,
which was the line reported in flaky CI failures. Use serial mode and
scoped hooks per Playwright shared-page guidance, and guard afterAll
teardown when setup fails.
Fixes #5956
Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com >
2026-05-28 00:24:06 +00: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
Cursor Agent and Daniel Imms
1d569f873d
Ignore .cursor/*.log files in git
...
Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com >
2026-05-27 23:22:32 +00: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
Cursor Agent and Daniel Imms
7711d780c2
Handle mouseEventsRequireAlt option changes in mouse mode
...
Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com >
2026-05-27 21:59:23 +00:00
dependabot[bot]
e89fbf2979
Bump qs and express
...
Bumps [qs](https://github.com/ljharb/qs ) to 6.15.2 and updates ancestor dependency [express](https://github.com/expressjs/express ). These dependencies need to be updated together.
Updates `qs` from 6.14.2 to 6.15.2
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/ljharb/qs/compare/v6.14.2...v6.15.2 )
Updates `express` from 4.22.1 to 4.22.2
- [Release notes](https://github.com/expressjs/express/releases )
- [Changelog](https://github.com/expressjs/express/blob/v4.22.2/History.md )
- [Commits](https://github.com/expressjs/express/compare/v4.22.1...v4.22.2 )
---
updated-dependencies:
- dependency-name: express
dependency-version: 4.22.2
dependency-type: direct:development
- dependency-name: qs
dependency-version: 6.15.2
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-05-27 21:53:01 +00: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
Cursor Agent and Daniel Imms
fdcd1c2720
Align xterm-headless marker JSDoc with xterm.d.ts
...
Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com >
2026-05-27 21:46:20 +00:00
Cursor Agent and Daniel Imms
f8cef535c7
Rename altClickForMouseEvents to mouseEventsRequireAlt
...
Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com >
2026-05-27 21:41:44 +00:00
Cursor Agent and Daniel Imms
57b48f6048
Allow markers on alt buffer in headless terminal
...
Remove the alt-buffer guard in headless registerMarker so behavior
matches the browser terminal. Update headless public API and typings
to return IMarker instead of IMarker | undefined.
Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com >
2026-05-27 21:28:36 +00:00
Cursor Agent and Daniel Imms
5ad56446b8
Explicitly enable selection when altClickForMouseEvents is on at attach
...
Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com >
2026-05-27 21:20:17 +00: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
Cursor Agent and Daniel Imms
fbb2a9710f
Add altClickForMouseEvents option for issue #5952
...
When enabled during mouse events mode, click/drag/move events require the alt
key while wheel events are unaffected. Selection stays enabled by default
and takes precedence over macOptionClickForcesSelection.
Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com >
2026-05-27 20:13:31 +00: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
Cursor Agent and Daniel Imms
edb4f89dd8
Add WriteBuffer regression tests for dispose and hot paths
...
Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com >
2026-05-27 20:00:06 +00:00
Cursor Agent and Daniel Imms
224c113b64
Move linkId declaration above use site in print loop
...
Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com >
2026-05-27 19:36:45 +00:00
Cursor Agent and Daniel Imms
3e0c7d18e5
Register WriteBuffer cleanup via toDisposable in constructor
...
Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com >
2026-05-27 19:35:58 +00: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
Cursor Agent and Daniel Imms
7499a2181d
Use DisposableStore.isDisposed instead of duplicate flag
...
Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com >
2026-05-27 19:34:08 +00: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
Cursor Agent and Daniel Imms
e59a6c1f7b
Reuse shared StringBuilder in BufferLine.translateToString
...
Avoid per-call allocation when translating many lines in sequence by
resetting a module-level work StringBuilder before and after each use.
Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com >
2026-05-27 19:31:00 +00: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
Cursor Agent and Daniel Imms
c6e4627b45
Hoist _getCurrentLinkId() in print() loop
...
Avoid calling _getCurrentLinkId() twice per codepoint when a hyperlink
is active by reading the link id once before the print loop.
Fixes #5940
Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com >
2026-05-27 18:18:24 +00:00
Cursor Agent and Daniel Imms
d91045dc5f
Cancel WriteBuffer innerWrite timers on dispose
...
Guard _innerWrite and public write methods after disposal so pending
setTimeout continuations cannot run against a disposed terminal.
Fixes #5936
Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com >
2026-05-27 18:18:22 +00:00
Cursor Agent and Daniel Imms
41dfdba2cf
Avoid spread when merging decoration line buckets
...
Replace existing.push(...bucket) with an indexed loop in
_mergeLineBucket to avoid intermediate array allocations during
buffer trim/insert/delete re-indexing.
Reuse _mergeLineBucket in _handleBufferLinesTrim for consistency.
Fixes #5941
Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com >
2026-05-27 18:18:13 +00:00