Skip to content

[ENHANCEMENT] Checkpoints: respect .rooignore and add cleanup/size limits #8040

@hannesrudolph

Description

@hannesrudolph

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

  1. Open a project containing large/binary or LFS-tracked files.
  2. Use the extension with checkpoints enabled and perform several task iterations.
  3. Observe disk usage growth from the checkpoint storage.
  4. 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 requestIssue - In ProgressSomeone is actively working on this. Should link to a PR soon.

Type

No type

Projects

Status

Issue [In Progress]

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions