Skip to content

fix(wmux-client-terminal): subscribe to paste only from the active terminal - #35

Merged
shmuelhizmi merged 1 commit into
masterfrom
fix/paste-listener-per-active-terminal
Sep 15, 2026
Merged

shmuelhizmi merged 1 commit into
masterfrom
fix/paste-listener-per-active-terminal

Conversation

@shmuelhizmi

Copy link
Copy Markdown
Collaborator

Every WmuxTerminal subscribes to renderer.keyInput, which is a single emitter shared across terminals. One tab means one listener, so a session past ten tabs trips Node's MaxListenersExceededWarning.

Downstream this is currently papered over rather than fixed — Spring's dev server raises EventEmitter.defaultMaxListeners globally, 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 lists isActiveTerminal in 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

…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.
@shmuelhizmi
shmuelhizmi merged commit 9ce2b19 into master Sep 15, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant