Skip to content

fix: bound Cursor blob-store memory - #845

Closed
Ingwannu wants to merge 1 commit into
devfrom
agent/bound-cursor-blob-store
Closed

fix: bound Cursor blob-store memory#845
Ingwannu wants to merge 1 commit into
devfrom
agent/bound-cursor-blob-store

Conversation

@Ingwannu

@Ingwannu Ingwannu commented Aug 1, 2026

Copy link
Copy Markdown
Owner

Summary

  • cap Cursor blobs at 16 MiB each, 64 MiB total, and the existing 4,096 entries
  • pin every root/step/turn blob advertised by an active request until success, failure, or generator cancellation
  • evict only expired or LRU unpinned blobs; fail preparation when pinned data leaves no safe capacity
  • return a protobuf error for rejected server setBlobArgs instead of acknowledging a store that did not happen
  • store external root candidates only after replay pruning

Part of #820. This is a focused request-lifetime lease implementation rather than #829 app-wide memory infrastructure.

Verification

  • bun test tests/cursor-*.test.ts (398 pass)
  • bun run typecheck
  • bun run privacy:scan

Compatibility

Content-addressed IDs and get/set protobuf shapes remain unchanged. A single blob above 16 MiB or a request whose unique pinned blobs cannot fit 64 MiB now fails explicitly rather than evicting an in-flight reference or retaining unbounded data.

@coderabbitai

coderabbitai Bot commented Aug 1, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 61fb09ca-66c5-4ad0-a83c-0ee40db40455

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

@lidge-jun

Copy link
Copy Markdown
Owner

Maintainer triage status: this is valuable work. It bounds Cursor blobs while using scoped pins to protect active requests, has strong test coverage, and defines saturation behavior explicitly. It currently conflicts with dev, so a rebase is needed. It also shares the Cursor transport/docs surface with #844; please land the two in a defined order (or consolidate them) to avoid overlapping integration work. An independent, non-author review is required before landing.

@lidge-jun

Copy link
Copy Markdown
Owner

Superseded by #892, which implements this defect's fix natively on top of the wave-1 retained-state framework (the PR's shape was used as a reference; see the PR description in #892 for the defect-specific deltas, including where the framework already covered part of it). Thank you for the contribution — the analysis in this PR drove the fix.

@lidge-jun lidge-jun closed this Aug 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants