test(xterm): upstream master baseline (post-#5817, pre-#5821)#653
Draft
test(xterm): upstream master baseline (post-#5817, pre-#5821)#653
Conversation
Drops the juspay fork override for @xterm/xterm + @xterm/addon-webgl and pins plain npm betas that were auto-published minutes after xtermjs/xterm.js#5817 (our dispose-leaks fix) landed: @xterm/xterm: 6.1.0-beta.199 (published 2026-04-21 19:58Z) @xterm/addon-webgl: 0.20.0-beta.198 (published 2026-04-21 19:59Z) Verified in node_modules: - _pausedResizeTask=this._register(...) present → #5817 merged - plain 'let r=new e.IntersectionObserver(s=>this._handleIntersectionChange(...))' with strong this-capture, no WeakRef → #5821 NOT applied This is the 'Unpatched' column from the local A/B — the xterm state that ships if #5821 stays open. Purpose: prod baseline against which #617's WeakRef fix (and the observer-nullify variant on #652) can be A/B'd via Chrome Task Manager on pureintent. Not for merge. If prod shows the #617-shape +367 MB/30 toggles regression, we have direct evidence that #5821 is load-bearing in the wild (and should not wait for 6.1.0 stable). Refs xtermjs/xterm.js#5817, xtermjs/xterm.js#5821, #617
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
Third prod arm in the #5821 A/B. This branch pins xterm.js + addon-webgl to the exact npm beta that was auto-published from upstream master seconds after our dispose-leaks PR (xtermjs/xterm.js#5817) merged — i.e. xterm master with #5817 landed, but without the open #5821
WeakReffix.This corresponds exactly to the "Unpatched" column in the local A/B. If the memory regression is real in production Chrome, this branch is where it reappears.
Pinned versions
Fact-check — commit traceability
All three SHAs match — the two npm betas are both built from the
0911688merge commit of #5817. This is the same snapshot asxterm.js@masterat the moment of writing (no commits after #5817 have landed).Runtime verification of
node_modules/@xterm/xterm/lib/xterm.mjs:_pausedResizeTask = this._register(new Qi(...))— present → #5817 applied ✓new WeakRef(this)in_registerIntersectionObserver— absent → #5821 not applied ✓thisIntersectionObserver callback — matches the pre-#5821 upstream codeThe three-arm A/B on pureintent
Run the same 30× canvas-maximize toggle test across all three branches and compare Chrome Task Manager
Memory FootprintΔ:test/xterm-upstream-master)test/observer-nullify-variant)observer = undefinedmaster(shipped)WeakRefThe full recipe — 7 terminals, DevTools console 30-cycle one-liner, fallback via
Ctrl+Enter/Ctrl+D— is in the #652 description.Interpreting the three outcomes
Rollback
Not for merge. Close after data collected. The real decision lands as a change on #5821 (keep WeakRef, collapse to observer-nullify, or close).
Refs xtermjs/xterm.js#5817, xtermjs/xterm.js#5821, #617, #652