github / github/copilot-cli

Native copilot.exe binary silently exits with code 1 on Windows x64, npm-loader.js never falls back to JS implementation

Abierto
#1,566 0 comentarios 0 reacciones 0 asignados Ver en GitHub
area:platform-windows
Lenguaje dominante
Shell
Estrellas
11.2k
Forks
1.9k
Merge medio
14 h 16 min
PR fusionados (30 d)
6

Descripción

## Description

The native `copilot.exe` binary (both WinGet v0.0.410 and npm v0.0.412) silently exits with code 1 on Windows 11 x64, producing no stdout or stderr output. This makes the Copilot CLI completely unusable.

The `npm-loader.js` entrypoint unconditionally exits with the native binary's exit code (`process.exit(r.status??1)`), which prevents the JavaScript fallback (`index.js`) from ever being reached when the native binary fails.

## Steps to Reproduce

1. Install `@github/copilot` via npm (`npm install -g @github/copilot`) or WinGet (`winget install GitHub.Copilot`)
2. Run `copilot --version`
3. Binary exits with code 1, no output

## Expected Behavior

Either:
- The native binary should work correctly, OR
- `npm-loader.js` should fall back to the JS implementation when the native binary fails

## Actual Behavior

- `copilot.exe` exits with code 1, no stdout/stderr
- `npm-loader.js` calls `process.exit(r.status??1)` after `spawnSync`, so it exits with 1 without trying the JS fallback
- The JS implementation (`node index.js`) works perfectly

## Workaround

In `npm-loader.js`, change:
```
process.exit(r.status??1)
```
to:
```
if(r.status===0)process.exit(0)
```

This allows the JS fallback via `import("./index.js")` to run when the native binary fails.

## Environment

- **OS:** Windows 11 Enterprise 25H2 (Build 26200)
- **Architecture:** x64 (AMD64)
- **Node.js:** v25.6.1
- **npm:** 11.9.0
- **Copilot CLI (WinGet):** v0.0.410
- **Copilot CLI (npm):** 0.0.412
- **gh CLI:** 2.86.0

## Additional Context

- The native binary is a valid signed PE x64 executable (signature verified)
- `LoadLibraryEx` succeeds on the binary (no missing DLL dependencies)
- No Windows Defender blocks, no AppLocker policies, no Zone.Identifier ADS
- No crash dumps or WER reports generated
- The binary produces zero output to both stdout and stderr
- Running from any directory, any terminal (PowerShell, cmd), with or without admin privileges — same result

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.