fix: finalize stuck terminal drags released outside the iframe#157
Merged
Conversation
The dogfood script chained commands with `;`, but pnpm runs scripts through cmd.exe on Windows, where `;` is not a command separator. As a result `pnpm package` never ran, no .vsix was built, and the install failed with ENOENT. The `>/dev/null` redirect also errored under cmd. Convert the script to a cross-platform Node script (matching the repo's scripts/*.mjs convention) that uninstalls the legacy extension, packages, installs, cleans up the .vsix, and prints the reload reminder. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The `code` CLI emits internal Node deprecation warnings (e.g. DEP0169 for url.parse) during install. Set NODE_NO_WARNINGS for the code invocations so dogfood output stays focused. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…de the iframe A mouse drag is kept alive only by the window 'mouseup'. When the button is released outside our iframe, that mouseup goes to the host document and never reaches us, leaving the drag stuck. Treat the next zero-button mousemove (e.g. when the pointer re-enters) as the mouseup we missed and finalize the drag in place. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ze at once Layer pointer capture on top of the window-mousemove heal. On a left-button mouse press over terminal-owned content, setPointerCapture so Chromium keeps delivering the captured pointerup across the iframe boundary even when the button is released over the host page. We then finalize the drag the instant it ends rather than waiting for the cursor to re-enter. The pointerup finalize is deferred one macrotask: for an inside release the compatibility mouseup follows in the same task and finalizes through the existing path (preserving the xterm-report / temporary-override timing), cancelling the deferred finalize. Only an outside release, which produces no such mouseup, falls through to it. Engines that don't honor cross-frame capture get no captured pointerup and still rely on the heal. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Deploying mouseterm with
|
| Latest commit: |
39923a0
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://80022968.mouseterm.pages.dev |
| Branch Preview URL: | https://dnd-hiccup.mouseterm.pages.dev |
dormouse-bot
approved these changes
Jun 19, 2026
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.
Summary
Fixes terminal drag selections that get stuck when the mouse button is released outside the iframe, plus a couple of Windows dogfood fixes.
pnpm dogfood:vscodework on Windows.Test plan
terminal-mouse-router.test.tscover the outside-iframe release finalization.pnpm dogfood:vscodeverified on Windows.🤖 Generated with Claude Code