Conversation
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 72afcbf1b8561fb4609b6de49c8f067bb03957d7. Configure here.
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — The PR changes existing Cursor ACP behavior across four metadata-generation operations by introducing temporary workspaces, relative-binary resolution, prompt restrictions, and scoped cleanup. It also adds a line-level static-analysis suppression in the test suite, so the runtime changes and diagnostic override warrant human verification. No code changes detected at You can add or adjust custom eligibility rules. Learn more. |
b82facd to
2ac9bfe
Compare
|
Macroscope has since reviewed this pull request. An earlier review was skipped by a cost limit; a review has now completed, so that notice no longer applies. |
a7c97c9 to
fd2851c
Compare
|
This PR is too large for Bugbot to review. It changes 99,173 lines and 4,020,811 characters. Split the change into smaller pull requests to get a review. |
04bfcb7 to
de8aa56
Compare
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Team Run ID: 📒 Files selected for processing (3)
Included review availability: Your plan provides up to 10 included reviews per hour; 6 remain after this review. 📝 WalkthroughWalkthroughCursor ACP generation now runs in isolated temporary metadata workspaces, resolves relative binaries from the source directory, uses stricter JSON prompts, and validates cleanup during cancellation and cleanup failures. ChangesCursor metadata isolation
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant TextGeneration
participant FileSystem
participant CursorACP
TextGeneration->>FileSystem: Create metadata workspace
TextGeneration->>CursorACP: Start with isolated cwd and JSON prompt
CursorACP-->>TextGeneration: Return generated metadata
TextGeneration->>FileSystem: Remove workspace on release
Suggested reviewers: Merge Risk: ⚪ Minimal · up to Cursor metadata generation now uses an isolated temporary workspace while preserving source-relative binary configuration and cleaning up after completion, failure, or cancellation. No concrete merge-blocking risk remains. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
Independent automated first-pass review (Amp/Astra agent mode) of head de8aa56 against upstream/main: no findings. Correctness, invariants, edge cases, Effect conventions, and performance all checked; temp-workspace scoping, relative binary-path resolution, and cleanup-on-failure semantics verified sound against the source. Nothing to address, no commits pushed. |
|
Friendly review nudge @juliusmarminge @maria-rcks — this is mergeable and hasn't had a maintainer pass yet. Independent bot/agent reviews have run with findings triaged in-commit (see receipts in earlier comments). Full queue context and status: #10688. |
de8aa56 to
4c68cf2
Compare

Cursor generates titles, branch names, commit messages, and PR text from a prompt that already contains everything it needs. Starting those ACP requests in the real project directory exposes them to project files and instructions they do not need.
Each Cursor metadata request now starts in an empty temporary workspace, and the prompt tells Cursor to use only the supplied input. This follows #4169, which did the same for Claude. Relative configured binary paths still resolve from the original project. Endpoint, environment, and model settings are unchanged. The workspace is removed after the ACP child closes, on success, failure, or cancellation. Cleanup errors are logged and ignored so they don't discard generated output. This is also why the code uses an explicit
acquireReleaseinstead ofmakeTempDirectoryScoped, whose finalizer callsorDie.This isolates the workspace; it is not an OS sandbox. Only the Cursor implementation, its tests, and the mock ACP agent's prompt-started receipt change.
Verification
Rebased onto
mainat4d06156dd; no conflicts.vp test run src/textGeneration/CursorTextGeneration.test.ts: 6 passed. Covers temp-workspace cwd, relative binary resolution, cleanup on success, failure, and cancellation, and output surviving a failed cleanup.tsc --noEmitforapps/server: passed.vp linton the three touched files: passed.Tests use the repo's mock ACP agent. No live Cursor run was done.
Coordination trace: T3 thread a837405b-3eae-403f-882c-f585e66419e5
Rebased and verified by Claude Opus 5 in Claude Code (via T3 Code).