Repository navigation
fix(wmux-client-terminal): subscribe to paste only from the active terminal - #35
Merged
Merged
Conversation
…rminal renderer.keyInput is a single emitter shared by every terminal, so each tab mounted its own paste listener and a session with more than ten tabs tripped Node's MaxListenersExceededWarning. The handler already returned early unless the terminal was active, so gating the subscription on the same condition keeps behaviour identical and holds the listener count at one.
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.
Every
WmuxTerminalsubscribes torenderer.keyInput, which is a single emitter shared across terminals. One tab means one listener, so a session past ten tabs trips Node'sMaxListenersExceededWarning.Downstream this is currently papered over rather than fixed — Spring's dev server raises
EventEmitter.defaultMaxListenersglobally, scaled to its configured tab count, purely to keep this warning quiet.The handler already returned early unless
isActiveTerminal, so every listener but one was doing nothing. Gating the subscription on the same condition the handler already checked keeps behaviour identical and holds the listener count at one regardless of tab count. The effect already listsisActiveTerminalin its deps, so the subscription follows the active tab.No behaviour change: an inactive terminal ignored paste events before and receives none now.
🤖 Generated with Claude Code
https://claude.ai/code/session_01Ua2j6QihTZryZw41UjS1aU