Skip to content

feat: support WSL agent sessions on Windows #149

@dum3r

Description

@dum3r

Problem

On Windows, CodeDash can miss Linux-side agent history and running sessions that live inside WSL.

Typical setup:

  • Windows host runs the dashboard
  • real agent history is split between Windows home and \\wsl$\\<distro>\\home\\<user>
  • active Claude/Codex processes may also be running inside the WSL distro

In that setup, the Windows dashboard currently treats WSL-side history/runtime as a blind spot.

Actual behavior

  • sessions under WSL-side .claude / .codex are not ingested as first-class history on Windows
  • running WSL agent processes are not surfaced as first-class Running entries on Windows
  • if runtime association is weak, a process can end up attached to an unrelated latest session instead of being shown honestly as unresolved

Expected behavior

When CodeDash runs on Windows, it should be able to:

  • discover WSL homes that actually contain .claude / .codex
  • ingest those sessions into the normal session list / stats
  • surface active WSL agent processes in Running
  • prefer cmdline -> cwd-match -> explicit unresolved runtime instead of assigning an unrelated latest session
  • disable Focus for runtimes where Windows cannot reliably focus the terminal

Proposed direction

  • list WSL distros via wsl.exe
  • resolve per-distro home and map it to \\wsl$\\...
  • normalize path forms across \\?\\, Windows, /mnt/c/..., Linux, and \\wsl$\\...
  • on Windows, scan only running distros for live WSL processes
  • if a WSL runtime cannot be matched to a real session, show it as an explicit synthetic runtime entry instead of using fallback-latest

Local validation

I have a narrow branch based on v6.15.10 that implements this on Windows and validates:

  • WSL home/session ingestion
  • WSL live runtime detection
  • disabled Focus for WSL runtime cards
  • focused node --test coverage for WSL parsing / matching helpers

I am opening a PR from that branch next.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions