-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Open
Labels
EnhancementNew feature or requestNew feature or requestIssue - In ProgressSomeone is actively working on this. Should link to a PR soon.Someone is actively working on this. Should link to a PR soon.
Description
Type
Enhancement
Problem
Checkpoint storage can grow extremely large when projects include big/binary assets. Users report hundreds of GB ballooning to TBs within a short time, with no automatic cleanup or hard limits.
Context
- Affects repos with large binaries, media, datasets, or LFS-tracked files.
- The checkpoint mirror does not currently respect a user’s .rooignore, so files the assistant will never edit still get mirrored.
- There is no automatic retention or size cap for old checkpoints, so disk usage can continually increase during active work.
- Users don’t want to change .gitignore just for Roo; they prefer using .rooignore to exclude non-editable/binary content from checkpoints.
Desired Behavior
- Respect .rooignore for checkpoint storage so non-editable/binary content is excluded by default.
- Provide a simple cleanup policy:
- Time-based retention (e.g., keep last N days).
- Max checkpoints per task.
- Global size cap for checkpoint storage with oldest-first cleanup.
- Offer a mode that avoids capturing unchanged or non-relevant large files (e.g., “modified files only” behavior) so snapshots focus on actual work.
- Optional lightweight approach to avoid pulling in big directories (e.g., sparse-like behavior) for users with very large trees.
- Add a manual “Clean up old checkpoints” action and safe defaults to prevent disk exhaustion without user intervention.
Reproduction
- Open a project containing large/binary or LFS-tracked files.
- Use the extension with checkpoints enabled and perform several task iterations.
- Observe disk usage growth from the checkpoint storage.
- There’s no built-in way to set retention limits or exclude non-editable binaries via .rooignore.
Constraints/Preferences
- Do not require changes to .gitignore; rely on .rooignore for Roo-specific exclusions.
- Safe defaults that prevent disk exhaustion.
- Keep the flow simple and unobtrusive for users who don’t need fine-grained control.
Metadata
Metadata
Assignees
Labels
EnhancementNew feature or requestNew feature or requestIssue - In ProgressSomeone is actively working on this. Should link to a PR soon.Someone is actively working on this. Should link to a PR soon.
Type
Projects
Status
Issue [In Progress]