(Had an agent checkout why my repos were so large and draft a request)
- Langage dominant
- Aucune donnée de langage
- Étoiles
- 2.1k
- Forks
- 153
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
(Had an agent checkout why my repos were so large and draft a request)
Automatically garbage-collect Copilot checkpoint refs when sessions are archived
### Description
Copilot worktree sessions create large numbers of refs under `refs/copilot/checkpoints/*` and `refs/copilot-preserved/*`. These refs remain after sessions/worktrees are archived, preventing Git garbage collection and consuming significant disk space.
Please automatically clean up a session’s internal Git refs when that session is archived.
### Expected behavior
1. Preserve refs for active sessions and worktrees.
2. On archive, retain only the minimum snapshot needed to restore the session, or remove all internal refs if restoration does not require them.
3. Remove obsolete `refs/copilot/checkpoints//*` and related preserved refs.
4. Prune stale worktree metadata.
5. Run deferred Git maintenance (`reflog expire` and `git gc`) when safe.
6. Never delete user branches, remote refs, commits reachable from active sessions, or uncommitted work.
7. Provide a “Clean up archived session data” action for existing orphaned checkpoints.
### Motivation
In my repositories, archived Copilot sessions left tens of thousands of checkpoint refs. They retained approximately **1.3 GB** in one Android repository and **742 MB** in an iOS repository even after local branches were deleted. Manual ref deletion and Git garbage collection were required to reclaim the space.
---
| Field | Value |
| --- | --- |
| App version | 1.1.6 |
| OS | macOS 26.5.2 |
| Theme | Notionish |
| Path | /chat |
| Tenure | Week 6 |
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par le flux d’archivage des sessions de worktree Copilot et les refs internes mentionnées dans l’issue : refs/copilot/checkpoints//* et refs/copilot-preserved/*. Retracez la manière dont sont représentés les sessions archivées, les métadonnées du worktree et l’action de nettoyage demandée. Le travail est terminé lorsque les données archivées obsolètes sont récupérées en toute sécurité, tout en préservant les sessions actives, les refs utilisateur, les commits atteignables et le travail non commité.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- git
- Domaine
- desktop, tooling
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- Calme
- Clarté
- À clarifier
- Accessibilité débutants
- 25/100