Commit Graph
1702 Commits
Author SHA1 Message Date
Jörg Breitbart 9c8de633e9 multiple changes in APC handling:
- change interface to IFunctionIdentifier (API change)
- extend parser states APC_ENTRY, APC_INTERMEDIATE, APC_PASSTHROUGH
- remove APC_STRING
- change ApcParser.start to retrieve ident
- change actions APC_START and APC_PUT
2026-04-24 13:53:31 +02:00
Sridhar Ratnakumar 7a6e724bfe Fix dispose leaks: register CursorBlinkStateManager + _pausedResizeTask
Three related disposable-registration gaps that leak xterm Terminal
instances when the host application unmounts a Terminal. Evidence +
full writeup at juspay/kolu#606.

1. addon-webgl/WebglRenderer._cursorBlinkStateManager was declared
   `= new MutableDisposable()` without the `this._register(...)`
   wrapper that every sibling MutableDisposable in the class uses.
   CursorBlinkStateManager runs a setInterval for the cursor blink
   and its `dispose()` correctly clears it — but dispose() was never
   called because the disposable wasn't registered. The live timer
   kept the renderer (and thus the Terminal) alive past host
   unmount.

2. common/TaskQueue.DebouncedIdleTask had no `dispose()` method.
   Added one that clears the internal IdleTaskQueue (cancelling any
   pending idle callback).

3. browser/services/RenderService._pausedResizeTask (a
   DebouncedIdleTask) was not registered. Wrapped with
   `this._register(...)` so RenderService.dispose propagates.

Verified in a downstream app (kolu) with a repro that toggles Focus
vs Canvas layout modes:

- Pre-fix: 24/28 disposed xterm Terminals retained past host unmount
  + forced GC.
- Post-fix: 0/28 retained.

Retention chain (before fix):

    DOMTimer → ScheduledAction → V8Function
      → CursorBlinkStateManager._renderCallback → WebglRenderer
      → Terminal
