-
Notifications
You must be signed in to change notification settings - Fork 3.9k
Claude Code mailbox stays empty on WSL because plugin falls back to legacy OSC 777 notifications #10147
Copy link
Copy link
Open
Labels
area:agentAgent workflows, conversations, prompts, cloud mode, and AI-specific UI.Agent workflows, conversations, prompts, cloud mode, and AI-specific UI.area:shell-terminalTerminal input/output, shell integration, prompt behavior, and block rendering.Terminal input/output, shell integration, prompt behavior, and block rendering.bugSomething isn't working.Something isn't working.in-app-feedbackFeedback items sourced from in-app feedback flows.Feedback items sourced from in-app feedback flows.os:windowsWindows-specific behavior, regressions, or requests.Windows-specific behavior, regressions, or requests.repro:highThe report includes enough evidence that the issue appears highly reproducible.The report includes enough evidence that the issue appears highly reproducible.triagedIssue has received an initial automated triage pass.Issue has received an initial automated triage pass.warp:prioritizedIssues prioritized by the Warp team.Issues prioritized by the Warp team.
Metadata
Metadata
Assignees
Labels
area:agentAgent workflows, conversations, prompts, cloud mode, and AI-specific UI.Agent workflows, conversations, prompts, cloud mode, and AI-specific UI.area:shell-terminalTerminal input/output, shell integration, prompt behavior, and block rendering.Terminal input/output, shell integration, prompt behavior, and block rendering.bugSomething isn't working.Something isn't working.in-app-feedbackFeedback items sourced from in-app feedback flows.Feedback items sourced from in-app feedback flows.os:windowsWindows-specific behavior, regressions, or requests.Windows-specific behavior, regressions, or requests.repro:highThe report includes enough evidence that the issue appears highly reproducible.The report includes enough evidence that the issue appears highly reproducible.triagedIssue has received an initial automated triage pass.Issue has received an initial automated triage pass.warp:prioritizedIssues prioritized by the Warp team.Issues prioritized by the Warp team.
Summary
On WSL, the Claude Code plugin emits the legacy OSC 777 notification format instead of the structured
warp://cli-agentformat, so per-task entries never appear in Warp's notification mailbox in the top-right. Toasts and OS-level (Windows Action Center) notifications still render, which makes this look like a partial / silent failure.Problem
A Reddit user (
Aoshi_) reports that on WSL, "Claude has completed a task" toasts show up and Windows Action Center receives notifications, but the mailbox dropdown in the top-right of Warp is always empty after Claude finishes a task. Reinstalling the plugin and updating both Warp and the plugin did not help. The same flow works on macOS/Linux/native-Windows, where mailbox entries appear as expected.Original report: https://old.reddit.com/r/warpdotdev/comments/1snko27/
Expected behavior
After Claude Code completes a task in a WSL pane, an entry should appear in Warp's notification mailbox (top-right) describing the completed task, just like on macOS, native Linux, and native Windows. Clicking the entry should navigate to the originating terminal.
Actual behavior
Reproduction steps or desired workflow
warpdotdev/claude-code-warp).Artifacts
None attached.
Warp version
Unknown (reporter said they "updated Warp and the plugin today" at the time of the Reddit thread, ~late April 2026, but did not specify a build).
Operating system
Warp on Windows host, with Claude Code running inside WSL (distro/version unspecified by reporter).
Possible source references
app/src/terminal/local_tty/windows/environment.rs(lines 103-120 setWARP_CLIENT_VERSIONand, whenHOANotificationsis enabled,WARP_CLI_AGENT_PROTOCOL_VERSIONon the Windows-side env block; lines 155-180 buildWSLENVfor the WSL starter, which forwards onlyWARP_HONOR_PS1,WARP_USE_SSH_WRAPPER,WARP_SHELL_DEBUG_MODE,TERM_PROGRAM,WARP_IS_LOCAL_SHELL_SESSION,SSH_SOCKET_DIR, and optionallyWARP_INITIAL_WORKING_DIR). NeitherWARP_CLIENT_VERSIONnorWARP_CLI_AGENT_PROTOCOL_VERSIONis added toWSLENV, so they don't cross the Windows → WSL boundary and don't reach the Linux shell where the Claude plugin runs.claude-code-warpplugin:plugins/warp/scripts/should-use-structured.sh(theshould_use_structuredfunction returns 1 when eitherWARP_CLI_AGENT_PROTOCOL_VERSIONorWARP_CLIENT_VERSIONis empty, causingplugins/warp/scripts/on-stop.sh:9-12to fall through toplugins/warp/scripts/legacy/on-stop.sh).plugins/warp/scripts/legacy/on-stop.sh:48— legacy fallback emits OSC 777 with titleClaude Codeinstead ofwarp://cli-agent.app/src/terminal/cli_agent_sessions/event/mod.rs:71-74—parse_eventearly-returnsNonefor any title that isn't thewarp://cli-agentsentinel, so legacy-titled OSC 777 notifications are never lifted intoCLIAgentEvents and never reachCLIAgentSessionsModel/AgentNotificationsModel(which back the mailbox UI inapp/src/ai/agent_management/notifications/view.rs).app/src/terminal/local_tty/unix.rs:276-288, 320-325) sets both env vars directly on the child process, which is why mailbox entries work there.WSLENVbuilder inwindows/environment.rsto also forwardWARP_CLIENT_VERSIONand (gated onHOANotifications)WARP_CLI_AGENT_PROTOCOL_VERSION.