github / github/copilot-cli

VS Code Copilot Chat 0.47.1 cannot open CLI 1.0.46 sessions: missing phemeral on permission.requested events

Abierto
#3,284 0 comentarios 0 reacciones 0 asignados Ver en GitHub
area:permissions area:plugins area:sessions
Lenguaje dominante
Shell
Estrellas
11.2k
Forks
1.9k
Merge medio
14 h 16 min
PR fusionados (30 d)
6

Descripción

## Summary

VS Code Copilot Chat extension (0.47.1) fails to open any CLI session that contains `permission.requested` (or `permission.completed`) events written by Copilot CLI 1.0.46. The extension's Zod schema requires those events to have `"ephemeral": true` at the root, but the CLI does not emit that field.

This makes it impossible to attach VS Code to a CLI session that has ever asked for a permission — i.e. virtually any non-trivial session.

## Environment

- Copilot CLI: **1.0.46** (latest per `copilot update`)
- VS Code: **1.119.1**
- Copilot Chat extension: **0.47.1**
- OS: Windows 11

## Repro

1. Start a session in Copilot CLI and let it perform any action that triggers a permission prompt (e.g. edit a file).
2. In VS Code, open the Copilot Chat sidebar and try to open that CLI session.

## Expected

Session opens and shows the conversation history.

## Actual

Extension log shows, repeatedly:

```
[error] [CopilotCLI] Failed to parse session : Error: Failed to read JSONL from
C:\Users\\.copilot\session-state\\events.jsonl:
Error: Invalid event at line N: ephemeral: Invalid literal value, expected true.
Event: {"type":"permission.requested","data":{"requestId":"...","permissio...
```

The session pane stays empty.

## Root cause (schema mismatch)

The CLI writes `permission.requested` events with this top-level shape:

```json
{"type":"permission.requested","data":{...},"id":"...","timestamp":"...","parentId":"..."}
```

No `ephemeral` property is present. The extension's parser rejects them with `ephemeral: Invalid literal value, expected true`, i.e. its schema has something like `ephemeral: z.literal(true)` as a required field on these events.

Same error fires for every `permission.requested` event in the file (16 occurrences in my session).

## Suggested fix

Either:
- **CLI side:** emit `"ephemeral": true` on `permission.requested` / `permission.completed` events, or
- **Extension side:** make `ephemeral` optional (or default to `true`) in the Zod schema for permission events.

Whichever is cheaper — but it's currently a hard incompatibility between the latest CLI release and the latest extension release.

## Workaround

After ending the CLI session, patch `events.jsonl` to inject `"ephemeral":true` into every `permission.*` event. Risky because it may break the CLI's own resume logic, so not great as a real solution.

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.