2026-04-17 13:32:01 -04:00
Tyler VorpahlandClaude Opus 4.6 9f6c7d7ced fix(addon-fit): remove redundant same-dimension guard in fit()
Terminal.resize() already no-ops internally when dimensions haven't
changed. The addon's guard prevented resize() from being called at all,
forcing callers using ResizeObserver-based layouts to use perturbation
workarounds (resize to rows-1, then fit) that race with the observer.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 19:35:56 -04:00
dependabot[bot] 63035678ec Bump yauzl from 2.10.0 to 3.2.1
Bumps [yauzl](https://github.com/thejoshwolfe/yauzl) from 2.10.0 to 3.2.1.
- [Commits](https://github.com/thejoshwolfe/yauzl/compare/2.10.0...3.2.1)

---
updated-dependencies:
- dependency-name: yauzl
  dependency-version: 3.2.1
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-13 20:11:05 +00:00
Anthony Kim 0cea95d3b3 Make code more readable 2026-03-08 20:33:01 -07:00
Anthony Kim 163868ff60 Remove redundant bitmask in RGB->RGBA conversion 2026-03-07 23:32:02 -08:00
Anthony Kim d6c872bb2c add onImageAdded to api 2026-03-03 12:19:14 -08:00
Anthony Kim 2158827b25 remove non-null assertion, improve lifecycle for bitmap 2026-02-19 15:51:22 -08:00
Anthony Kim 5c28e27062 Implment kitty graphics placement action 2026-02-19 15:00:33 -08:00
Anthony Kim 30c97a225c Handle more edge cases 2026-02-18 14:41:58 -08:00
Anthony Kim 1186d09e05 add kitty graphics source crop (x/y/w/h) and sub-cell offset (X/Y) 2026-02-18 14:36:02 -08:00
Anthony Kim 579a0a530f Fix image addon overriding screen element z-index 2026-02-17 14:47:43 -08:00
Anthony Kim 24e2eb9d7b Use uint32 bit-shifting for rgb->rgba interleaving 2026-02-15 22:15:43 -08:00
Anthony Kim d5ae437dda fix more mem leak + cleanups 2026-02-15 20:00:16 -08:00
Anthony Kim 5efff43e93 Convert JSDoc to line comments 2026-02-15 19:21:27 -08:00
Anthony Kim ee85a1da9e Copyright is to 2026 2026-02-15 19:15:58 -08:00
Anthony Kim 21f51564d1 Fix image layer stacking + tile survival across text write 2026-02-14 20:55:55 -08:00
Anthony Kim 27b01b22ef Extract KittyImageStorage, prevent mem leak on eviction 2026-02-14 15:17:29 -08:00
Anthony Kim 387ec93a90 Merge remote-tracking branch 'upstream/master' into anthonykim1/scaffoldKittyAddon 2026-02-14 13:29:25 -08:00
Daniel Imms 4388a4ac13 Merge pull request #5695 from xtermjs/anthonykim1/realSeparateImageStoragePerMech
Separate image storage per mechanism (sixel, iip)
2026-02-13 12:42:11 -08:00
Daniel Imms eccbc60aa0 Migrate to tsgo
Fixes #5689
2026-02-13 06:59:24 -08:00
Anthony Kim 6b64660934 fix chunked transfer without repeated i = key 2026-02-12 20:04:21 -08:00
Anthony Kim 10182cc656 Reject unsupporteed transmission medium for a=t and a=T 2026-02-12 18:03:19 -08:00
Anthony Kim 3c7f313c34 Dont send false query 2026-02-12 16:00:48 -08:00
Anthony Kim 457542b7b3 Support deletion 2026-02-12 14:53:37 -08:00
Anthony Kim 36118d9d4c Merge upstream/master - resolve IIPHandler.ts const enum conflict 2026-02-12 13:47:48 -08:00
Anthony Kim cf8a4e466d Merge origin/master into anthonykim1/scaffoldKittyAddon 2026-02-12 13:44:21 -08:00
Anthony Kim 4de03aaa38 Try to reduce duplication from 1d0cf32 2026-02-12 11:03:46 -08:00
Anthony Kim 677e5275f9 Store z-index for drawing order 2026-02-12 10:27:32 -08:00
Anthony Kim 1d0cf32b28 support z-index + dual canvas for DOM. Doesnt work for webgl 2026-02-11 14:19:27 -08:00
Anthony Kim c01e4b7be7 Separate image storage per mechanism (sixel, iip) 2026-02-11 10:56:30 -08:00
Anthony Kim 2c4997f529 Add test for 200x100 pixel 2026-02-11 10:27:12 -08:00
Anthony Kim d9b5d150ae Put the const integer into local const enum, save indirection time at runtime 2026-02-10 16:31:17 -08:00
Anthony Kim a25db1c76d Update wasm to 0.3.0 changes in IIPHandler.ts 2026-02-10 14:35:34 -08:00
Anthony Kim eb0f5383c3 question.. 2026-02-09 16:43:55 -08:00
Anthony Kim a4502a6d00 Impelement cursor movement after image placement 2026-02-09 14:30:35 -08:00
Anthony Kim c11a8f43f4 abort in-flight kitty chunks on delete 2026-02-09 13:34:27 -08:00
Anthony Kim d7ba56cd28 default format png -> rgba perspec 2026-02-09 13:19:41 -08:00
Anthony Kim be44833f12 send OK response for a=t, a=T transmissions when image id present 2026-02-09 13:04:34 -08:00
Anthony Kim fcb3cc1a21 add delelteImage, map kitty ID to storage IDs 2026-02-09 11:31:20 -08:00
Anthony Kim 376268157c add f=24 rgb, f=32 rgba format tests 2026-02-09 09:35:00 -08:00
Anthony Kim 5ceb02b9c6 Release decoder after command ahandler consumes bytes 2026-02-08 00:16:01 -08:00
Anthony Kim d320898231 offload raw image data to Blob for off-heap storage 2026-02-07 23:30:06 -08:00
Anthony Kim cf3939af4a Remove redundant _decodedImages bitmap cache 2026-02-07 23:11:19 -08:00
Daniel Imms e14746e6e9 Merge pull request #5682 from Tyriar/3440
Add attributesEqual and underline diff APIs
2026-02-07 06:37:19 -08:00
Daniel Imms e0c59e68b2 Make 0x1FB98 and 0x1FB99 perfectly tile
Fixes #5681
2026-02-07 06:12:47 -08:00
Daniel Imms cc8e680790 Add attributesEqual and underline diff APIs
Fixes #3440
2026-02-06 16:21:25 -08:00
Daniel Imms 452ee50c81 Merge pull request #5669 from Tyriar/custom_glyph_alignment
Use offset variants for some custom glyphs
2026-02-06 12:58:20 -08:00
Anthony Kim 596ab845d0 Make copy of bytes with Uint8Array since they can be reused by decoder 2026-02-05 22:04:04 -08:00
Anthony Kim a59d527d1a Mirror const enum since esbuild cant inline const enum 2026-02-05 21:38:33 -08:00