github / github/copilot-cli

Expose total_files_modified in the status line payload

Đang mở
#3,404 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
area:configuration
Ngôn ngữ chính
Shell
Star
11.2k
Fork
1.9k
Merge trung bình
14 giờ 16 phút
Pull request đã merge (30 ngày)
6

Mô tả

## Feature request: expose `total_files_modified` in the status line payload

### Context

The configurable status line (`statusLine.command`) receives a JSON payload on stdin with a `cost` object that currently includes:

```js
cost: {
total_api_duration_ms,
total_lines_added,
total_lines_removed,
total_duration_ms,
total_premium_requests
}
```

`total_lines_added` / `total_lines_removed` are great for showing a `+12/-3`‑style diff summary, but there's no companion field for the **number of files touched** in the session.

### Proposal

Add `total_files_modified: number` (the count, not the array) to the `cost` payload sent to the status line script. The runtime already tracks `codeChanges.filesModified` internally (it surfaces in `/usage` and in `session.shutdown` events), so this is essentially exposing existing state.

```js
cost: {
total_api_duration_ms,
total_lines_added,
total_lines_removed,
total_files_modified, // ← new
total_duration_ms,
total_premium_requests
}
```

### Use case

Status line scripts can render a more complete change summary, e.g.:

```
Context 25k/100k [bar] 25% · ↑112k ⊚80k ↓5k ($0.35) · +42/-13 in 4 files
```

This is the natural complement to the line‑count fields and matches how most diff tools summarize changes (lines + file count).

### Why a count and not the list

Sending the full path list would bloat the payload on long sessions and leak filesystem context unnecessarily. A simple integer count is enough for the status‑line use case.

### Alternative considered

Reading `~/.copilot/session-state//events.jsonl` from the script — rejected as fragile (race conditions with the writer, 200 ms refresh budget, parsing a growing JSONL on every tick).

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Start at the statusLine.command payload construction and trace how the existing cost fields are assembled from the runtime's codeChanges.filesModified state. Add the count alongside the other cost fields, then verify that the status line receives total_files_modified as a number and that the existing payload fields remain unchanged.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
shell
Lĩnh vực
cli
Loại issue
Tính năng
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Ít trao đổi
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
68/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.