mcpdo: run the daemon test suites on Windows by porting the harness to named pipes

Abierto
#2,922 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
53/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
github-actions, node.js, typescript
Área
ci-cd, testing

Línea de trabajo

Start with clients/mcpdo/src/daemon/paths.ts, clients/mcpdo/__tests__/helpers/platform.ts, and the daemon test suites gated by unixDaemonOnly; trace how they construct endpoints and wait during teardown. Run the tests on the Windows CI job and identify cases that depend on POSIX behavior. Done means the daemon suites run on Windows, only explicitly justified POSIX cases remain skipped, and the Windows coverage carve-out is removed from clients/mcpdo/vitest.config.ts.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

chore v2
Problem

mcpdo's Windows daemon path has never been run by a test. Production code already uses a named pipe on win32 (getDaemonSocketPath in clients/mcpdo/src/daemon/paths.ts returns \\.\pipe\mcp-conn-<hash>, and clients/mcpdo/src/daemon/client.ts handles the pipe path when locating the token file). But the daemon test harness was written for a Unix domain socket:

  • suites bind or poll <dir>/mcpdod.sock directly. Windows refuses that with EACCES, and the tests then time out waiting on the daemon.
  • teardown waits for the socket file to vanish. A pipe never appears there, so a live daemon keeps the temp dir open and rmSync fails with EBUSY.
  • some assertions assume POSIX premises (0700 directories, the sun_path limit).

#2748 (PR #2906) therefore skips 127 mcpdo tests on win32 (unixDaemonOnly in clients/mcpdo/__tests__/helpers/platform.ts). It also turns off mcpdo's per-file 90% coverage threshold on Windows only (clients/mcpdo/vitest.config.ts), because the daemon modules fall below it there. The new windows CI job is green, but it doesn't show that the daemon works on Windows.

Expected
  • The daemon test helpers derive the endpoint from getDaemonSocketPath instead of a hard-coded .sock file, and tear down a named-pipe daemon cleanly on Windows.
  • The suites gated by unixDaemonOnly run on the windows CI job. Only cases that assert genuinely POSIX-only behaviour stay skipped, each with its reason at the site.
  • mcpdo's per-file 90% threshold is enforced on Windows again, and the win32 carve-out in clients/mcpdo/vitest.config.ts is removed.

Verification has to come from the windows CI job; maintainers develop on macOS.

Lenguaje dominante
TypeScript
Estrellas
11.2k
Forks
1.6k
Merge medio
3 h 36 min
PR fusionados (30 d)
154

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de modelcontextprotocol/inspector

Todos los issues de modelcontextprotocol/inspector

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.