local:gate cannot pass on Windows — pre-existing failures in test:scripts, coverage:web and coverage:mcpdo
Los mantenedores suelen responder en 1 día
@olaservo ya está trabajando en esto.
Desde el 25/10/2026.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- git, node.js, typescript
Línea de trabajo
Start with the named failing suites: board-recover.test.mjs, board-snapshot.test.mjs, gate-lease.test.mjs, skill-eval.test.mjs, the five coverage:web files, and the eleven coverage:mcpdo files; also inspect the scripts/*.mjs entry guards and the proposed scripts/lib/ helper. Run the affected commands on Windows and check how each failure depends on line endings, permissions, Unix sockets, or process semantics. Done means the gate reaches later stages and platform-bound cases either pass or are skipped with a reason; the entry guard test should cover a Windows-style argv[1].
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
On Windows the gate goes red in three stages on an untouched checkout, so a Windows maintainer cannot get the green npm run local:gate AGENTS.md makes mandatory before a push. Each stage aborts the chain, so everything after it (local:dco, the remaining coverage runs, verify:build-gate, the smokes, Storybook) never runs unless invoked by hand.
Observed 2026-10-20 on Windows 11, Node 24, Git Bash, on main (2.11.0) and on a branch cut from v2/main at 1b4d4ec74. The failures are the same on both, so none is tied to a change under review.
| Stage | Failures | Shape |
|---|---|---|
test:scripts (last step of validate:guards) |
18 of 119 | board-recover.test.mjs and board-snapshot.test.mjs: 438 !== 384, a byte count that assumes LF line endings (one byte per line). gate-lease.test.mjs: 14 cases, exit codes 1 where 0 is expected, lease takeover and ordering, and the SIGTERM/SIGQUIT tree-kill cases (POSIX process-group semantics). skill-eval.test.mjs: the two runPrompt cases ("Bash must be denied", bounded tools). |
coverage:web |
30 of 9264, in 5 files | file-secret-store, secret-store-selection, oauth-secret-split, servers-route, node-persistence: file-permission assertions (0o644 read back as undefined), "permissions could not be set" warnings, and failed-disk-write rollback cases that expect a 500 and get a 200. All depend on POSIX mode bits or on making a path unwritable, which Windows does not honor. |
coverage:mcpdo |
65 of 499, in 11 files | daemon-stream, daemon-coverage, mcp-coverage, elicitation-client, daemon-paths, resolve-command, mcp-connection, daemon-private, skills-budget-hint, mcp-elicitation, agent-help: EACCES on listen for the Unix socket under %TEMP%, then 15s timeouts waiting on the daemon. |
Expected
Either each case passes on Windows, or the platform-bound cases are skipped there by name with a reason at the site, so every stage reports a real verdict and the chain reaches the stages after it. #1939 fixed the same class for verify:typecheck-coverage. mcpdo is documented as experimental and Unix-socket based, so skipping its daemon suites on Windows with a stated reason may be the whole answer there.
Also: the scripts' entry guard never fires on Windows
Separately from the test failures, every scripts/*.mjs CLI (21 files) ends with
if (import.meta.url === `file://${process.argv[1]}`) {
main();
}
On Windows process.argv[1] is C:\Users\...\scripts\board-card-add.mjs while import.meta.url is file:///C:/Users/.../scripts/board-card-add.mjs, so main() never runs and the process exits 0 having printed nothing. Observed with npm run board:add and npm run board:status for #2740: both printed only the npm banner, exited 0, and the issue had no card afterwards. The procedures treat a missing card: … line as "step not done", but a silent exit 0 is easy to misread as success. The portable form compares against pathToFileURL(process.argv[1]).href from node:url, ideally through one helper in scripts/lib/ with a test that pins a Windows-style argv[1].
Workaround used: node --input-type=module -e "import('./scripts/board-card-add.mjs').then(m=>m.main([...]))".
Context
Found while running the gate for #2740.
- Lenguaje dominante
- TypeScript
- Estrellas
- 11.2k
- Forks
- 1.6k
- Merge medio
- 4 h 56 min
- PR fusionados (30 d)
- 155
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de modelcontextprotocol/inspector
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
modelcontextprotocol/inspector#2810 ·
Los mantenedores suelen responder en 1 día
-
blocked chore v2
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
modelcontextprotocol/inspector#2548 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
blocked chore v2
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
modelcontextprotocol/inspector#2547 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Create the GitHub App for board writes and security-alert reads, and store its credentials as org secretsPosiblemente ocupada @cliffhall la tomó hace 6 días. Abiertochore v2
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
modelcontextprotocol/inspector#2544 · 1 comentario · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
chore v2
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
modelcontextprotocol/inspector#2543 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de modelcontextprotocol/inspector
Issues similares
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
ajv-validator/ajv#2689 ·
-
[Bug]: IME confirmation Enter can submit the SSH port-forward dialogPosiblemente ocupada @seijikohara la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
home-assistant/frontend#55323 ·
Los mantenedores suelen responder en 1 día
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
lingdojo/kana-dojo#33188 · 1 comentario · 5 reacciones ·
Los mantenedores suelen responder en 1 día
-
self-driving
Dificultad 1/5 1-3 horas Aptitud para principiantes 86/100
Los mantenedores suelen responder en 1 día