Skip to content

Windows: Background subprocesses (git, gh, docker) spawn visible conhost.exe windows that steal focus from fullscreen apps #11224

Description

@Eth4ck1e

Summary

On Windows, Warp's periodic background subprocesses (git status polling, PR link checks via gh, Docker stats) spawn visible conhost.exe console windows that briefly flash on screen and steal focus from fullscreen applications every few minutes.

Problem

Warp periodically spawns powershell.exe, git.exe, gh.exe, and docker.exe as child processes for features like PR link badges, git branch detection, and Docker container stats. On Windows, these console-based subprocesses each create a conhost.exe window. Because the processes appear to be launched without the CREATE_NO_WINDOW or DETACHED_PROCESS creation flags, the console windows are briefly visible and steal focus from whatever application is in the foreground.

This is especially disruptive for users running fullscreen applications (games, presentations, video calls), as the flashing windows pull them out of fullscreen every few minutes.

On macOS and Linux, forked processes do not create visible windows by default, so this issue is Windows-specific.

Expected behavior

All background subprocesses spawned by Warp for internal features (git polling, PR status, Docker stats, etc.) should be invisible to the user — launched with CREATE_NO_WINDOW or equivalent flags so no console window appears and no focus is stolen.

Actual behavior

Every few minutes, one or two console windows flash on screen for a split second. When the user is in a fullscreen application, this causes the application to lose focus and minimize/alt-tab. A WMI process creation watcher captured the following recurring processes all spawning in bursts with associated conhost.exe windows:

  • powershell.exe -NoProfile -c "..." — Warp spawns many instances (one per open tab in a git repo) running a script that calls git rev-parse, git symbolic-ref, git remote get-url origin, and gh pr view --json url --jq .url to check PR status.
  • docker.exe stats --all --no-trunc --no-stream --format "{{ json .}}" — Multiple instances spawned for Docker container stats polling.
  • git.exe — Branch detection and worktree checks.
  • gh.exe pr view --json url --jq .url — GitHub CLI PR status checks.
  • conhost.exe — One instance per console subprocess above, each creating a visible window.

A single burst captured ~15+ powershell.exe instances, ~15+ docker.exe instances, and corresponding conhost.exe windows, all within the same second.

Reproduction steps

  1. Open Warp on Windows with multiple tabs, each in a different git repository backed by GitHub.
  2. Have Docker Desktop running.
  3. Switch to a fullscreen application (e.g., a game or fullscreen browser window).
  4. Wait a few minutes.
  5. Observe console windows flashing on screen and the fullscreen application losing focus.

Artifacts

None attached.

Warp version

v0.2026.05.06.15.42.stable_05

Operating system

Windows 11 (NT 10.0.26200.0)

Possible source references

  • The subprocess creation path on Windows likely needs CREATE_NO_WINDOW (0x08000000) passed to CreateProcess for all background/internal child processes (git, gh, powershell, docker CLI invocations).
  • The PR link polling logic that spawns powershell.exe -NoProfile -c "..." scripts containing gh pr view runs per-tab and scales with the number of open tabs.

Metadata

Metadata

Assignees

Labels

area:shell-terminalTerminal input/output, shell integration, prompt behavior, and block rendering.area:window-tabs-panesWindow, tab, pane, and workspace layout management.bugSomething isn't working.os:windowsWindows-specific behavior, regressions, or requests.ready-to-implementThe issue is ready for implementation work.repro:mediumThe report suggests a plausible repro path, but some uncertainty remains.triagedIssue has received an initial automated triage pass.

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions