github / github/copilot-cli

CPU usage at max.

未关闭
#3,907 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
area:configuration area:context-memory area:sessions
主要语言
Shell
星标
11.2k
派生
1.9k
平均合并
14 小时 16 分钟
30 天内合并 PR
6

描述

### Describe the bug

# Copilot CLI feedback - 2026-06-24

Two related issues from a single long-running session.

## Issue 1: agent-induced data loss via hardlink "backup"

While trying to mitigate Issue 2 (below), I (the agent) ran:

ln events.jsonl events.jsonl.bak-20260624
: > events.jsonl

Intending to keep a backup before truncating the 233 MB events log.
Because `ln` creates a hardlink (shared inode), truncating one name
truncated both. The 233 MB raw transcript was destroyed.

The session survived because the in-prompt summary, plan.md,
checkpoints/, session.db, files/ and stored memories were intact.

### What would help
- Document in the agent system prompt or tool guidance that
`ln` is not a backup primitive. Use `cp` (or `cp --reflink=auto`
on btrfs/xfs) to take an independent copy.
- Or: ship a built-in `/session-archive` or `/session-compact`
command so users (and agents) don't have to invent file-level
tricks on a live session.

## Issue 2: events.jsonl growth pins CPU on long sessions

Single-session events.jsonl grew to 233 MB over ~1200 turns.
Starting `copilot` from a directory that triggers session resume
pegs ~5 CPU cores ("indexer berserk") for 20+ minutes.

lsof shows events.jsonl is NOT held open during the session
(only session.db is) - so it appears to be read whole on
resume or on summary regeneration.

### What would help
- Cap events.jsonl size, or roll/compact it as part of the
existing summarization pass.
- Don't re-parse the whole file on every resume; rely on
session.db + the last summary checkpoint.
- Or expose `--no-resume-events` / `.copilotignore` for the
session log itself.

## Issue 3 (related): no `.copilotignore` and no scan-depth flag

Starting `copilot` from `~/github` (a directory of ~60 sibling
repos, not a single repo) appears to walk every subdir for
CLAUDE.md / AGENTS.md / .github/instructions. `-C ` is
the only workaround and defeats cross-repo work.

### What would help
- `.copilotignore` honoured at the cwd.
- `--scan-depth N` or `--no-scan-children`.
- Or: scan lazily, only when the user references a path.

## Session id

7801c0d9-4a25-47bf-aee7-bb26e20ff3c2

### Affected version

_No response_

### Steps to reproduce the behavior

1. Open VScode.
2. Start copilot.
3. Watch CPU usage rise to max.

### Expected behavior

Not seeing CPU usage over the normal 1-2%.

### Additional context

_No response_

贡献指南

打开贡献指南

调研方向

首先复现 issue 中的恢复路径,并检查 events.jsonl、session.db,以及从包含同级仓库的目录执行的启动扫描。确定是恢复解析还是指令文件扫描导致 CPU 峰值;当长时间会话和包含多个仓库的工作目录不再触发持续的 CPU 满载时,即视为完成,而请求的备份指导或会话归档行为则单独处理。

由索引模型根据 Issue 内容生成。

评估

领域
cli, performance
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
冷清
描述清晰度
需要澄清
新手友好度
28/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。