Desktop WSL sessions get no `ccd_session` host MCP: `mark_chapter` is unavailable, so chapter dividers and the floating table of contents never appear

Status Open
Reported on v2.1.260
Maintainer reply None cached
Activity 1 comment · opened Sep 4, 2026

Environment

  • Claude Desktop for Windows 1.46388.2.0 (MSIX / Store install)
  • Session environment: WSL 2 → Ubuntu-24.04 (kernel 6.18.33.2)
  • In-WSL agent binary: ~/.claude/remote/ccd-cli/2.1.260

Summary

When a Desktop session runs in a WSL environment, chapter dividers and the floating
table of contents never appear, no matter how long the conversation gets. The agent
has no way to mark a chapter, because the ccd_session host MCP server that owns
mark_chapter is not attached to WSL sessions.

The same account, on the same machine, in a Local session gets ccd_session and
the chapter UI works normally. The difference is the session environment.

This is the same root cause as #82918 (WSL sessions get no host MCP servers), with a
different user-visible consequence. The evidence below names the full set of servers
that go missing, so it may be useful there too.

Evidence

Collected from %LOCALAPPDATA%\Claude\logs\main.log, two sessions on the same
machine, account and day.

  1. A WSL environment is served over the remote-session path, the same machinery used

for SSH remotes:

``
[SSH] Using remote spawn function for session local_<id> on wsl:Ubuntu-24.04 (cli: /home/<user>/.claude/remote/ccd-cli/2.1.260)
``

  1. Local session (cwd C:\...) — 15 servers attached, including the host ones:

``
[CCD] [replaceRemoteMcpServers] Calling SDK with 15 total servers {
serverNames: [
'Atlassian Rovo', 'Gmail',
'Google Calendar', 'Google Drive',
'Slack', 'visualize',
'claude-in-chrome', 'mcp-registry',
'visualize', 'Claude Browser',
'ccd_session', 'ccd_directory',
'ccd_session_mgmt', 'terminal',
'scheduled-tasks', [length]: 15
]
}
``

  1. WSL session (cwd /home/<user>/...) — 6 servers, only the account connectors.

Every host/internal server is gone, ccd_session included:

``
[CCD] [replaceRemoteMcpServers] Calling SDK with 6 total servers {
serverNames: [
'Atlassian Rovo',
'Gmail',
'Google Calendar',
'Google Drive',
'Slack',
'visualize',
[length]: 6
]
}
``

  1. The WSL session's own start timing confirms nothing was attached at spawn:

``
[CCD start-timing] local_<id> preflight=166ms worktree=0ms mcp=1ms query=3ms enqueue=4ms init=1234ms
... mcp_count=0 online=true ... mcp_config=stdio:0/sdk:0/http:0 plugin_dirs=0 registry_plugins=0
init_mcp=connected:0/pending:0/failed:0/needs_auth:0/disabled:0/other:0 init_plugins=0
``

  1. mark_chapter lives in ccd_session. Its own description states that calling it is

what produces the UI: *"The user sees a divider in the transcript and a floating table
of contents for jumping between chapters."* With the server absent the tool never
resolves, so no chapter can ever be marked and the table of contents never renders.

  1. Confirming this from the agent side: in a WSL session no mcp__ccd_session__* tool is

present in the toolset. In a Local session they are.

  1. Possibly useful for triage (inferred from the shipped bundle, so treat as a hint rather

than a finding): some internal server definitions carry an explicit !e.isSSH exclusion
in their isEnabled predicate, but ccd_session's predicate is e.sessionType === "ccd"
with no SSH exclusion. That suggests the omission happens in the remote-spawn attach path
rather than in deliberate per-server gating.

Expected

A Desktop session running in a WSL environment should attach the same host MCP servers a
Local session gets — at minimum ccd_session, so the agent can mark chapters and long WSL
sessions stay navigable.

Steps to reproduce

  1. On Windows Desktop with a WSL distro installed, start a new session and pick a folder on

the WSL filesystem (e.g. /home/<user>/<repo>).

  1. Run a long session with several distinct phases (exploration, implementation, verification).
  2. No chapter divider and no floating table of contents ever appears.
  3. Open a Local session on the same machine and account against a Windows-side folder and do

the same. Chapters and the table of contents work there.

Impact

Keeping a repository on the Linux filesystem is the recommended layout for WSL performance, so
this hits exactly the sessions most likely to run long. Those sessions have no navigation
affordance at all, and there is no setting to turn it on.

Related

  • #82918 — same root cause, reported through the scheduled-tasks host MCP.
  • #57628 — closed, distinct: chapter UI missing on Windows Local sessions in 2.1.87.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